【发布时间】:2018-01-13 11:44:22
【问题描述】:
在 PostgreSQL(和其他 MVCC 数据库)中,事务可能由于死锁或序列化错误而回滚。假设两个事务当前正在运行,是否有可能两个事务,而不是一个,事务都会由于这种错误而失败?
我问的原因是我正在编写一个重试实现。如果两个事务都可能失败,如果两个事务都立即重试,我们可能会陷入永无止境的重试循环。如果只有一个事务可能失败,我认为尽快重试没有任何害处。
【问题讨论】:
标签: postgresql transactions mvcc