已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MyShard介绍,欢聚时代:喻先兵,1,MyShard是什么,MyShard是一个数据库中间件位于应用程序和MySQL之间截取用户SQL请求、SQLRewrite、转发到MySQLMyShard是一种高可用数据库实现在主主复制功能跨IDC部署,高可用系统,数据层,服务层,代理层,APP,高可用系统:透明的应用故障切换、消除单点故障应用程序故障发生时,可以自动透明地切换到其他服务器上应用程序和查询不会中断,用户感觉不到故障的发生代理层服务层高可用代理层智能路由服务层多点连接读写分离数据层集群容错技术磁盘备份技术多机房容灾技术,APP,为什么要开发MyShard,4,主数据库IDC1,从数据库IDC2,从数据库IDC3,数据服务,读写分离,主数据库IDC1,主数据库IDC2,主数据库IDC3,数据服务,写代理,高可用,可伸缩,数据服务,MyshardIDC1,Myshard,Myshard,MyshardIDC3,MyshardIDC2,MyshardIDC1,开源的NoSQL,5,mongoDB,HBase,为什么不采用这些NoSQL?跨IDC的高可用全局第二索引,MyShard部署模型,高可用性、分区容错性、最终一致性Multi-Master【主主服务】模型专业灵活高效的版本冲突检测解决机制可伸缩性灵活的分布式策略和路由能力海量存储能力高并发服务能力其他特性MySQL协议的服务能力和半关系型操作模型高效可靠数据同步能力,MyShardIDC1,服务代理,客户端,同步服务,MySQL分区,MyShardIDC3,服务代理,客户端,同步服务,MySQL分区,MyShardIDC2,服务代理,客户端,同步服务,MySQL分区,binlog同步原理,Myshard(g1),MySQL,MySQL,中继日志,Binlog,Binlog,Myshard(g2),MySQL,MySQL,中继日志,Binlog,Binlog,CAP原理,Consistency,Availability,ToleerancetonetworkPartitions,C:Consistency一致性A:Availability可用性P:ToleranceofnetworkPartition分区容错性,传统关系型数据库:CA非关系型数据库:AP,BASE模型,BasicallyAvailble基本可用Soft-state软状态/柔性事务EventualConsistency最终一致性,QuorumNRW,N:复制的节点数量R:成功读操作的最小节点数W:成功写操作的最小节点数W+RN,可以保证强一致性典型的场景:强一致性:W=N,R=1高可用性:W=1,HBase: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),第二索引,MySQL,MySQL,MySQL,MyShard,用户表uid分区,按用户名查询怎么办?,MySQL,MySQL,MySQL,数据,第二索引,用户索引按用户名分区,MyShard,Select*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);,sharding,MySQL,MySQL,MySQL,MyShard,数据,hash分区根据分区键查询,支持in语法范围分区根据范围查询,支持跨分片的范围查询,结构化数据模型和半关系操作模型,用户表,考分表,KV,HASETtable_nameSETV1=:v1,V2=:v2WHEREK1=:k1andK2=:k2HADELETEtable_nameWHEREK1=: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=1and(其他条件)复杂条件可选,目前支持的其他条件有:i)关系型比较a=1,a1ii)between语法:abetweenv1andv2iii)like语法:alikeadfadfaiv)in语法:ain(v1,v2,v3)v)函数:mysql的函数基本上都能支持Selectt1.f2,count(t1.f3),sum(t2.f1)fromat1,bt2wheret1.partition_key=t2.partition_keyandt1.partition_key=1and(其他条件),DML,INSERTINTOT(f1,f2,f3)values(v1,v2,v3)UPDATETsetf2=v2wheref1=v1andf3v3;DELETEFROMTwheref1=v1andf3123;,对于数据进行批量更新和版本控制,对数据进行批量删除功能,批量插入主数据和第二索引,用于数据维护,快速的批量查询功能,批量SET,批量删除,批量插入,批量查询,批量处理功能,批量数据处理:1、通过扩展MySQL语句实现,不增加程序复杂性;2、把访问接口扩展为key-value访问,避免SQL解析;3、提供大规模数据的访问和存储能力;,统计查询功能,17,MySQL,MySQL导出文件格式(CSV格式)“1”,“abc”,“cde”rn”“2”,“cdf”,”ddd“,MySQL,MySQL,MetaData,Myshard,HiveMyshardHandler,Plugin,MySQLSerDe,Myshard订阅器,Myshard主库,Myshard生态,Myshard(g3),Myshard(g2),Myshard(g1),Myshard从库(g0),Myshard发布系统,Rabbitmq订阅器,内部队列订阅器,文件订阅器,可扩展订阅框架,MySQL订阅器,MyShard的安装,1、准备myshard_deploy.xml,business_namedefault_admin_port,default_sync_port,default_shard_port,redipdb_collate,db_charsetidcinformation,2、执行安装pythondeploy_myshard.py,MyShard维护,DDL创建/删除数据库创建/删除表创建/删除索引添加字段,其他管理SQL语句添加/删除红名单添加/删除服务器添加/删除分区规则,运维状态,1.节点故障,2.增删节点,工作状态,系统进入运维状态后,所有的请求都将会进行查询转移到其他的Myshard上执行。,系统状态模型,3.创建删除表,4.创建删除索引,故障转移,自动选取下一个GroupNo可以配置制定故障转移的GroupNo,MyShardIDC1,服务代理,客户端,同步服务,MySQL分区,MyShardIDC2,服务代理,客户端,同步服务,MySQL分区,MyShard之间的故障转移,数据导入/导出工具,23,Oracle,MySQL,标准格式文本文件,批量导入工具,MyShard,MySQL导出文件格式(CSV格式)“1”,“a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 15972.40-2024光纤试验方法规范第40部分:传输特性的测量方法和试验程序衰减
- GB/T 34430.4-2024船舶与海上技术保护涂层和检查方法第4部分:水溶性盐总含量的自动化测量方法
- 2025年度宅基地使用权转让及配套基础设施建设合同3篇
- 2024年运动鞋品牌授权区域销售与售后服务合同3篇
- 交通设施墙纸更换服务
- 数据中心楼面节能施工协议
- 医院专业助产士招聘合同范本
- 薪酬激励与员工晋升机会
- 水泥制品生产企业地磅管理办法
- 非遗项目拍卖师签约函
- 国家开放大学电大《供应链管理》期末题库及答案
- 10万吨绿色航空煤油项目可行性研究报告写作模板-备案审批
- 《2024年 《法学引注手册》示例》范文
- 光伏车棚施工方案
- 2024年检察院招录书记员考试法律基础知识及答案
- 2024至2030年中国生活用纸机械行业市场深度分析及发展趋势预测报告
- 2021-2022学年内蒙古呼和浩特市高一上学期期末考试英语试题(解析版)
- 12SG121-1 施工图结构设计总说明
- DL∕T 2447-2021 水电站防水淹厂房安全检查技术规程
- 象棋培训机构合伙协议
- 2024装修补贴协议书
评论
0/150
提交评论