CouchDB 数据 syncing/downloading

CouchDB data syncing/downloading

我正在构建一个新的移动应用程序,并打算使用 Apache CouchDB 和 Couchbase Lite 来实现一个 offline/online 数据同步模型。一个基本的 CRUD 已完成并正在运行。

我的问题是同步了多少数据。示例:

中央数据库有3个用户的数据。假设每个用户创建 100Mb 的数据,这些数据在服务器中同步。

每个用户创建的数据对其他用户是不可访问的,从移动客户端进行的查询从不包含其他用户的数据。

如果用户只查询和创建自己的数据,他的设备中会有 300Mb 的数据还是只有他自己的 100Mb?

我假设您在 CouchDB 服务器中只有一个数据库,3 个用户正在其中复制他们的本地数据库。在这种情况下:

  • 如果您执行从移动设备到服务器的推送复制,只有它自己的数据在本地 Couchbase lite 数据库中。

  • 如果您还执行从服务器到移动设备的拉取复制,则本地 Couchbase lite 数据库将具有完整的服务器数据库(3 个用户的数据)

CouchDB 可以帮助您解决这个问题,因为它支持过滤复制。在这种情况下,您可以使用参数化过滤器功能,该功能允许您将自己的数据复制到每个用户的设备。

我不确定 Couchbase Lite 是否支持过滤复制,因为它专注于 Couchbase Sync Gateway。

我可以确认 Cloudant Sync 支持基于过滤函数和芒果查询的过滤复制。

如果您的数据库增长,过滤函数可能会导致您遇到性能问题。 Mango 查询选择器是一种更高效的数据库过滤解决方案。