[Pgpool-committers] pgpool - pgpool-II: Check serialization failure error and abort all
User T-ishii
t-ishii at pgfoundry.org
Mon Dec 8 13:48:13 UTC 2008
Log Message:
-----------
Check serialization failure error and abort all nodes
if so. Otherwise we allow data inconsistency among DB
nodes. See following scenario: (M:master, S:slave)
M:S1:BEGIN;
M:S2:BEGIN;
S:S1:BEGIN;
S:S2:BEGIN;
M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
M:S1:UPDATE t1 SET i = i + 1;
S:S1:UPDATE t1 SET i = i + 1;
M:S2:UPDATE t1 SET i = i + 1; <-- blocked
S:S1:COMMIT;
M:S1:COMMIT;
M:S2:ERROR: could not serialize access due to concurrent update
S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
Modified Files:
--------------
pgpool-II:
pool_process_query.c (r1.120 -> r1.121)
(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pool_process_query.c.diff?r1=1.120&r2=1.121)
More information about the Pgpool-committers
mailing list