具有共享数据可伸缩性的CouchDB db-per-user

时间:2018-02-20 13:27:57

标签: synchronization couchdb replication scalability pouchdb

我有一个具有以下架构的应用程序: enter image description here

master couchdb需要在用户之间共享数据。 EG:如果user-1将数据写入云,则复制到主服务器并返回给user-2和user-3。

但是,随着用户群的增加,云用户couchDB的数量也在增加,这导致云用户couchDB和主沙发数据库之间存在大量复制链接。

我相信这会导致巨大的瓶颈。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

你是对的:CouchDB的每用户数据库模式可能会遇到可扩展性问题。这与CouchDB复制器将难以服务其要求处理的同时复制作业数量这一事实有关。如果您知道您的用户数量会随着时间的推移而增长,那么值得考虑将多个用户的数据复用到单个(或少数)数据库中的架构。

这使得身份验证和复制变得更加棘手,因为CouchDB仅对每个数据库进行身份验证,并且您最终可能会在其间使用另一个层来解决此问题。

一种方法是使用复制代理,例如Cloudant Envoy,它可以使您的PouchDB应用程序保持不变 - 客户端上的模型仍然是“每用户数据库”,但实际写入将转到单个DB服务器端。这也意味着您可以避免将服务器端复制到主Envoy数据库中的主数据库中。

免责声明:我是特使的作者之一。