gpt4 book ai didi

CouchDB 更改 feed seq 移位

转载 作者:行者123 更新时间:2023-12-02 00:59:28 26 4
gpt4 key购买 nike

我是 CouchDB 新手,假设我的 _changes feed 包含 8000 行,last_seq 为 8000。然后我更新一个文档(之前已使用 seq=4000-xxxx、rev=1-xxxxx 更新),它将是反射(reflect)在更改源上为 seq=8001-xxxx,rev=2-xxxx,对吗?

我的问题是 CouchDB 实际上是如何处理这个问题的?当我更新文档时,它会获取最新的 seq id (8001-xxxx),但哪个文档取代其旧位置 (seq 4000-xxxx)?由于我们正在更新内容,并且每个文档只有一个条目,更改源中的行数是如何从 8000 行增加到 8001 行的?

最佳答案

史蒂文。

当您更新文档时,它会移动到 seq 队列的末尾。因此,旧文档所在的序列索引中将会出现“漏洞”。

在您的示例中,更改 Feed 将显示 8,000 行,last_seq = 8001,您将看到 seq 1, 2, 3, ..., 3997, 3998, 3999, 4001, 4002 , 4003, ..., 7999, 8000, 8001。请注意,序列中缺少 4000。

这个“移动”保证是原子的;因此,如果您查询 _changes,那么您将看到填充的 seq 4000 或填充的 8001,但不会同时看到两者。每个文档 ID 在序列索引中只出现一次。

(小注意,如果您连续查询_changes,使用?feed=连续,那么您当然可以看到重复的文档ID,因为CouchDB为您提供了真实的-每当文档更新时就及时反馈。)

关于CouchDB 更改 feed seq 移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com