我们正在开发一个科学网站: *一个权威的数据来源(主) *遍布全球的150多台边缘服务器(客户端) *潜在的5K移动用户连接到边缘服务器(子客户端)
我们需要从主服务器复制地理空间数据(每个文档大约几百个字节)并将其分发到全球各地。 许多边缘服务器以及移动设备只会偶尔连接。带宽可能非常低。
整个数据集可能会增长到大约200GB,但可以将其细分为更小的地理空间集,以实现更小的涓流复制。
数据在很大程度上是静态的。只有不到1%的变化需要传播。
我们的阅读是CouchDB可能非常适合这一点。有什么我们遗失的吗?
我们应该关注其他事情(例如,沙发基地)
答案 0 :(得分:3)
这里要提出的主要问题是,您是否打算使用过滤复制。这是另一个美丽的CouchDB中最薄弱的一点。
问题在于,如果分散的服务器,最重要的是客户端只复制一部分数据,则需要设置过滤功能,该功能未编入索引。在新的客户端连接时,它将运行200 GB的文件,你不想在那里等到它完成,相信我...
在上面的例子中,解决方案是Couchbase + SyncGateway,或者是一些基于自定义视图的复制层(这也是一个选项,因为你不会有很多变化,所以你可以简化它)。
另一方面,鉴于您只有一种方式复制,您可能会发现您没有从CouchDB同步机制中获得那么多,然后它将意味着可以通过任何其他方式实现相同的结果像ElasticSearch这样的集群数据库,它具有惊人的查询性能,二进制内部分片协议,热节点插入,并且非常有趣。
Couchbase,btw,也使用二进制复制机制,它比CouchDB更有效,只要CouchDB协议不用于双向数据交换和冲突解决。