pgpool-II 3.1 released

From: Tatsuo Ishii <ishii(at)postgresql(dot)org>
To: pgsql-announce(at)postgresql(dot)org
Subject: pgpool-II 3.1 released
Date: 2011-09-09 02:07:34
Message-ID: 20110909.110734.580689990934686254.t-ishii@sraoss.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

Pgpool Global Development Group is pleased to announce the
availability of pgpool-II 3.1.

pgpool-II 3.1 can be downloaded here:

http://pgfoundry.org/frs/download.php/3114/pgpool-II-3.1.tar.gz

pgpool-II 3.1 has many new features and enhancements.

Users of prior versions of pgpool-II should be able to upgrade to
pgpool-II 3.1 without much pain. Especially pgpool-II 3.0.x users
should be able to migrate to 3.1 without changing pgpool.conf(it is
recommended to use new pgpool.conf, though).

However be warned that pgpool-II 3.1 has some incompatible changes.
Please look into the documents for more details.

Attached are release note of pgpool-II 3.1.

-----------------------------------------------------------------------
3.1 (hatsuiboshi) 2011/09/08

* Version 3.1

This is the first version of pgpool-II 3.1 series.
That is, a "major version up" from 3.0 series.

* Incompatible changes

- Change the lock method of insert_lock. The previous insert_lock uses
row locking against the sequence relation, but the current one uses
row locking against pgpool_catalog.insert_lock table. The reason is
that PostgreSQL core developers decided to disallow row locking
against the sequence relation to avoid an internal error which it
leads. So creating insert_lock table in all databases which are
accessed via pgpool-II beforehand is required. If does not exist
insert_lock table, pgpool-II locks the insert target table. This
behavior is same as pgpool-II 2.2 and 2.3 series. If you want to use
insert_lock which is compatible with older releases, you can specify
lock method by configure options: --enable-sequence-lock,
--enable-table-lock(Kitagawa)

- Deprecate backend_socket_dir. Instead, if backend_hostname starts
with '/' it is regarded the as path to Unix domain. If backend_hostname
is left empty, then default Unix domain path(/tmp) is used. This
follows the convention of libpq interface. Patch contributed by
Jehan-Guillaume (ioguix) de Rorthais.

- Now "pgpool_walrecrunning()" was not used. pgpool-II used to consider
the node that is promoted a primary node using the function. Now,
pgpool-II waits for completing of the promotion to primary node
because it did not work as we intended. But we still have a problem
that pgpool-II waits while recovery_timeout, when there is no primary
node(Kitagawa)

- Add node_id to each PostgreSQL DB node info in the output of
show pool_nodes(Jean-Paul Argudo)

- Change the handling of sequence functions(nextval, setval) so that
they completely obey setting of black/white_function_list. They were
always handled as write functions before(Kitagawa)

* New features

- Add syslog support. Patch contributed by Gilles Darold. Review and
editing by Guillaume Lelarge.

- Adapt application_name introduced in PostgreSQL 9.0. When reusing
connection, send application_name in the startup packet to backend
and send parameter status to frontend(Tatsuo)

- Add relcache_expire directive to control the expiration of the
internal system catalog cache. ALTER TABLE might make these
cache values obsoleted and the new directive will make the risk
lower(Tatsuo).

- Add follow_master_command directive. This directive specifies a
command to run in master/slave streaming replication only after
a master failover. Patch contributed by Gilles Darold.

- Add pcp_promote_node command. This command promotes a new master
node to pgpool-II. This can use in master/slave streaming replication
only. Patch contributed by Gilles Darold.

- Add pcp_pool_status command which produces similar output of show
pool_status. Also C API for this command is added. Patch
contributed by Jehan-Guillaume (ioguix) de Rorthais.

- Add new per backend directive "backend_flag". This controls per
backend behavior. Currently "ALLOW_TO_FAILOVER" or
"DISALLOW_TO_FAILOVER" are allowed(Tatsuo)

- Add health_check_password directive(Nicolas Thauvin)

- Add sr_check_period, sr_check_user and sr_check_password directives.
These are used for streaming replication delay checking and
determining primary node(Tatsuo)

- Add --username(or -u) option to pg_md5 command. This allows to manage
users which do not have UNIX accounts. Japanese document change by
Tatsuo Ishii(Nicolas Thauvin)

- Add pgpool_adm functions to pgpool_adm/. These are user-defined
functions written in C language which work like pcp commands
(Jehan-Guillaume (ioguix) de Rorthais)

- Add Simplified Chinese version of documents(Huang Jian, Sun Peng)

- Add SQL files to uninstall functions to sql/(Nicolas Thauvin)

- In master/slave mode, SELECTs to unlogged table execute only on
master/primary(Kitagawa)

* Bug fixes

- Fix bug which cannot use the cursors of JDBC driver on standby
node. The transaction commands come to be sent to all nodes by
this fix in master/slave mode(Kitagawa)

- Fix bug with the handling of empty queries. The empty queries
come to be handled the same as SELECT queries. This fix allows
load-balance after the empty query(Kitagawa)

- Fix insert_lock so that it works correctly even if the column
definition such as "DEFAULT nextval(('"x_seq"'::text)::regclass)"
(Kitagawa)

- Fix pcp_attach_node command so that it emits error message while
doing failover(Kitagawa)

- Fix log message which is emitted when pgpool-II cannot parse the
query in the extended query protocol so that it shows the query
(Kitagawa)

- Fix description about backend_weight inpgpool-II manual. It can
be changed by reloading pgpool.conf(Tatsuo)

- Fix and enhance wording in English tutorial document.
Fix suggested by Huang Jian(Tatsuo)

- Fix bug which does not update the node status when reattaching the
node in raw mode(Guillaume Lelarge)

- Fix incorrect calculation of the replication delay in streaming
replication mode(Tatsuo)

- Replace wrong function name "notice_backend_error" with correct one
"degenerate_backend_set" in the failover log message(Tatsuo)

- Remove unnecessary logging at the end of pgpool.conf parsing(Tatsuo)

- Fix possible crash of pgpool/worker child after attaching new backend.
Fix suggested by Gurjeet Singh(Tatsuo)

- Fix bug that SELECTs which have subquery with FOR SHARE/UPDATE clause
are sent to slave/standby(Tatsuo)

- Fix bug which rewriting timestamp of default value fails in PREPARE
statements. This used to work but was broken in 3.0(Kitagawa)

- Fix fail to compile pcp commands on the environment without
getopt_long()(Tatsuo)

- Fix crash of pgpool child when frontend connects if in raw mode,
enable_hba is off and more than 2 backends(Kitagawa)

- Fix some memory leaks(Kitagawa)

* Enhancements

- Enhance online recovery in streaming replication mode.
Now restarting pgpool-II children is avoided when recovery finished. So
existing sessions can be continued while doing online recovery(Tatsuo)

- pcp_attach_node does not diconnect existing sessions in
streaming replication mode. In other mode, pcp_attache_node
still disconnects existing sessions(Tatsuo).

- Import PostgreSQL 9.0 parser. This allows to use CREATE INDEX with
implicit index name, which is new in 9.0. Patch contributed by
Akio Ishida.

- Allow to use regular expressions in black and white function list.
Patch contributed by Gilles Darold. Patch reviewed by Guillaume Lelarge.

- Reorganize pgpool.conf sample files so that they are easier to read
(Guillaume Lelarge)

- Add <a name="..."> tags into all parameters in the pgpool-II user
manual(Haruka Takatsuka)

- Enhance online recovery documents in streaming replication(Tatsuo)

- Change the function to check the replication delay in streaming
replication mode. Currently, pgpool uses
pg_last_xlog_replay_location() instead of
pg_last_xlog_receive_location(). Fix suggested by Anton Yuzhaninov
(Tatsuo)

- Allow time stamp rewriting to work with arbitrary expression in
default value of a column. Before we detected anything including
now() then simply replaced it to now(). This will lead to wrong
rewriting of default value. for example, timezone('utc'::text, now()).
Note that, however, this only adopts to simple queries. Extended
protocols(for example Java, PHP PDO) or SQL "PREPARE" still remain
same(Tatsuo)

- Enhance the error message which is emitted when failed to check
replication delay(Nicolas Thauvin)

- Change error message "do_md5: read_password_packet failed" into debug
level(Kitagawa)

- Allow to compile pgpool-regclass() against PostgreSQL 9.1(Tatsuo)

- Update and sync pgpool-II manuals of English version and Japanese
version(Tatsuo)
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

Browse pgsql-announce by date

  From Date Subject
Next Message Mike Fowler 2011-09-09 10:01:19 Call for Papers: PostgreSQL at FLOSS UK, March 2012, Edinburgh
Previous Message Björn Häuser 2011-09-07 18:05:34 German Speaking PGConf.DE 2011, Call for Papers is open