[pgpool-general: 1862] Re: pgpool-II 3.3 Beta1 released

Yugo Nagata nagata at sraoss.co.jp
Fri Jun 21 22:37:26 JST 2013


On Fri, 21 Jun 2013 22:28:27 +0900
Yugo Nagata <nagata at sraoss.co.jp> wrote:

> Pgpool Global Development Group is pleased to announce the
> availability of pgpool-II 3.3 beta1.
> 
> Users are encouraged to take part in our beta test program.
> Please help us in testing and making pgpool-II 3.3 better!
> 
> You can download it from here:
> http://www.pgpool.net/download.php

I'm sorry but the URL was incorrect. The correct URL is:

http://www.pgpool.net/mediawiki/index.php/Developer_releases

> 
> Major changes from 3.2.4 to beta1 are:
> 
> ===============================================================================
> 
>                         3.3 (tokariboshi) 2013/xx/xx
> 
> * Version 3.3
> 
>       This is the first version of pgpool-II 3.3 series.
>       That is, a "major version up" from 3.2 series.
> 
>       __________________________________________________________________
> 
> * Incompatible changes
> 
>     - All the follwing are about watchdog.
>       See "New features" section below for details of these changes.
> 
>       - Default monitoring method was changed from query mode to heartbeat mode.
> 
>       - Failover/failback commands are executed in only one pgpool-II.
> 
>       - In default, all the query caches on shared memory are cleared when
>         standby pgpool-II escalates to active.
> 
>       - Database name, user name, and password used for monitring other
>         pgpool-II by query are specified by dedicated parameters.
>         Previously, template1, recovery_user, and recovery_password are used.
> 
>       __________________________________________________________________
> 
> * New features
> 
>   ** Watchdog 
> 
>     - Add a new monitring method using heartbeat signal of UDP packet in
>       lifecheck. (Yugo Nagata)
> 
>       You can select a method from either of two methods, "heartbeat" mode or
>       "query" mode.
> 
>       The heartbeat mode is the new method. In this mode, watchdog monitors
>       other pgpool-II process by using heartbeat signal. Watchdog receives
>       heartbeat signals sent by other pgpool-II periodically. If there are no
>       signal for a certain period, watchdog regards it as failure of the
>       pgpool-II. For redundancy you can use multiple networks for heartbeat
>       exchange between pgpool-IIs. This mode is default and recommended one.
> 
>       The query mode is the conventional method. In this mode, watchdog monitors
>       pgpool-II's service rather than process. Watchdog sends queries to other
>       pgpool-II and checks the response. Note that this method requires connections
>       from other pgpool-IIs, so it would fail motoring if num_init_children isn't
>       large enough. This mode is deprecated and left for backward compatibility.
> 
>       Add these new parameters:
>           - wd_lifecheck_method
>           - wd_heartbeat_port
>           - wd_heartbeat_keepalive
>           - wd_heartbeat_deadtime
>           - heartbeat_destinationX
>           - heartbeat_destination_portX
>           - heartbeat_deviceX
> 
>     - Add interlocking mechanism of exclusive failover/failback command
>       execution. (Yugo Nagata)
>     
>       When using multiple pgpool-IIs with watchdog enabled, failover commands
>       (failover_command, failback_command, and follow_master_command) get
>       executed only at one pgpool-II.
>     
>       Previously, these command got executed at all pgpool-IIs.
> 
>     - Add authentication mechanism for watchdog packet communication.
>       (Yugo Nagata)
>     
>       Watchdog packets (include heartbeat signal) from pgpool-II with wrong
>       authentication key are rejected. All pgpool-IIs must have the same key,
>       which is specified wd_authkey parameter in pgpool.conf. pgpool-II with
>       wrong authkey can't even start watchdog, because the startup packet is
>       rejected by other pgpool-IIs.
>  
>     - Add clear_memqcache_on_escalation parameter. (Yugo Nagata)
>     
>       If this is on, all the query caches on shared memory are cleared when
>       standby pgpool-II escalates to active.
> 
>       This is aimed to prevent the new active pgpool-II from using inconsistent
>       query caches with the previous active.
>  
>     - Add wd_escalation_command parameter. (Yugo Nagata)
>     
>       This specifies command which is executed at escalation on the new active
>       pgpool-II server. The timing is just before virtual IP is brought up.
> 
>     - Add parameters wd_lifecheck_dbname, wd_lifecheck_user, and
>       wd_lifecheck_password. (Yugo Nagata)
>     
>       These parameters specify the database name, the user name, and password
>       used in query mode lifecheck of watchdog . Previously, these are hard
>       coded to use template1, recovery_user, and recovery_password.
> 
>     - When delegate_IP parameter is emply, viertual IP is neither brought up
>       nor switched. (Yugo Nagata)
> 
>       This allows multi-master like configuration without virtual IP. 
> 
>   ** Others
> 
>     - Import PostgreSQL 9.2 raw parser. (Nozomi Anzai, Tatsuo Ishii)
> 
>     - Add a tool called pgpool_setup to set up pgpool-II and PostgreSQL
>       temporary installation in current directory for *testing* purpose.
>       (Tatsuo Ishii)
>     
>       usage: pgpool_setup [-m r|s][-n num_clusters][--no-stop]
>          -m s: create an installation as streaming replication mode.
>          (the default)
>          -m r: create an installation as native replication mode.
>          -n num_clusters: create num_clusters PostgreSQL database cluster nodes
>          --no-stop: do not stop pgpool and PostgreSQL after the work
> 
>     - Support installation method using CREATE EXTENSION for pgpool-recovery
>       and pgpool-regclass. (Tatsuo Ishii)
>     
>       Older installtion method is still preserved.
> 
>       Note: extension names are "pgpool_recovery" and "pgpool_regclass", not
>       "pgpool-recovery" and "pgpool-regclass" because latters are not
>       convenient in using CREATE EXTENSION command (requires double quotes).
> 
>     - Add a function "pgpool_pgctl()" which enebles to execute
>       pg_ctl stop/restart/reload (except for start) by SQL. (Nozomi Anzai)
>     
>       $ psql sales -c "select pgpool_pgctl('reload', 'fast')";
>        pgpool_pgctl
>       --------------
>        t
>       (1 row)
> 
>       This function always ignores the actual result and returns 't', so the
>       user can't know if pg_ctl succeeded or failed. To use this we have to set
>       the custom variable for security which limits the users to execute pg_ctl
>       who has the permission of data directory.
> 
>     - Add shell scripts to install pgpool-II and pgpoolAdmin by RPM.
>       (Nozomi Anzai, Yugo Nagata)
>     
>       To make the installer package execute getsources.sh, and the directory
>       named "work" will be created. And you rpmbuild each spec files in work/,
>       put RPMs into work/installer and make tar ball of work/installer.
>       The installer does not only install RPMs but also edit postgresql.conf,
>       pgpool.conf, pg_hba.conf, recovery.conf and scripts for failover and
>       online recovery.
>       
>       This assumes two-nodes configuration and the install script have to be
>       executed in both nodes.
> 
>     - Add new parameter "search_primary_node_timeout". 
>       (Muhammad Usama, Tatsuo Ishii)
>     
>       The parameter specifies the maximum amount of time in seconds to
>       search for a primary node when a failover scenario occurs. Patch
>       contributed by Muhammad Usama.  Japanese doc and slight editing of
>       English doc by Tatsuo Ishii.
> 
>     - Chinese tutorials for memqcache and watchdog. (Bambo Huang)
> 
>     - Add regression test suit. (Tatsuo Ishii)
> 
>       __________________________________________________________________
> 
> * Bug fixes
> 
>     - Consider timeout waiting for compeletion of failback request in on line
>       recovery. (Tatsuo Ishii)
>     
>       This will prevent the situation that recovery operation continues forever
>       and we cannot even shutdown pgpool-II main process. This could happen
>       especially while executing follow master command.
> 
>     - Fix a bug that %H of follow_master_command is not assigned correctly the
>       new primary node in stream replication mode.
>       (Tatsuo Ishii)
> 
>     - Fix not to execute escalation when the pgpool-II which is already active
>       receives down notification from other pgpool-II. (Yugo Nagata)
> 
>     - Fix wd_create_send_socket() not to execute select() before connect().
>       (Yugo Nagata)
> 
>       How select() works on an unconnected socket is undefined, and differs
>       between platform. On Linux, this returns 2 and it is eventually harmless.
>       However, on Soraris, this returns 0 and it is indistinguishable from time
>       timeout, so watchdog wouldn't work correctly.
> 
>     - Fix error when pgpool_regclass is not installed. (Tatsuo Ishii)
> 
>       The query used in pool_has_pgpool_regclass() fails if pgpool_regclass
>       does not exist. The bug was introduced in 3.2.4.  See [pgpool-general:
>       1722] for more details.
> 
>     - Fix do_query() not to hang when PostgreSQL returns an error.
>       (Tatsuo Ishii)
> 
>       The typical symptom is "I see SELECT is keep on running according to
>       pg_stat_activity". To fix this pgpool-II just exits the process and
>       kill the existig connection.  This is not gentle but at this point I
>       believe this is the best solution.
> 
>     - Fix possible deadlock during failover with watchdog enabled.
>       (Yugo Nagata)
> 
>       This is reported in Bug track #54 by arshu arora
>       http://www.pgpool.net/mantisbt/view.php?id=54
> 
>     - Fix unnecessary degeneration caused by error on commit. (Tatsuo Ishii)
> 
>       In master slave mode, if master gets an error at commit, while other
>       slaves are normal at commit, we don't need to degenrate any backend
>       because it is likely that the "kind mismatch error" was caused by a
>       deferred trigger.
> 
>     - Fix bug with do_query which causes hung in extended protocol.
>       (Tatsuo Ishii)
>         
>       This problem could occur when insert lock is enabled and
>       pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
>       details.
> 
>     - Fix possible failure of query cache invalidation for DML in transaction.
>       (Tatsuo Ishii)
> 
>       CREATE TABLE t1(i INTEGER);
>       CREATE TABLE t2(i INTEGER);
>       SELECT * FROM t1;
>       BEGIN;
>       DELETE FROM t2 WHERE i = 0;
>       INSERT INTO t1(i) VALUES(1);
>       COMMIT;
>     
>       SELECT * FROM t1;
>     
>       At commit pgpool tries to delete cache for t2 but failes because
>       there's no oid table entry for t2. Problem is, it fails to check oid
>       table for t1. So cahce for t1 remains and the last SELECT incorrectly
>       returns cached data. Fix is, continuing to check oid table entries.
> 
>       This is reported in Bug track #58 by wms 
>       http://www.pgpool.net/mantisbt/view.php?id=58
> 
>       __________________________________________________________________
> 
> * Enhancements
> 
>     - Fix to restart watchdog processes automatically when these exit abnormally.
>       (Yugo Nagata)
> 
>     - Add more error checks and reportings to functions executing ping command
>       with watchdog enabled. (Tatsuo Ishii)
> 
>     - Replace some unsafe functions, sprintf and strncpy, with more safe ones,
>       snprintf and strlcpy respectively. (Yugo Nagata)
> 
>     - Replace "sticky bit" to "setuid bit" in log message, comments and
>       funcation names. (Yugo Nagata)
>     
>       These words were used mistakenly and caused confusion.
> 
>     - Fix description on SSL in pool_hba.conf.sample. (Tatsuo Ishii)
> 
>     - Allow to load balancing in an explicit transaction in replication mode.
>       (Tatsuo Ishii)
>     
>         The condition to allow the load balancing is as follows:
>         1) replicate_select is off
>         2) no writing functions are used
>         3) transaction isolation level is not serializable
>         4) no DML/DDL are issued in the transaction
> 
>     - Chinese manual is updated to the latest especially about watchdog. (Bambo Huang)
> 
> -- 
> Yugo Nagata <nagata at sraoss.co.jp>
> _______________________________________________
> pgpool-general mailing list
> pgpool-general at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-general


-- 
Yugo Nagata <nagata at sraoss.co.jp>


More information about the pgpool-general mailing list