与Couchbase-lite一起使用时,Sync Gateway每次更改都会创建一个文档

艾妮丝·辛格(Anish Singh)

从我观察到的:

  1. 对于您创建的每个文档,还将创建一个修订管理器文档。该修订管理器跟踪最新修订,还维护阵列中所有修订的历史记录。
  2. 每次更新文档时,都会创建一个新文档(为什么???)。修订管理器文档的最新指针指向该新文档,并将先前的文档添加到其修订历史列表中。
  3. 因此,在每个更新操作中,Sync-Gateway都将添加一个新文档,同时还要修改修订管理器文档。

这是进行版本控制的非常低效的方式,其中维护整个文档的副本以进行版本控制,而不仅仅是diff,因为这将占用大量空间。(例如:在“ GrocerySync-Android”示例应用程序中,对单个待办事项执行500次轻敲,将占用8.03MB的磁盘空间。此外,版本管理器文档已大于2.5 kb,并且我收到一条消息,提示您不能修改超过2.5 kb的文档。为什么????)

问题:

  1. _sync:local:文档是关于什么的?
  2. 是否可以关闭这种默认行为,即在更新时创建新文档并仅保留最新副本。(一种方法可能是删除客户端中的较早版本,但我想这不会修改版本管理器文档。)
贾米尔兹

在分布式系统中,尤其是用于iOS / Android和其他嵌入式设备的分布式系统中,在每个修订版本中保留完整的属性集非常重要。

在这种系统中使用补丁/差异方法可能会导致更多的不一致,例如,只有在也存在某些先前状态的情况下,更新才有意义。否则,向用户显示文档的差异将无法提供出色的用户体验。它非常适合其他用例,例如源代码的版本控制(Git,Mercurial ...)

在复制协议中可以利用补丁/差异方法。Couchbase Lite iOS存储库中有一张开放式票证,讨论仅传输修订版增量的可能性。

如果只想保留少量修订,请更改maxRevTreeDepth属性以指定要保留在文档树历史记录中的修订数量(默认为20,在此处了解更多信息)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 couchbase-lite 2.5 与 javafx 应用程序一起使用

来自分类Dev

Couchbase Sync Gateway如何获取Couchbase服务器更改?

来自分类Dev

Couchbase查看超过一个月的文档

来自分类Dev

将Couchbase与Rails一起使用是个好主意吗?

来自分类Dev

无法在Couchbase Sync Gateway中创建用户

来自分类Dev

如何使用CAS替换Couchbase文档-CouchBase Node JS 2.0

来自分类Dev

如何使用CAS替换Couchbase文档-CouchBase Node JS 2.0

来自分类Dev

Couchbase Sync Gateway AdminUI在哪里?

来自分类Dev

Couchbase Sync Gateway用户密码重置

来自分类Dev

Couchbase Sync Gateway AdminUI在哪里?

来自分类Dev

iOS使用CouchBase Lite

来自分类Dev

静态工厂方法每次调用时都会创建一个新对象

来自分类Dev

AppServiceHub 中的 jdbcSession() 方法是否在每次调用时都会创建一个新会话?

来自分类Dev

如何使用Couchbase服务器配置sync_gateway

来自分类Dev

使用带有 swift 4.0 的 Firestore DB,每次我进行身份验证时,保存到数据库都会创建一个随机字符文档

来自分类Dev

与open一起使用时未创建/打开文件

来自分类Dev

如何使用Couchbase中的视图获取文档

来自分类Dev

在Couchbase中联接文档并使用聚合函数

来自分类Dev

与..open一起使用时跳过一行

来自分类Dev

每次使用String时,都会创建一个新的String对象吗?

来自分类Dev

创建一个字典,每次使用它的值都会更新

来自分类Dev

将tensorflow lite与Qt一起使用

来自分类Dev

将useState与[]和不与之一起使用,以及与{}一起使用时的区别

来自分类Dev

Angular /选择时每次更改都会发送另一个get请求

来自分类Dev

调用一个参数,每次迭代都会更改的函数[python]

来自分类Dev

为什么每次保存文件时vim都会创建一个新文件?

来自分类Dev

每次调用Java时,Java都会创建一个新的iterator()实例吗?

来自分类Dev

每次按下按钮都会创建一个新标签

来自分类Dev

Rails-每次运行bundler命令时都会自动创建一个新的临时目录

Related 相关文章

  1. 1

    将 couchbase-lite 2.5 与 javafx 应用程序一起使用

  2. 2

    Couchbase Sync Gateway如何获取Couchbase服务器更改?

  3. 3

    Couchbase查看超过一个月的文档

  4. 4

    将Couchbase与Rails一起使用是个好主意吗?

  5. 5

    无法在Couchbase Sync Gateway中创建用户

  6. 6

    如何使用CAS替换Couchbase文档-CouchBase Node JS 2.0

  7. 7

    如何使用CAS替换Couchbase文档-CouchBase Node JS 2.0

  8. 8

    Couchbase Sync Gateway AdminUI在哪里?

  9. 9

    Couchbase Sync Gateway用户密码重置

  10. 10

    Couchbase Sync Gateway AdminUI在哪里?

  11. 11

    iOS使用CouchBase Lite

  12. 12

    静态工厂方法每次调用时都会创建一个新对象

  13. 13

    AppServiceHub 中的 jdbcSession() 方法是否在每次调用时都会创建一个新会话?

  14. 14

    如何使用Couchbase服务器配置sync_gateway

  15. 15

    使用带有 swift 4.0 的 Firestore DB,每次我进行身份验证时,保存到数据库都会创建一个随机字符文档

  16. 16

    与open一起使用时未创建/打开文件

  17. 17

    如何使用Couchbase中的视图获取文档

  18. 18

    在Couchbase中联接文档并使用聚合函数

  19. 19

    与..open一起使用时跳过一行

  20. 20

    每次使用String时,都会创建一个新的String对象吗?

  21. 21

    创建一个字典,每次使用它的值都会更新

  22. 22

    将tensorflow lite与Qt一起使用

  23. 23

    将useState与[]和不与之一起使用,以及与{}一起使用时的区别

  24. 24

    Angular /选择时每次更改都会发送另一个get请求

  25. 25

    调用一个参数,每次迭代都会更改的函数[python]

  26. 26

    为什么每次保存文件时vim都会创建一个新文件?

  27. 27

    每次调用Java时,Java都会创建一个新的iterator()实例吗?

  28. 28

    每次按下按钮都会创建一个新标签

  29. 29

    Rails-每次运行bundler命令时都会自动创建一个新的临时目录

热门标签

归档