nic*_*ans 5 couchdb cloudant bigcouch
使用标准的CouchDB视图索引,我可以灵活地对缺点与新鲜度进行内省.如何获得Cloudant dbcopy功能的类似功能?
stale=okstale=update_afterstale=false)我可以将DB update_seq与设计文档进行比较update_seq,可以update_seq=true在视图查询中或从中获取GET /db/_design/foo/_info.
BigCouch的数据库分区和多个服务器略微蒙上阴影.例如update_seq是复合材料,应仅在公差范围内进行比较; stale=false可能会选择不同的碎片,stale=ok而碎片可能或多或少是最新的; 虽然没有办法获取update_seq所有节点(或stale=false查询将选择的特定节点),但可以通过快速发出多个/db/_design/foo/_info查询来欺骗它.在这里有额外的碎片/分区内省会很好,但上面仍然适用于我的目的.
dbcopydbcopy具有大致相同的"最终一致性"特征.查询链式数据库中的文档大致类似于查询原始视图group=true&stale=ok.哪个好,大部分时间都没问题.但是文档没有提供以下内容的任何指示:
dbcopy状态?例如,数据库是否认为自己是最新的,或者是否在IOQ中轮流查看更改?如果它不是最新的,大致有多陈旧?dbcopy(在stale=update_after或中stale=false)的优先级.例如,我想要的东西POST /origin_db/_design/foo/_view/bar/_dbcopy将强制dbcopy立即将减少的结果推送到DB(可选择首先更新原点视图).dbcopy机制或dbcopy机制错过了一些文档),是否可以检测到这些?怎么纠正?有dbcopy"重置按钮"吗?如何查询当前的dbcopy状态?例如,数据库是否认为自己是最新的,或者视图更改是否在 IOQ 中等待轮到?如果不是最新的,那么它大概有多陈旧?
我们正在寻找更好的方法,但目前获取 dbcopy 当前状态的唯一方法是将视图中的记录与目标数据库中的文档进行比较。
是否有 dbcopy“重置按钮”?
您可以通过强制重建源视图来重新触发 dbcopy。这可以通过更新设计文档来更改视图签名来完成 - 例如,向现有视图添加空格或注释。这有点不雅观,但会导致 dbcopy 重新运行。