Paip. DDBS 分布式 数据库系统 attilax总结C0G
4.5. 使用MySQL federated 引擎构建 MySQL 分布式数据库访问层 3
作者Attilax , EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
1. 分布式数据库系统(DDBS)
分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的 DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。
一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好像那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。
2. 优点:
2.1. 透明性
就是分布式透明性。所谓分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。
2.2. 扩展性
当一个单位规模扩大要增加新的部门(如银行系统增加新的分行,工厂增加新的科室、车间)时,分布式数据库系统的结构为扩展系统的处理能力提供了较好的途径:在分布式数据库系统中增加一个新的结点.这样做比在集中式系统中扩大系统规模要方便、灵活、经济得多。
在集中式系统中为了扩大规模常用的方法有两种:一种是在开始设计时留有较大的余地.这容易造成浪费,而且由于预测困难,设计结果仍可能不适应情况的变化.另一种方法是系统升级,这会影响现有应用的正常运行.并且当升级涉及不兼容的硬件或系统软件有了重大修改而要相应地修改已开发的应用软件时,升级的代价就十分昂贵而常常使得升级的方法不可行.分布式数据库系统能方便地把一个新的结点纳入系统,不影响现有系统的结构和系统的正常运行,提供了逐渐扩展系统能力的较好途径,有时甚至是唯一的途径。
2.3. 可靠性和可用性
改善系统的可靠性和可用性是分布式数据库的主要目标.将数据分布于多个场地,并增加适当的冗余度可以提供更好的可靠性.一些可靠性要求较高的系统,这一点尤其重要.因为一个地出了故障不会引起整个系统崩溃.因为故障场地的用户可以通过其它场地进入系统.而其它场地的用户可以由系统自动选择存取路径,避开故障场地,利用其它数据副本执行操作,不影响业务的正常运行.
3. 主要缺点
(1)系统开销大,主要花在通信部分。
(2)复杂的存取结构,原来在集中式系统中有效存取数据的技术,在分布式系统中都不再适用。
(3)数据的安全性和保密性较难处理。
4. 市场产品
4.1. HBase
4.2. Hypertable
4.3. Hadoop -----Hive
4.4. 基于MySQL的分布式数据库实践
第一阶段:MySQL+Memcached
4.5. 使用MySQL federated 引擎构建 MySQL 分布式数据库访问层
mysql proxy : 主要实现读写分离和负载均衡
MySQL Amoeba : 由陈思儒主导开发 功能比较完善,用深入应用的价值。
HiveDB : HiveDB是一个用来横向切分 mysql 数据库的开源框架,构建一个高性能和可扩展的基于 mysql 的系统,但目前仅支持 Java 客户端。
我认为mysql proxy, MySQL Amoeba 都是极好的实用价值,应该多深入了解之。
而本文所描述的 federated属于 MySQL的一种特殊引擎,利用它可将本地数据表映射至远程 MySQL 数据表,从而就可以解决应用程序中繁多的跨机器连接数据库问题,拓扑图如下:
4.6. 用Amoeba构架MySQL分布式数据库环境
4.7. Facebook开源的Cassandra
4.8. 淘宝的Amoedb
5. 参考
新浪微博基于MySQL的分布式数据库实践-IT168 技术开发专区.htm
使用MySQL federated 引擎构建 MySQL 分布式数据库访问层_数据库技术_Linux公社-Linux系统门户网站.htm