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