根据CAP理论,一致性(C),可用性(A),分区容错性(P),三者不可兼得,必须有所取舍。 而传统数据库保证了强一致性(ACID模型)和高可用性,所以要想实现一个分布式数据库集 群非常困难,这也解释了为什么数据库的扩展能力十分有限。而近年来/NEfj
SIQffiESM
mysqld
ndbd
Castons
LNDBAPI)
(* NDB\
Management I
•碗J
MySQL cluster目前的主要问题是性能不佳,但是我认为MySQL cluster的架构是分布式数 据库未来的趋势,Oracle收购MySQL后,很多人对MySQL的前途表示担忧,而我作为一 个用户,除了可能会收费这件事以外,我一点也不担心MySQL的前景,反而有所期待,因 为在数据库领域没有任何一个公司比Oracle更懂数据库,而Oracle也正在大力发展MySQL cluster,MySQL cluster一定会成为分布式数据库领域内最好的解决方案之一。
NoSQL数据库异军突起,,NoSQL运动 已经蓬勃发展,NoSQL数据库很多,如何对他们分类,以便方便地根据自己应用特色选择 不同的NoSQL数据库呢?
NoSQL = HVSP无(传统关系数据库的)join或明显事务的高容量简单处理。
按照数据模型保存性质将当前NoSQL分为四种:
Key-value stores 键值存储,保存 keys+BLOBs (二进制大对象 Binary Large OBjects)
Table-oriented 面向表,主要有 Google 的 BigTable 和 Cassandra.
Document-oriented面向文本,文本是一种类似XML文档,MongoDB和CouchDB
Graph-oriented Neo4J.
NoSQL 一般都是分布式数据库,高性能是其特点,因此,数据是如何被分布、复制/碎片 以及合成就成为关键,这其中涉及你的应用对数据一致性的要求,见CAP原理,不同一致 性处理方式决定不同类型:
1■,即使你有 。那种强制性节点一致性,女[2PC,两段事 务提交将会让你的写关闭停顿,使用Dynamo-like风格你能将数据写到多个节点中,通过 一致hashing,然后你可以从这些节点读取数据,返回正确结果给用户。
2■,使用常用方式保持节点充分的一致性。比如同步复制, 由数据自己活或数据所在位置来实现一致性,不同产品实现细节不一样。
比如:MongoDB有一个面向文本类型的数据模型,它采取类似BigTable-like复制策略; Cassandra有面向表table-like数据模型,采取的是Dynamo-like风格.
以后应该有数据是如何被持久化保存到磁盘上的区分,不同NoSQL处理策略不一样,有 的是写一次保存一次;有的是定期保存,后者性能要好些。
-NoSQL数据库最终一致性/BASE VS ACID -
CAP理论
六月 22nd, 2010 • No Comments •存储&NoSQ
CAP理论与分布式数据库 来自淘豆网m.daumloan.com转载请标明出处.