《数据库中间件MyShard》.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MyShard介绍 欢聚时代:喻先兵 1 MyShard是什么 /p/myshard/ MyShard是一个数据库中间件 位于应用程序和MySQL之间 截取用户SQL请求、SQLRewrite、转发到MySQL MyShard是一种高可用数据库 实现在主主复制功能 跨IDC部署 高可用系统 数据层 服务层 代理层 APP 高可用系统:透明的应用故障切换、消除单点故障 应用程序故障发生时,可以自动透明地切换到其他服务器上 应用程序和查询不会中断,用户感觉不到故障的发生 代理层服务层高可用 代理层智能路由 服务层多点连接 读写分离 数据层 集群容错技术 磁盘备份技术 多机房容灾技术 APP 为什么要开发MyShard 4 主数据库IDC1 从数据库IDC2 从数据库IDC3 数据服务 读写分离 主数据库IDC1 主数据库IDC2 主数据库IDC3 数据服务 写代理 高可用 可伸缩 数据服务 Myshard IDC1 Myshard Myshard Myshard IDC3 Myshard IDC2 Myshard IDC1 开源的NoSQL 5 mongoDB HBase 为什么不采用这些NoSQL? 跨IDC的高可用 全局第二索引 MyShard部署模型 高可用性、分区容错性、最终一致性 Multi-Master【主主服务】模型 专业灵活高效的版本冲突检测解决机制 可伸缩性 灵活的分布式策略和路由能力 海量存储能力 高并发服务能力 其他特性 MySQL协议的服务能力和半关系型操作模型 高效可靠数据同步能力 MyShard[IDC1] 服务代理 客户端 同步服务 MySQL分区 MyShard[IDC3] 服务代理 客户端 同步服务 MySQL分区 MyShard[IDC2] 服务代理 客户端 同步服务 MySQL分区 binlog同步原理 Myshard(g1) MySQL MySQL 中继日志 Binlog Binlog Myshard(g2) MySQL MySQL 中继日志 Binlog Binlog CAP原理 Consistency Availability Toleerance to network Partitions C: Consistency 一致性 A: Availability 可用性 P: Tolerance of network Partition 分区容错性 传统关系型数据库:CA 非关系型数据库: AP BASE模型 Basically Availble 基本可用 Soft-state 软状态/柔性事务 Eventual Consistency 最终一致性 Quorum NRW N:复制的节点数量 R:成功读操作的最小节点数 W:成功写操作的最小节点数 W+R〉N,可以保证强一致性 典型的场景: 强一致性:W=N,R=1 高可用性:W=1 HBase:W=N,R=1 MyShard: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 * from user where uid=1 and name like=‘%’; Select * from user where name=‘henry’; 索引类型 全局第二索引 一致性第二索引 建表存储索引数据 存储所有字段 存储所有数据 create index idx_order_uid on order partition key uid sharding_rule hash_int_100; CREATE QUICK INDEX idx_order_q ON order PARTITION KEY uid SHARDING_RULE hash_int_100 WITH type = “10; select count(*) from order where uid=1 and type=10; 建表存储索引数据 存储主键、索引、版本字段 可存储部分数据 以空间换时间 以效率换一致性 本地索引 在原表上建索引 mysql的索引格式 以空间换时间 ALTER TABLE orde

文档评论(0)

cjp823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档