Make use of transaction options dispatched by QD on QE
To enforce consistent isolation level within a distributed transaction, local
transactions on QEs should assume the same isolation level as the transaction
on QD. This was previously achieved by dispatching isolation level and
read-only property from QD to QE as command line options. In case of explicit
BEGIN, the isolation level was dispatched as flags in DtxContextInfo. This
patch makes it consistent such that QEs (readers as well as writers) read the
transaction options from DtxContextInfo.
The poblem with setting transaction isolation level as command line opiton is
command line options are processed during process initialization, when a
transaction is already open and a snapshot is taken. Changing isolation level
after taking a snapshot is not correct.
This patch allows merging with the check for transaction_isolation GUC as it
stands in 9.1, without any Greenplum-specific changes.
Co-authored-by: NJacob Champion <pchampion@pivotal.io>
Showing
想要评论请 注册 或 登录