2

NimbusDB网站:

我们的分布式非阻塞原子提交协议允许在任何可用节点上进行数据库事务处理。

他们声称他们可以保证分布式环境中的 ACID 事务,并提供所有:一致性、高可用性和分区容错性。据我所知,他们克服 CAP 定理限制的“秘诀”是某种“可预测且一致的”管理网络分区的方式。

我想知道是否有人对背后的内容有一些见解或更多信息?

4

2 回答 2

3

“一致性”一词有多种可能的含义。参见,例如,为什么 CAP 定理中的 C 与 ACID 中的 C 不同?.

另外,关于“ACID”中 C 的含义也可能存在某种程度的争论:虽然它通常在与数据库完整性相关的意义上定义(“任何事务都不应看到违反声明约束的数据库状态- 以该事务本身创建的不一致为模”),一位评论者说,他将其解释为指“任何事务所看到的(或者可能更好,有效使用的)数据库状态在该事务处于进度。释义:如果事务以至少可重复的读取模式执行,则它们是符合 ACID 的。

如果您将 CAP-C 表示“所有节点同时看到相同的数据”,那么可用性必然受到阻碍,因为当系统忙于将数据分发到各个节点时,它不能允许任何事务访问(旧版本)该数据。(当然,除非需要访问旧版本,例如当事务在 MVCC 下运行时。)

如果您将 CAP-C 理解为“没有事务可以看到不一致的数据库状态”,那么本质上是相同的,只是现在用户的更新过程应该锁定所有人的访问权限其他交易。

如果您强加一条规则,即“只要事务访问特定节点 N 以从某个资源 R 中读取(假设 R 理论上可以在多个节点上访问),那么每当该事务再次访问 R 时,它应该这样做所以在同一个节点N上。”,那么我可以想象这会增加你对“一致性”的保证,但是你支付可用性,因为如果节点N掉线,那么正是由于施加的规则,你的交易不能再访问R了即使它可以在其他节点上完成。

无论如何,我认为,如果像伯克利这样的机构提出了某个定理的证明,那么如果您将诸如您提到的那种喧嚣的主张视为营销谎言,那么您是安全的。

于 2011-05-20T12:33:05.477 回答
1

这篇文章写完已经有一段时间了,从那时起,NuoDB 在他们的网站上添加了很多产品营销和技术资源。

他们通过使用分布式数据缓存系统实现了数据持久性和 ACID 合规性。他们现在称其为“紧急架构: ”(第 6-7 页)

该架构开辟了各种可能的未来方向,包括“时间旅行”,即创建数据库副本以在更早的时间重新创建其状态的能力;“云爆发”,即跨由不同组管理的云系统移动数据库的能力;“小圈子”是一种解决 CAP 定理的机制,它允许 DBA 指定哪些系统在网络分区中幸存下来,以提供一致性和分区抗性以及持续可用性。

它的工作原理页面:

今天的数据库供应商围绕传统系统应用了三种常见的设计模式,以将它们扩展到分布式横向扩展数据库系统。这些方法——共享磁盘、无共享和同步提交——克服了单服务器部署的一些限制,但仍然很复杂并且容易出错。

通过从头开始重新思考数据库设计,NuoDB 的技术创始人 Jim Starkey 提出了一种全新的设计方法,称为持久分布式缓存 (DDC)。最终效果是一个系统可以在商品机器和虚拟机上动态扩展/缩小,没有单点故障,并提供完整的 ACID 事务语义。

NuodDB 的 NewSQL 模型与更传统的 RDMS 系统的主要架构区别在于,NuoDB 颠倒了内存和存储之间的传统关系,创建了一个符合 ACID 的 RDBMS,其底层设计类似于分布式 DRAM 缓存。从 NuoDB持久分布式缓存页面:

迄今为止,所有通用关系数据库都是围绕以存储为中心的假设构建的。不幸的是,这产生了与横向扩展相关的基本问题。实际上,这些数据库系统是花哨的文件系统,它们安排了对基于磁盘的文件的并发读/写访问,这样用户就不会相互干扰。

NuoDB DDC 架构颠倒了这个想法,将数据库想象成一组内存中的容器对象,必要时可以溢出到磁盘,并且可以保留在后备存储中以实现持久性。

NuoDB DDC 架构中的所有服务器都可以请求和提供对象(称为 Atom),从而彼此充当对等点。某些服务器在任何给定时间都有对象的子集,因此只能将数据库的子集提供给其他服务器。其他服务器拥有所有对象并且可以提供其中任何一个,但提供不驻留在内存中的对象会更慢。

NuoDB 由两种类型的服务器组成:事务引擎 (TE) 保存对象的子集;存储管理器 (SM) 是具有所有对象的完整副本的服务器。TE 是纯内存服务器,不需要使用磁盘。它们是自治的,可以根据需要从内存中单方面加载和弹出对象。与 TE 不同,SM 不能在使用完物品后将物品扔到地板上;相反,他们必须确保将它们安全地放置在耐用的仓库中。

对于那些熟悉缓存架构的人来说,您可能已经认识到这些 TE 实际上是分布式 DRAM 缓存,而 SM 是确保持久性的专用 TE。因此命名为持久分布式缓存。

他们还发布了一份技术白皮书,深入探讨了子系统组件及其协同工作的方式,为符合 ACID 的 RDMBS 提供了 NoSQL 系统的大部分性能(注意:在他们的网站上注册以下载白色纸)。总的要点是,他们提供了一个自动化的网络集群分区系统,当与他们的持久存储系统结合使用时,可以解决CAP Theorem的问题。

他们的在线文档库中也有很多内容丰富的技术白皮书和关于他们技术的独立分析报告

于 2014-06-15T20:25:12.997 回答