CouchDB适用于广泛分散的站点

时间:2015-08-03 19:43:19

标签: couchdb couchbase

我们正在开发一个科学网站: *一个权威的数据来源(主) *遍布全球的150多台边缘服务器(客户端) *潜在的5K移动用户连接到边缘服务器(子客户端)

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

整个数据集可能会增长到大约200GB,但可以将其细分为更小的地理空间集,以实现更小的涓流复制。

数据在很大程度上是静态的。只有不到1%的变化需要传播。

我们的阅读是CouchDB可能非常适合这一点。有什么我们遗失的吗?

  • 由于数据仅在原点更改,因此处理复制 冲突变得非常简单
  • 现在通过GeoCouch支持地理空间搜索(不如我们目前使用的PostGIS数据库那么好,但是 可能还不错)
  • CouchDB索引应该在数据具有低流失率的情况下提供帮助
  • 我们不关心低延迟交易(数据更新速度慢)
  • GeoJSON非常适合我们的数据类型
  • 我们真的想要免费复制
  • 我们确实希望快速本地搜索数据(基于空间和其他功能,我们会得到这个吗?)。速度通过人的表现来衡量,例如谷歌搜索,而不是大规模自动搜索
  • 我们会关注腐败和故障检测。但它似乎是一个转储并重新加载数据库可以在边缘服务器发生灾难的情况下完成,对吗?

我们应该关注其他事情(例如,沙发基地)

1 个答案:

答案 0 :(得分:3)

这里要提出的主要问题是,您是否打算使用过滤复制。这是另一个美丽的CouchDB中最薄弱的一点。

问题在于,如果分散的服务器,最重要的是客户端只复制一部分数据,则需要设置过滤功能,该功能未编入索引。在新的客户端连接时,它将运行200 GB的文件,你不想在那里等到它完成,相信我...

在上面的例子中,解决方案是Couchbase + SyncGateway,或者是一些基于自定义视图的复制层(这也是一个选项,因为你不会有很多变化,所以你可以简化它)。

另一方面,鉴于您只有一种方式复制,您可能会发现您没有从CouchDB同步机制中获得那么多,然后它将意味着可以通过任何其他方式实现相同的结果像ElasticSearch这样的集群数据库,它具有惊人的查询性能,二进制内部分片协议,热节点插入,并且非常有趣。

Couchbase,btw,也使用二进制复制机制,它比CouchDB更有效,只要CouchDB协议不用于双向数据交换和冲突解决。