假设我们有一个带有 ID、CONTENT 和 TIMESTAMP 的分布式表。ID 是 hash(CONTENT) 并且 CONTENT 具有足够的确定性,可以在系统中的多个位置输入,彼此紧随其后。
假设发生了某个现实生活中的事件。就像有人赢得了奥运会一样。然后,它进入这个数据库中的记录,除了时间戳之外,它看起来总是一样的。由于每台机器以略有不同的延迟观察事件。
所以。当机器同步这个分布式表时,他们会想知道“我们已经有了这个确切的 ID!它也不是一个相同的行!我们应该怎么做!?”。我想以以下形式给他们答案:bool compare(row a, row b)
或者,最好是row merge(row a, row b)
。
有谁知道如何做到这一点?我只能找到与合并两个不同表相关的“合并”事物,而实际上这是同一张表,只是分布式的。
对我来说,这对于使我的系统“最终保持一致”非常重要。我想利用 postgresql 的分布式数据库机制,因为它们非常可靠,我不想重写它们。