[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