1

如果我有一堆条目存储在最终一致的数据库中,是否有任何标准策略可以帮助我可靠地查找修改后的条目?当然,它们只会“最终”被发现,这没关系,但我想避免可能永远找不到它们的情况。

这似乎是一个非常普遍的问题,因此我希望有一些标准的方法来处理它。但不幸的是,我很难找到任何有用的东西。

我一直在考虑的方法是用某种单调递增的版本号(例如时间戳)标记所有条目,然后在数据库中查询版本号大于我迄今为止看到的最高版本号的所有条目。这样做的问题是条目可能被无序提交(并因此在查询中返回)。因此,如果以后的更新“成功”到给定的查询中,而较早的更新没有,我不能只使用后来的版本号作为我在下一个查询中看到的最高版本,否则我会永远找不到较早的更新。

如果可以保证版本号总是不断增加而没有跳过版本(这在我的情况下很难实现,但可能是可行的),我可以简单地保留一个更改日志,每个更改都有一个条目,然后查询“给我除 x、y、z、...以外的所有版本。” 但是这个更改日志和相关的查询可能会很大(取决于相对于我可以假设一致性的时间尺度的变化速度),所以我认为这不是一个好的选择。

有什么想法吗?

4

0 回答 0