2011年ITPUB(北京)数据库技术大会
                  DTCC2011




   主   题:浅谈伪分布式数据库架构

   分享者:金 官 丁
主要内容                  DTCC2011
 MySQL的复制应用架构;

 何为分布式/伪分布式数据库架构;

 分布式/伪分布式数据库架构的优缺点;

 伪分布式数据库架构的应用场景;

 2类具有通用性伪分布式数据库架构的设计思路:
  适用于电子商务、大型论坛、SNS网站、即时通信等领域;
  适用于SNS游戏、统计分析等领域;
MYSQL的复制应用架构               DTCC2011




      程序服务器


      Write/Read



       db_1a       db_2a
MYSQL的复制应用架构                        DTCC2011




 程序服务器_1          程序服务器_2   程序服务器_N



     VIP/DNS/mysql_proxy等

            Write/Read



             db_1a          db_2a
分布式架构定义         DTCC2011
 何为分布式数据库架构?




 何为伪分布式数据库架构?
何为分布式数据库架构                DTCC2011
 定义
 由一组存储在网络中不同服务器上的数据组成,网络中每个节点具有独
立执行局部应用的能力,也可以通过网络通信系统执行全局应用的能力。
何为分布式数据库架构                DTCC2011
 LDBMS
 建立和管理局部数据库,提供场地自治能力,执行局部应用及全局查询的
子查询;
 GDBMS
 提供分布透明性,协调全局事务执行,协调各局部DBMS完成全局应用,保
证数据库全局一致性、执行并发控制、实现更新同步和提供全局恢复等功能;
 全局数据字典
 存放全局概念模式、分片模式、分布模式的定义以及各模式之间映像的定
义,存放有关用户存取权限的定义,保证全局用 户的权限和数据库的安全,
存放数据完整性约束条件定义;
 通信管理
 实现分布式数据库各场地之间消息和数据传递;
何为分布式数据库架构   DTCC2011
架构图
分布式数据库架构优缺点               DTCC2011
分布式数据库的特征
1>.数据独立性:数据逻辑独立性、物理独立性、分布独立性;
2>.适当数据的冗余,实现高可用性;
3>.集中和自治相结合的控制结构;
4>.全局的一致性、可串行性、可恢复性;
分布式数据库缺点
1>.部署复杂,对硬件、网络等环境要求更高;
2>.事务处理、数据查询的性能相比较存在下降;
3>.商业产品费用较贵,开源产品暂时存在瑕疵;
4>.技术实现复杂,开发成本极高;
何为伪分布式数据库架构            DTCC2011




伪分布式数据库架构 = 多个集中式数据库
           + 数据库自身复制
           + 开发的管理软件
           + 其他;
伪分布式数据库架构优缺点                 DTCC2011
伪分布式数据库的优点
1>.提供类似分布式数据库的数据存取透明性;
2>.解决集中式数据库的扩展局限性;
3>.提高数据库服务的性能、可用性、可靠性;
4>.实现技术不难,开发、维护成本可控;

伪分布式数据库缺点
1>.不支持分布式事务 ;
2>.数据拆分之后出现数据合并难度与部分功能限制 ;
3>.数据库设计技巧难度加大 ;
伪分布式数据库架构的应用场景 DTCC2011
 电子商务平台(C2C、B2B、B2C)
 SNS平台;
 IM即时通信软件;
 电子邮件系统;
 日志分析系统;
 SNS游戏;
 其他平台型网站;

应用场景总结:
 大数据容量,且垂直升级扩展受限的;
 高并发事务型的;
 数据更新量远大于数据读取,且数据更新量非常大、频繁;
伪分布式数据库架构的基本功能 DTCC2011
前端通信协议:MySQL通信协议、JSON协议;
后端通信协议:MySQL通信协议;
存取路由算法控制器:HASH值法、数据库路由表法;
连接池:数据库连接池、应用程序连接池(可选);
负载均衡:客户端调用API函数接口;
解析器:SQL解析器、JSON字符串解析器;
查询记录集合并缓冲区;
序列生成器;
JSON字符串操作合并队列模块;
中间件之间的数据同步队列模块;
MemCache管理模块;
第三方平台ID转换器;
数据库可用性探测模块;
命令行管理接口;
伪分布式数据库的路由规则                  DTCC2011
第一类通用领域的伪分布式数据库架构的路由规则:HASH值法
例如:

水平拆分:对UID进行HASH运算得到一个值域:0~1023,再划分成N份;


垂直拆分:根据数据中间件缓存数据库名称、表名称的数组值,判断是否是
     某垂直拆分库的对象;
伪分布式数据库的路由规则              DTCC2011
第二类通用领域的伪分布式数据库架构的路由规则:数据库路由表法
序列生成器的设计                  DTCC2011
功能
实现MySQL自带的字段值自动增长等效的功能;
同一应用集群中数据库表的自增类型字段值具有全局唯一性;
支持数据库级别的水平拆分表,同时还需要支持数据库内部的表二次水平
拆分,其ID值都来源于同一条配置记录;

数据库表结构
伪分布式数据库架构__电子商务等领域
                DTCC2011
伪分布式数据库架构__电子商务等领域
                DTCC2011
伪分布式数据库架构__SNS游戏等领域
                 DTCC2011
伪分布式数据库架构__SNS游戏等领域
                 DTCC2011
总结                      DTCC2011
1. 多从业务、开发成本和维护成本等角度分析、思考,解决当
 下难题,着眼未来可预见的一至三年面临的核心问题;
2.采用可行的、成熟的、稳定的开发技术和架构;
3.业务支持底线要远远大于80%,上线可无限接近且不超过99%;
4.合理规避架构中的单点故障;
5.合理利用数据存取设计技巧,规避架构带来的弊端;
6.充分权衡开发成本、伪分布式程序服务器和数据库等维护成本;
7.力争做到原应用程序不需要修改任何代码;
结束                             DTCC2011



              问答 & 感谢




会后网络交流联系方式MSN:eugene_jin@live.cn
        ITPUB ID:jinguanding
        新浪微博:http://weibo.com/mysqlops

浅谈伪分布式数据库架构