Hi pgpool hackers,

I'm heading to release 2.2 on this December. Followings is the release
note I want to include the release. Please let me know if I have
missed something or left "must fix" things.
--
Tatsuo Ishii
SRA OSS, Inc. Japan

2.2 2008/12/?
          * Version 2.2

          This version enhances on line recovery and includes important
          fixes for serializable transactions which could cause data
          inconsistency among DB nodes.

          * New features

                - Add client_idle_limit_in_recovery directive. This will
                  prevent 2nd stage in online recovery from not going foward
                  by idle clients sitting forever(Tatsuo)

                - Allow to load balance DECLARE, FETCH and CLOSE(Tatsuo)

          * Bug fixes

                - Close all file descriptors when running in daemon mode.
                  Otherwise we inherit sockets from apache when it's started by
                  pgpoolAdmin. This results in that port 80 is occupied for
                  example.  Pach provided by Akio Ishida. Also add
                  chdir("/"). This is always good for daemon programs(Tatsuo)

            - Allow MD5 authentication in raw mode as stated in
          docs(Tatsuo)

                - Check transaction serialization failure error in
                  serializable mode and abort all nodes if so. Otherwise we
                  allow data inconsistency among DB nodes(Tatsuo).

                  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!

          * Incompatible changes

                - Always fail over and restart all children. Before we do
                  restart only if master has not been changed. This is
                  wrong. If we have trouble with network cable or something,
                  TCP/IP stack keeps on retrying for long time and the only
                  way to prevent it is restarting process(Tatsuo)

_______________________________________________
Pgpool-hackers mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgpool-hackers

Reply via email to