[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