在传统RDBM系统中,对于事务处理必须保证为一个完整的逻辑处理过程,具备ACID四个特性,A Atonomy 事务处理的原子性,要么成功,要么失败 ,C Consistency 一致性,数据库必须保持原有约束的关系,数据之间必须符合数据完整性,I Isolation 事务处理必须要彼此隔离,由RDBM保证能够并发处理事务,而不需要用户显示的干预,D Durability 数据能够被持久化下来,不会出现事务涉及数据丢失的情况。此4个特性是RDBM系统的基础要素和必须遵循的原则。

事物总是发展的,人类社会信息总量在不断增大,对于RDBM系统管理的数据容量已经从GB级别演进到TB级别,又从TB级别演进到PB级别,数据量不断增大,原有的RDBM已经力不从心。如何解决该问题?

软件设计很多思想都来自于建筑领域,先回到建筑领域,房屋建造有2要素,建筑高度、基础构造,建筑高度决定基础构造,而基础构造又会影响到建筑高度,建设一栋三层小房,专混结构就可以了,建设十一层房子,就需要上框架结构,摩天大楼,需要采用钢和框架的混合结构方式来支撑。软件设计也有相同的道理,也存在2个要素,一个容量要素,软件能够管理多少数据规模,一个是软件构造要素,软件运行的物理硬件、操作系统、采用何种架构来组织软件各功能模块。二者对应关系,“建筑高度”对应于“容量”,“基础构造”对应于“软件构造”,但是,二者有所不同,由于建筑物需要考虑成本、实用性、安全性和各种限制,建筑高度一定是有限的,总有一个极限,而软件则有所不同,一个大容量系统数据量已经从GB级增加到了TB级,从TB级到PB级,跃升了6个数量级,软件容量呈现指数级的增加,使得软件设计面临比建筑领域更大的挑战。

如何解决数据容量持续增加带来的挑战,第一 提升系统的计算能力,可以并行对应数据进行分区域或者分块计算,然后对应计算结果进行汇集处理,第二 提升数据的读取速度,单存储节点的读取速度必定存在限制,需要指出多存储节点的DB系统,分布式数据库DDBS系统诞生了,分布式数据库系统可以支持多个存储节点,从GOOGLE的BIGTBALE数据库原理相对应的HBASE数据库,就可以支持多个存储节点,存储节点的数量可以根据要求进行扩展,无理论上限。但是分布式数据库采用对存储节点构造后,带来了一个新的问题,这个问题就是CAP理论的魔咒,CAP为英文Consistent、Availablity、Partition Tolerance 的缩写,一致性,可用性、分区容忍性,通常认为CAP理论是只能满足二个要求,不可兼得(这种限制,其实已经被GOOGLE的SPanner系统打破)。常见的DDBS系统可以保证AP,但是无法保证C,一致性,比如HBASE数据库,就无法保证多个存储区域的外部事务的一致性,如果数据跨了多个存储节点,数据可能存在冲突的可能,不一致的可能,无法做到数据表外的事务支持。ACID特性是一个数据库完美解决的要求,但DDBS要满足ACID特性中的原子性和各存储节点数据的外部一致性存在很大的困难,如果对二种不同的特征描述进行关联, AC---Consistent 事务的原子性和一致性对应于DDBS一致性属性要求,ID---Availablity,事务的隔离性和持久化对应于DDBS可用性属性要求,而DDBS的Partition Tolerance会带来满足AC或者ID属性的困难,因此很多DDBS会进行特性取舍。

因此,如果让DDBS系统,使之完全满足ACID的特性,必须要解决数据Partition后带来的困难,数据分成多个存储节点,如何在满足事务隔离和持久化特性的基础上,保证这些不同存储节点上的数据一致性可用性,让DDBS呈现出完全的ACID特性,打破CAP的魔咒,最常用的方式是不同数据节点的同步和全局锁控制,如果采用这种控制机制,必然会带来系统网络同步开销增加,系统的Availability能力下降,而且会出现全局锁瓶颈点,影响到系统的扩展性,出现扩展后的瓶颈点,因此这条解决方案很难走通。那我们是否能够从不一致和不确定基础上,构造出一个可靠和确定的DDBS系统,GOOGLE的SPanner数据库设计思想为解决该问题带来的新的希望,以一种全新的视角和思路来解决该问题,在可以期待的将来,开源社区也能够出现与SPanner方式对应的产品出现,使得DDBS系统应用范围更加宽广。

综上所述,从CAP特性理论看,面对传统的权威理论,技术上要敢于去挑战,勇于分析,可以另辟蹊径解决技术问题,解决这些问题最大困难还是改善软件开发人员的认识,一旦认识成为定势,势必陷入到死胡同中,同时必须具备深厚的技术功底和高超编程技巧,从开源社区现在还缺乏类似于Spanner技术看,充分说明了这个技术要从思想走到实现,存在非常多的技术设计难点,要搞定这些设计难点绝无易事,但值得庆幸的,已经有人做到了,而且还在不断的完善它。

转载于:https://blog.51cto.com/802796/1350118

从分布式数据库的CAP特性说起相关推荐

  1. 分布式数据库中CAP原理CAP+BASE

    一.传统的ACID 分别是什么 1.A: atomicity 原子性 2.C: Consistency 一致性 3.I: Isolation 独立性 4.D: Duraility 持久性 二.CAP ...

  2. 分布式数据库CAP原理

    分布式数据库CAP原理 CAP简介 CAP理论 CAP总结 CAP简介 传统的关系型数据库事务具备ACID: (1)A :原子性 (2)C :一致性 (3)I :独立性 (4)D :持久性 分布式数据 ...

  3. 分布式数据库技术论坛回顾

    2019年6月29日,杭州天气炎热,智汇中心11楼的分布式数据库技术论坛也同样热火朝天. 会议于2019年06月29号在杭州市滨江区智汇中心的11楼准时召开,与会的相关人员积极参与,一起聆听了来自Pl ...

  4. 【新书速递】从原理、架构、案例三个维度深度剖析分布式数据库

    分布式数据库是分布式计算与数据库结合的产物.分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视.这得益于互联网和云计算技术的高速发展与广泛应用. 以"国家政务服务平台&quo ...

  5. 银行核心系统如何选型分布式数据库(含6大落地要点验证)

    本文根据洪烨老师在[deeplus直播:金融业数据库转型与国产化改造]线上分享演讲内容整理而成.(文末有回放的方式,不要错过) 洪烨 光大银行 数据库专家 具有多年银行业系统架构设计及DBA实战经验, ...

  6. 分布式数据库使用逻辑卷管理存储之扩容

    开务数据库作为一款浪潮自主研发的国产分布式数据库,一大特性便是可支持 PB 级的数据服务.从存储层面来看,开务数据库不仅可以使用物理磁盘,也可以使用逻辑卷的方式来管理存储.使用逻辑卷,主要有以下两大场 ...

  7. KaiwuDB 分布式数据库-介绍

    软件简介 KaiwuDB 是浪潮打造的一款分布式数据库产品,具备强一致.高可用分布式架构.分布式水平扩展.高性能.企业级安全等特性,自研的原生分布式存储引擎支持完整 ACID,支持 PostgreSQ ...

  8. 说说你理解的分布式数据库

    分析&回答 概述 分布式数据库是数据库技术与网络技术相结合的产物,它通过网络技术将物理上分开的数据库连接在一起,进行逻辑层面上的集中管理.分布式数据库具有如下特性: 分布性:数据库中的数据不是 ...

  9. 什么是云原生分布式数据库?

    这两天朋友圈中刷屏最多的是达梦数据库产品发布会,众多嘉宾,群星璀璨, 此次一口气推出了达梦数据共享集群(DMDSC).达梦启云数据库(DMCDB).梦图数据库(GDM).达梦新一代分布式数据库等四款产 ...

最新文章

  1. 安全绳使用方法图解_电暖器的使用方法与安全注意事项
  2. LINUX 上的 Shebang 符号(#!)
  3. 聊聊并发(七)——Java中的阻塞队列
  4. ReactNative学习笔记(一)环境搭建
  5. linux cached 进程,关于Linux cached内存简析
  6. QT 字符串的使用技巧总结
  7. 用google mock模拟C++对象
  8. S4HANA事务码MM01创建物料的调试
  9. 零基础学习WinCE开发
  10. 学习python可以从事哪些工作_学习Python可以从事哪些工作呢?
  11. go token验证_GitHub - goflyfox/gtoken: 基于gf框架的token插件,通过服务端验证方式实现token认证;...
  12. H5桌面通知: Notification API 的应用
  13. a.out的构成及运行时在内存区域的分配
  14. python爬取斗鱼礼物数据_Python---20行代码爬取斗鱼平台房间数据(上)
  15. 办公技巧:分享100个Excel快捷键,值得收藏!
  16. 【邮件格式规则】-工作中电子邮件的使用
  17. 外贸常用术语_外贸常用术语大全-
  18. 盘点免费好用的5款思维导图工具
  19. 刷程序对车危害_汽车刷程序对车有什么影响
  20. 《机器学习基础》学习笔记-1

热门文章

  1. Python 之 matplotlib (十一) 3D
  2. 2G---5G与未来天线技术
  3. 5分钟,看尽芯片和摩尔定律“你追我赶”的抗衡50年
  4. 颠覆性技术的兴起及其影响
  5. 71页《乌镇智库:全球人工智能发展报告(2018)》PDF下载
  6. 《中国大数据产业白皮书及百强榜单》:一览中国大数据产业发展全局
  7. 谷歌自动驾驶是个大坑,还好中国在构建自己的智能驾驶大系统
  8. 2017年中国人工智能产业专题研究报告(完整版)
  9. 程序员,你得一条道走到黑!
  10. 十年磨一剑!程序员老兵成新将