RavenDB如何实现一致性,可用性和分区容忍度?

Vad*_*dim 4 ravendb cap

根据CAP定理,分布式计算机系统不可能同时提供一致性可用性和分区容限。

阅读有关RavenDB的信息后,该数据库似乎同时支持ACID事务和分片。RavenDB如何实现这一目标?

Dan*_*ang 5

首先要澄清
一下默认情况下,在RavenDB会话中,两次调用之间的所有写入.SaveChanges()都是“全有或全无”。如果一项操作由于任何原因失败,则当前会话中的所有更改/自上次保存以来的所有更改都将被丢弃。结合启用开放式并发功能,此功能非常强大。如果您需要更长的交易时间,则也支持System.Transaction,它可以按预期运行。

关于分片:分片设置
中没有对分布式事务的真正支持。但是,由于参考文档的分片策略很好,因此您可以在每个商店上进行事务性写入。它们的工作原理就好像根本没有碎片一样。