可扩展的 CouchDB 设置

jen*_*ren 6 replication scalability couchdb

我想迁移一个现有的应用程序,它大约有。1000 万条记录存储在 CouchDB 的关系数据库中。我喜欢 CouchDB 的一点是易于复制和快速缓存视图。我不喜欢的是写入和查看创建速度,这对于 1000 万个文档来说会非常慢。

我必须解决这些潜在瓶颈的一个想法是拥有三个 CouchDB 实例:

  1. 只写实例:这是主实例。我们的唯一真理。这里只允许更新、插入和删除。没有关于此实例的读取和视图。
  2. 仅视图创建实例:仅用于创建和缓存视图。此实例上没有读取或写入操作。
  3. 只读实例:通过复制视图进行读取访问。

实例 2 从实例 1 复制而来。由于不会有任何应用程序使用实例 2,因此可以在不影响生产应用程序的情况下创建新视图。

实例 3 从包含所有缓存视图的实例 2 复制而来。

这是一个可行的解决方案吗?

djc*_*djc 1

我相当确定 CouchDB 不会复制视图缓存(因为它们毕竟是缓存),因此您必须复制这些带外内容(在我看来,这有点没有抓住重点)。

CouchDB 对于写入量大的负载来说可能不太好。如果您的负载毕竟是读取繁重的,我想您可以在每次插入/更新后调用视图,以便视图始终完全由缓存支持。

免责声明:我在一些站点中使用 CouchDB,但远没有你所说的那么大。