【问题标题】:Very frequent couchbase document updates非常频繁的沙发库文档更新
【发布时间】:2014-11-14 06:49:49
【问题描述】:

我是 couchbase 的新手,想知道对单个文档的非常频繁的更新(可能是每秒一次)是否会导致所有更新都通过磁盘写入队列,或者仅对文档进行最后一次更新?

换句话说,couchbase 是否通过仅将文档写入磁盘一次来优化磁盘写入,即使在写入之间多次更新也是如此。

根据文档http://docs.couchbase.com/admin/admin/Monitoring/monitor-diskqueue.html,听起来所有更新都已处理。如果有人能证实这一点,我将不胜感激。

谢谢

【问题讨论】:

    标签: couchbase


    【解决方案1】:

    更新在写入磁盘之前保存在磁盘队列中。如果发生对文档的写入并且先前的写入仍在磁盘队列中,则两个写入将被合并,并且只有较新的版本实际上会写入磁盘。

    磁盘队列消耗的确切速度取决于存储子系统,因此对同一键的写入是否合并取决于写入速度与存储子系统速度/节点负载相比的速度。

    【讨论】:

    • 感谢您的信息,非常有用。
    【解决方案2】:

    Jako,您应该更担心在毫秒时间范围内发生的更新或在 1(一)毫秒内发生的多个更新。磁盘写入不是问题,Couchbase 本身智能地解决了这个问题,但是当您在毫秒时间范围内操作时会出现并发问题。

    当我测试我的应用程序时,我很容易遇到它们,并且首先无法理解为什么 Node.js(在我的例子中)有时会将数据写入 CouchBase 而有时不会。如果第一条记录通常不写入 CouchBase。

    当我第一次检查具有特定键的文档是否存在时出现了更多问题,如果不存在,我会尝试将其写入 CouchBase 只是发现同时早期回调已经完成,现在确实有一个键对于同一个文档。

    在这种情况下,您必须使用 CAS 标志进行操作并对其进行迭代编程,以便您的应用不断尝试为该键提取正确的文档,然后进行更新。请记住这一点,尤其是在对同一文档进行测试和更新时!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多