很多服务器上的couchdb复制

时间:2012-11-30 04:01:20

标签: database couchdb cluster-computing

我目前正在查看CouchDB,我明白我必须手动指定所有复制。如果我想在100个节点上使用它,我将如何进行复制?

  • 在每个节点上执行99“复制到”和99“复制”
    • 由于节点复制包括所有其他节点的复制,因此感觉有点过分
  • 执行1复制到下一个以形成圆圈(如A - > B - > C - > A)
    • 直到一次崩溃才会工作,然后一直等到它回来
    • 从第一个到最后一个
    • 复制的延迟很大

难道没有办法说:“这里有3个IP在整个网络上。连接到它们并按照你认为合适的方式与每个人共享”?

感谢您的见解

1 个答案:

答案 0 :(得分:1)

BigCouch不会提供开箱即用的交叉数据中心功能。 Cloudant DBaaS(基于BigCouch)确实已经跨多个数据中心进行了此设置。

BigCouch是Apache CouchDB的分片“Dynamo风格”分支 - 它将在未来合并到“主线”Apache CouchDB中,fwiw。分片位于同一数据中心的节点(服务器)之间。使用“经典”CouchDB样式复制(afaik)来保持各个数据中心的BigCouches不同步。

CouchDB风格的复制(n-master)是基于变更的,因此复制只包含最新的更改。

您需要为每个节点/数据库组合设置/从复制对设置。但是,如果您的所有服务器都是相同的,那么复制通常不会经常发生 - 只有在需要时才会发生。

如果A发生了更改,则复制会将其发送到BC(等)。但是,如果B - 刚刚进行了更改 - 在C获得机会之前将其复制到A - 由于网络延迟等原因 - {{1}终于尝试了,它会意识到数据已经存在,并且不再费心再次发送更改。

如果这是您设置的标准部分(即,每次创建数据库时,您希望将其复制到其他地方),那么我强烈建议自动进行设置。

另外,检查_replicator数据库。管理正在发生的事情要容易得多: https://gist.github.com/fdmanana/832610

希望有些东西是有用的。 :)