数据库中间件MyShard_第1页
数据库中间件MyShard_第2页
数据库中间件MyShard_第3页
数据库中间件MyShard_第4页
数据库中间件MyShard_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MyShard介绍欢聚时代:喻先兵1MyShard是什么MyShard是一个数据库中间件位于应用程序和MySQL之间截取用户SQL请求、SQLRewrite、转发到MySQLMyShard是一种高可用数据库实现在主主复制功能跨IDC部署高可用系统数据层服务层代理层APP高可用系统:透明的应用故障切换、消除单点故障应用程序故障发生时,可以自动透明地切换到其他服务器上应用程序和查询不会中断,用户感觉不到故障的发生代理层服务层高可用代理层智能路由服务层多点连接读写分离数据层集群容错技术磁盘备份技术多机房容灾技术APP为什么要开发MyShard4主数据库IDC1从数据库IDC2从数据库IDC3数据服务读写分离主数据库IDC1主数据库IDC2主数据库IDC3数据服务写代理高可用可伸缩数据服务MyshardIDC1MyshardMyshardMyshardIDC3MyshardIDC2MyshardIDC1开源的NoSQL5mongoDBHBase为什么不采用这些NoSQL?跨IDC的高可用全局第二索引MyShard部署模型高可用性、分区容错性、最终一致性Multi-Master【主主服务】模型专业灵活高效的版本冲突检测解决机制可伸缩性灵活的分布式策略和路由能力海量存储能力高并发服务能力其他特性MySQL协议的服务能力和半关系型操作模型高效可靠数据同步能力MyShard[IDC1]服务代理客户端同步服务MySQL分区MyShard[IDC3]服务代理客户端同步服务MySQL分区MyShard[IDC2]服务代理客户端同步服务MySQL分区binlog同步原理Myshard(g1)MySQLMySQLIO线程IO线程中继日志BinlogBinlogIO线程Myshard(g2)MySQLMySQLIO线程IO线程中继日志BinlogBinlogIO线程SQL线程SQL线程CAP原理ConsistencyAvailabilityToleerancetonetworkPartitions

C:Consistency一致性A:Availability可用性P:ToleranceofnetworkPartition

分区容错性

传统关系型数据库:CA非关系型数据库:

APBASE模型BasicallyAvailble

基本可用Soft-state

软状态/柔性事务EventualConsistency

最终一致性QuorumNRWN:复制的节点数量R:成功读操作的最小节点数W:成功写操作的最小节点数W+R〉N,可以保证强一致性典型的场景:

强一致性:W=N,R=1

高可用性:W=1HBase:W=N,R=1MyShard:W=1,R=1最终一致性模型机房A机房B机房C最近版本值最近版本值最近版本值(k:0)(k:1)(k:0)(k:2)(k:0)(k:3)w(k:2)w(k:3)(k:3)w(k:1)w(k:3)(k:3)w(k:1)w(k:2)(k:3)实现简单优化资源高效适用w(k:1)w(k:2)w(k:3)第二索引MySQLMySQLMySQLMyShard用户表[uid分区]按用户名查询怎么办?MySQLMySQLMySQL数据第二索引用户索引[按用户名分区]MyShardSelect*fromuserwhereuid=1andnamelike=‘%’;Select*fromuserwherename=‘henry’;索引类型全局第二索引一致性第二索引

建表存储索引数据

存储所有字段

存储所有数据createindexidx_order_uidonorderpartitionkeyuidsharding_rulehash_int_100;CREATEQUICKINDEXidx_order_qONorderPARTITIONKEYuidSHARDING_RULEhash_int_100WITHtype=“10";selectcount(*)fromorderwhereuid=1andtype=10;

建表存储索引数据

存储主键、索引、版本字段可存储部分数据以空间换时间以效率换一致性本地索引

在原表上建索引

mysql的索引格式以空间换时间ALTERTABLEorderaddINDEXidx_order_local(prod_id,order_time);shardingMySQLMySQLMySQLMyShard数据hash分区根据分区键查询,支持in语法范围分区根据范围查询,支持跨分片的范围查询结构化数据模型和半关系操作模型用户标识用户姓名1张三2李四用户标识数学语文1908028756用户表考分表KVHASET[table_name]SETV1=:v1,V2=:v2WHEREK1=:k1andK2=:k2HADELETE[table_name]WHEREK1=:k1andK2=:k2读操作Select*fromawherepartition_key=1and

(其他条件);Selectf1,f2,f3fromawherepartition_key=1and(其他条件);Selectt1.f2,count(t1.f3),sum(t2.f1)fromat1,bt2wheret1.partition_key=t2.partition_keyandt1.partition_key=1

and(其他条件)

复杂条件可选,目前支持的其他条件有:

i)

关系型比较a=1

,a<1,a>1

ii)

between

语法:abetweenv1andv2

iii)like语法:alike'adfadfa'

iv)in语法:ain(v1,v2,v3)

v)函数:mysql的函数基本上都能支持

Selectt1.f2,count(t1.f3),sum(t2.f1)fromat1,bt2wheret1.partition_key=t2.partition_keyandt1.partition_key=1

and(其他条件)DMLINSERTINTOT(f1,f2,f3)values(v1,v2,v3)UPDATETsetf2=v2wheref1=v1andf3<v3;DELETEFROMTwheref1=v1andf3<123;

对于数据进行批量更新和版本控制对数据进行批量删除功能

批量插入主数据和第二索引,用于数据维护快速的批量查询功能

批量SET批量删除批量插入批量查询批量处理功能批量数据处理:1、通过扩展MySQL语句实现,不增加程序复杂性;2、把访问接口扩展为key-value访问,避免SQL解析;3、提供大规模数据的访问和存储能力;统计查询功能17MySQLMySQL导出文件格式(CSV格式)“1”,“abc”,“cde\”\r\n”“2”,“cdf”,”ddd“MySQLMySQLMetaDataMyshardHiveMyshardHandlerPluginMySQLSerDeMyshard订阅器Myshard主库Myshard生态Myshard(g3)Myshard(g2)Myshard(g1)Myshard从库(g0)Myshard发布系统Rabbitmq订阅器内部队列订阅器文件订阅器可扩展订阅框架MySQL订阅器MyShard的安装1、准备myshard_deploy.xmlbusiness_name

default_admin_port,default_sync_port,default_shard_port,redipdb_collate,db_charsetidc

information2、执行安装pythondeploy_myshard.pyMyShard维护DDL创建/删除数据库创建/删除表创建/删除索引添加字段其他管理SQL语句添加/删除红名单添加/删除服务器添加/删除分区规则运维状态1.节点故障2.增删节点工作状态系统进入运维状态后,所有的请求都将会进行查询转移到其他的Myshard上执行。系统状态模型3.创建删除表4.创建删除索引故障转移自动选取下一个GroupNo可以配置制定故障转移的GroupNoMyShard[IDC1]服务代理客户端同步服务MySQL分区MyShard[IDC2]服务代理客户端同步服务MySQL分区MyShard之间的故障转移数据导入/导出工具23OracleMySQL标准格式文本文件批量导入工具MyShardMySQL导出文件格式(CSV格式)“1”,“abc”,“cde\

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论