CouchDB 用于广泛分布的站点

CouchDB for widely scattered sites

我们正在开发一个科学网站,其中: * 一个权威数据源(master) * 150 多台边缘服务器分布在世界各地(客户端) * 连接到边缘服务器(子客户端)的潜在 5K 移动用户

我们需要从master复制地理空间数据(每个文档大约几百字节)并分发到全球。 许多边缘服务器以及移动设备只会偶尔连接。带宽可能非常低。

整个数据集可能会增长到 200GB 左右,但可以将其分割成更小的地理空间集以进行更小的涓流复制。

数据大部分是静态的。需要传播的更改远少于 1%。

我们的解读是 CouchDB 可能非常适合这个。有什么我们遗漏的吗?

还有其他我们应该关注的东西吗(例如 couchbase,)

这里要提出的主要问题是您是否打算使用过滤复制。这是一个漂亮的 CouchDB 的最弱点。

问题是,如果您分散的服务器,最重要的是,客户端只复制一部分数据,您将需要设置过滤功能,该功能没有索引。建立新的客户端连接后,它将 运行 处理 200 GB 的文档,相信我...

在上述情况下,解决方案是 Couchbase + SyncGateway,或一些基于自定义视图的复制层(这也是一个选项,因为您不会有太多更改,因此您可以简化它)

另一方面,如果您只有一种复制方式,您可能会发现您并没有从 CouchDB 同步机制中获益太多,这意味着同样的结果很可能通过以下方式实现任何其他集群数据库,例如 ElasticSearch,它具有惊人的查询性能、二进制内部分片协议、热节点插入,并且使用起来非常有趣

顺便说一句,Couchbase 也使用二进制复制机制,只要不使用 CouchDB 协议进行双向数据交换和冲突解决,这种机制比 CouchDB 更有效。