首页 文章

非常频繁的沙发基础文档更新

提问于
浏览
3

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

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

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

谢谢

2 回答

  • 0

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

    磁盘队列耗尽的具体速度取决于存储子系统,因此对同一密钥的写入是否合并将取决于写入与存储子系统速度/节点负载相比的速度 .

  • 4

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

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

    当我第一次检查是否存在具有特定密钥的文档时会出现更多问题,如果不存在,我会尝试将其写入CouchBase,但发现在此期间早期回调已经完成,现在确实存在相同的密钥文献 .

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

相关问题