长期交易的结构化方法

时间:2009-10-21 19:25:18

标签: transactions xa

我正在寻找一种长期运行(数小时或更长时间)交易的结构化方法。如上所述here,这些类型的交互通常由乐观锁定和手动合并策略处理。

使用标准事务对这类问题采用更加结构化的方法会非常方便。各种长时间运行的交互,例如用户注册,订单确认等都具有类似事务的语义,并且发明自己脆弱的手动回滚和/或超时/清理策略既容易出错又乏味。 。

以RDBMS为例,我意识到这将是保持所有交易开放的主要性能成本。作为替代方案,我可以想象有一个数据库同时支持两个隔离级别/策略,一个用于短期运行,一个用于长时间运行的对话。例如,长时间运行的对话可能对数据访问有更严格的限制,以便于他们花费更多时间(对某些数据的只读语义,乐观锁定语义等)。

有没有可以做类似事情的解决方案?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

RDBMS ACID事务总是属于短期,原子和本地操作。分布式应用程序,自主服务,松散耦合的组件使用不同的策略,如保留和补偿事务。

关于这个主题的一个很好的读物是Pat Helland's论文,自80年代以来他一直在教这个主题。例如,请参阅Architecture of an Autonomous ApplicationFiefdoms and Emissaries