来自NimbusDB网站:
我们的分布式非阻塞原子提交协议允许在任何可用节点处进行数据库事务处理。
他们声称他们可以保证分布式环境中的ACID事务,并提供所有:一致性,高可用性和分区容错。据我所知,他们克服CAP定理局限性的“秘密”是管理网络分区的某种“可预测且一致”的方式。
我想知道是否有人有什么见解或更多关于背后的信息?
答案 0 :(得分:3)
“一致性”一词有多种可能的含义。例如,参见Why is C in CAP theorem not same as C in ACID?。
另外,对于'ACID'中C的含义也有一定程度的争论:虽然它通常是在与数据库完整性相关的意义上定义的(“任何事务都不会看到违反的数据库状态”一个声明的约束 - 模拟当前事务已创建的不一致性“),一位评论者称他将其解释为”任何交易所见的数据库状态(或者可能更好,有效使用)“事务正在进行中。释义:如果事务以至少可重复的读取模式执行,则事务符合ACID。
如果你认为CAP-C意味着“所有节点同时看到相同的数据”,那么可用性必然受到阻碍,因为当系统忙于将数据分发到各个节点时,它不允许任何事务访问到(旧版本)那个数据。 (当然,除非当然需要访问老版本,例如当事务在MVCC下运行时。)
如果你认为CAP-C的意思是“没有事务可以看到不一致的数据库状态”,那么基本上同样适用,除了它现在是用户的更新过程应该被锁定访问所有其他交易。
如果你施加一个规则,“只要一个事务访问某个特定节点N从某个资源R读取(假设理论上可以在多个节点上访问R),那么每当该事务再次访问R时,它应该在同一个节点N上这样做。“,那么我可以想象这会增加你对”一致性“的保证,但你支付可用性,因为如果节点N掉了,那么正是因为规则强加,你的交易不能即使可以在其他节点上完成,也可以访问R.
无论如何,我认为如果像伯克利这样的机构提出某些定理的证明,那么如果你考虑像你所提到的那样的强烈主张,那么你就是安全的,因为市场营销存在。 / p>
答案 1 :(得分:1)
这篇文章写完以来已经有一段时间了,从那以后NuoDB在他们的网站上为他们的产品营销和技术资源增加了很多。
他们通过使用分布式数据缓存系统实现数据持久性和ACID合规性。他们现在称之为“Emergent Architecture:”(第6-7页)
该架构打开了各种可能的未来方向,包括“时间旅行”,即创建数据库副本的能力,该数据库在较早时间重建其状态; “云爆发”,能够跨越由不同组管理的云系统移动数据库;和 “coteries”是一种解决CAP定理的机制,它允许DBA指定哪些系统在网络分区中存活,以提供连续可用性的一致性和分区阻力。
来自How It Works页面:
今天的数据库供应商已经围绕传统系统应用了三种常见的设计模式,将它们扩展到分布式横向扩展数据库系统。这些方法 - 共享磁盘,无共享和同步提交 - 克服了单服务器部署的一些限制,但仍然很复杂且容易出错。
通过退出并重新思考数据库设计,NuoDB的技术创始人Jim Starkey提出了一种全新的设计方法,称为持久分布式缓存(DDC)。净效应是一个在商用机器和虚拟机上动态扩展/进入的系统,没有单点故障,并提供完整的ACID事务语义。
NuodDB的NewSQL模型与更传统的RDMS系统之间的主要架构差异在于,NuoDB颠覆了内存和存储之间的传统关系,创建了一个符合ACID标准的RDBMS,其底层设计类似于分布式DRAM缓存。来自NuoDB Durable Distributed Cache页面:
迄今为止,所有通用关系数据库都是围绕以存储为中心的假设构建的。不幸的是,这会产生与向外扩展相关的基本问题。实际上,这些数据库系统是花哨的文件系统,它们安排对基于磁盘的文件进行并发读/写访问,这样用户就不会相互干扰。
NuoDB DDC架构颠覆了这一想法,将数据库想象成一组内存容器对象,如果需要可以溢出到磁盘,并且可以保留在后备存储中以实现持久性。
NuoDB DDC架构中的所有服务器都可以请求和提供对象(称为Atoms),从而充当彼此的对等体。某些服务器在任何给定时间都有对象的子集,因此只能将数据库的子集提供给其他服务器。其他服务器拥有所有对象并且可以提供任何对象,但是提供不驻留在内存中的对象会更慢。
NuoDB由两种类型的服务器组成:事务引擎(TE)拥有对象的子集;存储管理器(SM)是具有所有对象的完整副本的服务器。 TE在内存服务器中是纯粹的,不需要使用磁盘。它们是自治的,可以根据需要单方面从内存中加载和弹出对象。与TE不同,SM不能只是在完成它们时将物体掉落在地板上;相反,他们必须确保将它们安全地放置在耐用的存储空间中。
对于那些熟悉缓存架构的人,您可能已经认识到这些TE实际上是分布式DRAM缓存,而SM是专门的TE,可确保持久性。因此,名称为Durable Distributed Cache。
他们也publish a technical white paper深入了解子系统组件以及它们协同工作的方式,以提供符合ACID标准的RDMBS以及NoSQL系统的大部分性能(注意:在其网站上注册下载白皮书)。一般要点是,它们提供了一个自动化网络集群分区系统,当与其持久存储系统结合使用时,可解决CAP Theorem的问题。
还有很多关于他们技术的信息技术白皮书和独立分析报告。