复制上的BACKDB/CouchDB序列计数器

复制上的BACKDB/CouchDB序列计数器,couchdb,pouchdb,Couchdb,Pouchdb,我正在现场同步一个新铸造的PockDB(3.3.1)和一个已建立的(iris)couchdb 初始复制成功进行(触发暂停事件) 如果我在本地执行info(),我会得到362的更新。如果我在遥控器上执行info(),它会显示4201的更新 我认为这对我来说是有意义的:本地数据库没有修改-只有叶子(即,数据库中有362个叶子),而远程数据库序列计数器反映了自创建以来所做的所有历史更改 我的问题是:如何通过编程确定两个数据库之间序列计数器的初始“偏移量”?我特别希望能够度量初始复制的进度 您无法真正比

我正在现场同步一个新铸造的PockDB(3.3.1)和一个已建立的(iris)couchdb

初始复制成功进行(触发暂停事件)

如果我在本地执行
info()
,我会得到362的更新。如果我在遥控器上执行
info()
,它会显示4201的更新

我认为这对我来说是有意义的:本地数据库没有修改-只有叶子(即,数据库中有362个叶子),而远程数据库序列计数器反映了自创建以来所做的所有历史更改


我的问题是:如何通过编程确定两个数据库之间序列计数器的初始“偏移量”?我特别希望能够度量初始复制的进度

您无法真正比较两个数据库中的seq。但是,您可以在远程数据库上执行
db.info()
,获取
update\u seq
,然后将其与复制期间
on('change')
事件中提供给您的
最后一个\u seq
进行比较。这将告诉你你取得了多大的进步

如果您想看一个这样的例子,则正好如此,以在顶部显示百分比计数器。(它也使用PockDB load,但原理是一样的,因为这里也报告了seq。)代码是开源的,所以可以随意查看它的工作原理。:)


编辑:正如评论中指出的那样,如果您使用的是
sync
而不是
replicate
,则在读取
last_seq
时需要检查
direction
参数。同样对于Cloudant,您需要在
-
上拆分字符串,以获得整数序列。

对于将来可能会发现这一点有用的任何人:如果您使用的是
sync
而不是
replicate
,阅读
last\u seq
时还需要检查direction参数。如果您使用的是cloudant而不是Iriscoch,请注意
update\u seq
last\u seq
不是简单的数字(它们也包含完整的修订字符串)。simonberry:这是一个有趣的观点。这是否意味着,使用Cloudant/CouchDB 2.0,不可能提供“完成百分比”视图。。。你只需做一个
数字(info.change.last_seq.substring(0,info.change.last_seq.indexOf('-'))
就可以将序列转换成你可以使用的数字……啊,好吧,我的错!谢谢。非常有用的信息