我的一些交易被声明为SERIALIZABLE。有时我会回到类别错误,如40001 serialization_failure
和40P01 deadlock_detected
(我还没有看到其他代码),特别是当我通过执行大量并发事务来对系统进行压力测试时。在可序列化事务中,所有40类错误都是正常的吗?
如果我正确理解手册,这是可以预料的。当这些错误发生时,我因此想重试交易。我怀疑是否在处理SERIALIZABLE事务时,类40错误的全部是“正常”。换句话说,我是否可以假设任何第40类错误应该导致我重试交易,还是这个假设仅对于第40类错误的一个子集是正确的?
什么版本的Postgres你在吗? – Kuberchaun 2013-05-06 17:04:29
我在PostgreSQL 9.1上。尽管Ubuntu 13.04包可用,但我会尽快更新到9.2。 – 2013-05-06 19:25:07