我有一个巨大的主 CouchDB 数据库和从属只读 CouchDB 数据库,与主数据库同步。
由于更改速度很快,并且服务器之间的通道缓慢且不稳定,因此我想设置顺序/优先级来定义首先出现的文档。我需要确保具有最高优先级的文档肯定是最新版本,并且我可以忽略列表末尾的文档。
排序,而不是过滤
如果不可能,可以采取什么解决方案?
我已经看过的资源:
http://wiki.apache.org/couchdb/Replication http://wiki.apache.org/couchdb/Replication
http://couchapp.org/page/index http://couchapp.org/page/index
更新:主数据库实际上是 Node.js NPM 注册表,顺序是最依赖的软件包列表 https://npmjs.org/browse/depended。我正在努力使proxy https://github.com/PaulVI/npm-proxy/,因为克隆50G总是在一段时间后失败。但事实是“我们不需要 90% 的模块,但需要快速可靠地访问我们所依赖的模块。”
最简洁的答案是不。
长的答案是,CouchDB 在设计上仅在单个文档级别提供 ACID 保证。复制器在复制时会自动更新每个文档(任何人都可以,复制器只是使用公共 API),但不保证排序,这主要是因为它使用多个 http 连接来提高吞吐量。如果您愿意,可以将其配置为 1,这样您会获得更好的排序,但这并不是万能的。
bigcouch 合并后,所有的赌注都取消了,将有多个来源和多个目标,没有强加的总顺序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)