是否有将最终一致性系统与传统 ACID 系统混合的模式?
我想将数据存储在大型机上需要类似 ACID 事务的一些(至少两个)遗留系统中。那些大型机数据库(我们称它们为 OldWorld)在同一进程中的同一事务管理器下运行,因此大型机系统的一致性没有问题。
我有一个事务管理器,可以在非大型机环境(让我们称之为 NewWorld)中使用大型机 tm 和支持 ACID 的关系数据库处理 XA 事务。但我不想使用 XA-Transaction,因为它经常会导致大型机端长时间运行的锁出现问题,而且在许多情况下,我不需要两个世界的所有 ACID 功能。我一直想要一个一致的大型机(旧世界中的所有数据在旧世界中都是一致的)。新世界系统在从主机端读取数据时可以处理不一致的数据(新旧不一致)。用于在 OldWorld 中存储数据的操作很简单,并且保存了不会在功能上失败的“仅添加操作”(它可能在技术上失败,但这应该始终是暂时的失败)。