【发布时间】:2014-04-13 18:25:56
【问题描述】:
对于我的实现,必须批量完成特定的写入,并且没有其他干扰的机会。
我一直told 认为,这样的两个竞争事务会导致第一个阻塞第二个,第二个可能会在第一个完成后完成,也可能不会完成。
请张贴证实这一点的文件。此外,如果第一个事务阻塞,第二个事务究竟会发生什么?它会排队、失败还是某种组合?
如果无法确认,是否应该将此事务的事务隔离级别设置为SERIALIZABLE?如果是这样,如何使用 libpqxx 准备好的语句来完成?
如果事务是序列化的,第二个事务会失败还是排队等待第一个事务完成?
如果其中一个失败,如何使用 libpqxx 检测到?
【问题讨论】:
-
您对“干扰”的定义是什么?
-
写入的性质是什么?插入新记录?更新现有记录?删除记录?更新,如果不存在插入(即 upsert)?
标签: c++ postgresql serialization transaction-isolation libpqxx