BigCouch 不会提供开箱即用的跨数据中心的东西。Cloudant DBaaS(基于 BigCouch)确实已经跨多个数据中心进行了此设置。
BigCouch 是 Apache CouchDB 的分片“Dynamo 风格”分支——它将在未来合并到“主线”Apache CouchDB,fwiw。分片跨位于同一数据中心的节点(服务器)上。使用“经典”CouchDB 样式的复制(afaik)来保持各个数据中心中的 BigCouches 不同步。
CouchDB 风格的复制(n-master)是基于变更的,所以复制只包括最新的变更。
您需要为每个节点/数据库组合设置到/从复制对。但是,如果您的所有服务器都打算完全相同,那么复制实际上不会经常发生——它只会在需要时发生。
如果A
发生更改,复制将其发送到B
和C
(等)。但是,如果B
- 刚刚获得该更改 - 将其复制到C
之前A
也有机会 - 由于网络延迟等 - 当A
最终尝试时,它将意识到数据已经存在,并且不会打扰发送更改再次。
如果这是您设置的标准部分(即,每次创建数据库时,您都希望将其复制到其他任何地方),那么我强烈建议您自动化设置。
此外,检查 _replicator 数据库。管理正在发生的事情要容易得多:
https ://gist.github.com/fdmanana/832610
希望里面的东西有用。:)