确定分布式数据库是否包含不一致的数据

如果您确定事务是不一致地实现,您必须确定这种情况对您的分布式数据库系统意味着什么。您尤其必须确定数据完整性是否受到影响。

无论何时当一个参与者回滚的工作片段与另一参与者更新的工作片段相关时,不一致实现的事务就造成了问题。不能使用 SQL 定义这些依赖性,因为分布式事务不支持引用多个数据库服务器上数据的约束。仅当数据已在两个独立事务中更新时,该工作片段才是独立的(不存在相关性)。否则,就认为该工作片段是有相关性的。

在您继续之前,请考虑导致该错误的事务。更新的数据段和回滚的数据段是否互相相关?单个事务可能会由于其他原因(而不是维护数据完整性)而包含多次更新。 例如,以下是三种可能的原因:
  • 减少的事务开销
  • 简化的编码
  • 程序员喜好

并验证每个假设已落实事务的数据库服务器实际修改了数据。只读数据库服务器可能会作为已落实事务的参与者而列出。

如果不一致的事务没有导致数据完整性的违例,此时您就可以退出该过程。