我正在实施一个分布式音频存储库,注册用户可以在其上创建录音并与其他注册用户共享。理想情况下,我们希望在间歇性连接到无线网状网络的几台(n <5)笔记本电脑上运行存储库。因此,当连接可用时,运行couchdb的存储库节点将相互复制。该仓库将位于一个没有电力基础设施的乡村,因此仓库笔记本电脑由太阳能电池板和汽车电池供电。在过去,我们遇到的问题是,笔记本电脑电池耗尽完全将计算机时钟重置为0 - 1970年1月1日。互联网连接也非常不完整且非常昂贵。记住间歇性的电源和连接以及非常不准确的时钟,我想知道如何最好地对文档(或记录)进行排序,使它们大致对应于在复制之前和之后在不同存储库节点上创建记录的时间顺序。我将非常感谢有关如何创建复制by_date,by_sequence,by_chronology(或任何您想要调用的)视图的任何帮助,这些视图可以在这些受约束的条件下工作。它不一定是完美的,只是比天真的解决方案更好或更好。
谢谢!
托马斯
答案 0 :(得分:1)
好吧,你可以从每个新文档中包含一个简单的递增整数开始,方法是查看数据库中可用的最后一个数字并选择下一个数字。这会给你带来一些东西:
这意味着如果一个节点的序列号45是从另一个节点的序列号45之前或之后记录的,那么你就不能拼凑在一起,但它确实可以让你拼凑一个有向的非循环图,至少强加一个基本的顺序文件。
您可以添加一个表示记录该段的节点的值,以使其更好。