[pgpool-hackers: 1379] Re: [pgpool-general: 4368] pgpool-II 3.4.0 and pgpoolAdmin 3.4.0 officially released
Yugo Nagata
nagata at sraoss.co.jp
Mon Feb 1 14:46:14 JST 2016
Hi Usama,
Thank you for poiting out this.
Yes, I made a mistake, 3.5.0 is right.
On Fri, 29 Jan 2016 17:17:25 +0500
Muhammad Usama <m.usama at gmail.com> wrote:
> Hi Yugo
>
> I think the subject mentions the wrong pgpool-II version number
>
> Thanks
> Best regards
> Muhammad Usama
>
> On Fri, Jan 29, 2016 at 2:56 PM, Yugo Nagata <nagata at sraoss.co.jp> wrote:
>
> > Pgpool Global Development Group is pleased to announce the availability of
> > pgpool-II 3.5.0 and pgpoolAdmin 3.5.0.
> >
> > You can download the source codes and RPMs from:
> > http://pgpool.net/mediawiki/index.php/Downloads
> >
> > V3.5 new features are:
> >
> > - Improved performance in extended query protocol
> > - Overcoming the thundering herd problem
> > - Watchdog feature enhancements to be more robust and adaptable
> > - PCP command enhancements
> > - Import PostgreSQL 9.5 parser
> > - etc.
> >
> > Please see the below for details:
> >
> > http://pgpool.net/mediawiki/index.php?title=pgpool-II_3.5_features&redirect=no
> >
> > Release notes are here:
> >
> > =========================================================================
> > 3.5.0 (ekieboshi) 2016/01/29
> >
> > * Version 3.5.0
> >
> > This is the first version of pgpool-II 3.5 series.
> > That is, a "major version up" from 3.4 series.
> >
> > __________________________________________________________________
> >
> > * Incompatible changes
> >
> > - Remove parallel query mode codes (Yugo Nagata)
> >
> > There are very few users and the maintenance efforts are not worth
> > it.
> > Codes for system db are also removed, since this was used in only
> > parallel
> > query mode and old query cache on disk.
> >
> > - Rename parameter name from ifconfig_path to if_cmd_path (Yugo Nagata)
> >
> > ifconfig_path isn't appropriate for the parameter name because
> > ifconfig command is obsolete and now ip command is used as default.
> >
> > - Change the syntax of pcp commands arguments (Muhammad Usama)
> >
> > - Change the output and the argument semantics of pcp_watchdog_info
> > command
> > (Muhammad Usama)
> >
> > The command is enhanced to show watchdog information about all
> > pgpool-II
> > nodes in the cluster. According to this, the argument to specify
> > node index
> > is changed so that 0 means local pgpool-II node instead of the first
> > remote
> > node.
> >
> > __________________________________________________________________
> >
> > * New features
> >
> > - Add new parameter "serialize_accept" (Tatsuo Ishii)
> >
> > This parameter defines whether to serialize accept() call for
> > incoming
> > client connections. Default is off, which means no serializing (same
> > behavior as pgpool-II 3.4 or before). If this is off, the kernel
> > wakes up all of pgpool-II child process to execute accept() and one
> > of
> > them actually accepts the incoming connection. Problem here is,
> > because so my child process wake up at a same time, heavy context
> > switching occurred and the performance is affected. This phenomena
> > is
> > a classic problem called "the thundering herd problem". By enabling
> > serialize_accept, only one of pgpool-II child process is woken up and
> > executes accept() and the problem can be avoided.
> >
> > - Import parser of PostgreSQL 9.5 (Yugo Nagata)
> >
> > pgpool-II can understand new syntax introduced in PostgreSQL 9.5 now.
> > Especially GROUPING SET, CUBE, ROLLUP and TABLESAMPLE can be be load
> > balanced and can be used in query cache (except for TABLESAMPLE).
> >
> > Also INSERT...ON CONFLICT and UPDATE tab SET (col1, col2, ...) =
> > (SELECT ...) ... can now be properly handled in query rewriting in
> > native replication mode.
> >
> > - Allow to specify database for health check and streaming replication
> > delay check. (Tatsuo Ishii)
> >
> > For this purpose new directive "health_check_database" and
> > "sr_check_database" are added.
> >
> > __________________________________________________________________
> >
> > * Enhancements
> >
> > - Performance improvement in extened query protocol (Tatsuo Ishii)
> >
> > Unnecessary "flush" messages which used to be sent in each step of
> > extended protocol messages (parse, bind, describe and execute) and
> > brought significant communication overhead are removed. For now it
> > only affects to streaming replication mode, that is, the performance
> > of other modes remains same.
> >
> > - watchdog feature enhancements (Muhammad Usama, Yugo Nagata)
> >
> > The goal of this enhancement is to address the shortcomings and
> > problems
> > in the pgpool watchdog and make the watchdog system more robust and
> > adaptable. Patch created by Usama, and reviewed, tested, and debugged
> > by Yugo.
> >
> > -- The watchdog should consider the quorum and only elect the
> > master/leader
> > node if the quorum exist in the watchdog cluster.
> > -- All the participating pgpool-II nodes in the watchdog cluster
> > should have
> > similar pgpool-II configurations.
> > -- Watchdog nodes should have configurable watchdog node priority,
> > to give
> > users more control on which node should become a leader node.
> > -- More options for the node health-checking, especially watchdog
> > should allow
> > external/3rd party node health checking system to integrate
> > with it.
> > -- The watchdog should keep looking for problems like split-brain
> > syndrome and
> > should automatically recover from it.
> > -- Allow user to provide scripts to be executed at time of
> > escalation and
> > de-escalation to master/leader nodes.
> >
> > Add these new parameters:
> >
> > -- wd_ipc_socket_dir:
> > This parameter is used to specify the directory where the UNIX
> > domain
> > socket accepting pgpool-II watchdog IPC connections will be
> > created.
> >
> > -- wd_priority:
> > This new parameter can be used to elevate the current watchdog
> > node
> > priority in leader elections. The node with the higher
> > wd_priority
> > value will get selected as master/coordinator watchdog node when
> > cluster will be electing its master node at cluster startup or
> > in the
> > event of old master watchdog node failure.
> >
> > -- wd_de_escalation_command:
> > This parameter holds the command that watchdog will execute on
> > the
> > master pgpool-II watchdog node when that node resigns from the
> > master
> > node responsibilities.
> >
> > -- wd_monitoring_interfaces_list:
> > This parameter holds a comma separated list of network device
> > names to
> > be monitored by the watchdog process for the network link state.
> >
> > - Overhauling pcp commands (Muhammad Usama)
> >
> > -- Improved handling of command argument:
> > Long command line options can be used now.
> > -- PCP password is safe:
> > Don't pass password via command line, which causes security
> > risks.
> > -- Mutiple concurrent execution of pcp commands:
> > Allow to execute a pcp command while running pcp_recovery_node
> > which takes sometime to finish.
> >
> > - SELECT count statics in "show pool_nodes" command results (Tatsuo
> > Ishii)
> >
> > show pool_nodes results which briefly describes the status of each
> > backend
> > now shows how many SELECTs are issued to them. So you can quickly
> > recognize the effect of load balancing for example;
> >
> > test=# show pool_nodes;
> > node_id | hostname | port | status | lb_weight | role |
> > select_cnt
> >
> > ---------+----------+-------+--------+-----------+---------+------------
> > 0 | /tmp | 11002 | 2 | 0.500000 | primary | 338230
> > 1 | /tmp | 11003 | 2 | 0.500000 | standby | 163939
> > (2 rows)
> >
> > - Parser enhancements for query rewriting (Yugo Nagata)
> >
> > INSERT/UPDATE/DELETE with WITH clause, writable CTE, RETURNING clause
> > can now be properly handled in query rewriting in native replication
> > mode.
> >
> > - Allow to open pool_passwd file in read only mode by pgpool-II main
> > process (Tatsuo Ishii)
> >
> > - Allow to run pgpool in debug mode in regression tests (Tatsuo Ishii)
> >
> > - doc:Add pgpool_adm documents (Tatsuo Ishii)
> >
> > - doc:Update Chinese documents (Bambo Huang)
> >
> > __________________________________________________________________
> >
> > * Bug fixes (since 3.4.3)
> >
> > - doc: Fix misinformation regarding load balancing in docs (Tatsuo
> > Ishii)
> >
> > In streaming replication mode, DECLARE, FETCH, CLOSE and SHOW are
> > sent
> > to primary node only. Pointed out in [pgpool-general-jp: 1378].
> >
> > - Issue fsync() when writing pgpool_status. (Tatsuo Ishii)
> >
> > This ensures that pgpool_status is saved to permanent storage and
> > allow to survive after system crash.
> >
> > - Fix reset query stuck problem (Muhammad Usama)
> >
> > It is reported that reset query (DISCARD ALL etc.) occasionally does
> > not finish and pgpool child remain waiting for reply from the backend
> > thus client cannot connect to pgpool (for example bug report #107).
> > The cause of problem is not identified yet but if client suddenly
> > closes connection to pgpool in the middle of query processing,
> > backend
> > may not accept the reset queries because they are not ready for
> > query.
> >
> > The fix is to keep track of the status of frontend socket state and
> > not
> > caching the PostgreSQL connection if the connection to frontend was
> > not
> > properly terminated.
> >
> > - test: Fix false alerm of regression tset 062 (Yugo Nagata)
> >
> > - test: Fix broken regression test for native replication (Yugo Nagata)
> >
> > Test for insert-lock didn't work.
> >
> > - test: Fix regress test to sleep after pgpool_reload (Yugo Nagata)
> >
> > Some regression tests modify configuration file and reloads. However,
> > sometimes these were not applied to pgpool just after reloading.
> >
> > - Fix inconsistency of sequence values in replication mode (Yugo
> > Nagata)
> >
> > When a schema name was provided, the table name was quoted wrongly as
> > like "public.mytbl" instead of "public"."mytbl". So, pool_regclass
> > and to_regclass couldn't find right talbe oid and insert lock was
> > never executed. This caused inconsistency between DB nodes.
> >
> > - test: Fix complication error and segfault of timestamp rewrite test
> > (Yugo Nagata)
> >
> > - doc: Fix untranslated sentence in Japanese document (Yugo Nagata)
> >
> > - Fix ancient bug of pool_push() and friends. (Tatsuo Ishii)
> >
> > It allocates buffer using realloc and uses the pointer
> > returned. However it does the pointer calculation *before* realloc
> > gets called. So the calculation uses the old pointer value, which
> > causes various problems including segfault later.
> >
> > Also there were other problems with it. The buffer pointer and buffer
> > size variable is not initialized. The buffer is not freed by
> > pool_close. Typo in debugging message (3.4 or later only). They are
> > fixed as well.
> >
> > - doc: Fix wrong description in documents about log_standby_delay
> > (Yugo Nagata)
> >
> > - Fix segfalut that occurs when function is used in FROM clause (Yugo
> > Nagata)
> >
> > PRPARE statements in streaming-reaplication mode and INSERT/UPDATE
> > with SELECT in native-replication mode were affected. For example:
> >
> > - prepare p as select * from generate_series(1,1);
> > - insert into tbl select now(), * from generate_series(1,1);
> >
> > - doc: Add caution about JDBC driver version regarding
> > app_name_redirect_preference_list
> > (Tatsuo Ishii)
> >
> > - Fix hang problmen reported in bug #145. (Tatsuo Ishii)
> >
> > The problem occurs when all the condition below are met:
> >
> > 1) pgpool-II 3.4 or later
> > 2) streaming replication mode
> > 3) primary node is also load balance node
> > 4) extended protocol is used
> > 5) client_idle_limit reached
> >
> > - Fix a in-memory query cache bug (Tatsuo Ishii)
> >
> > If extended query protocol is used and a bind/execute message arrives
> > which uses a statement created by prior parse message, the temp_cache
> > is not initialized by a parse messages. Thus messages are added to
> > pre
> > existing temp cache buffer which causes the trouble, that is, when
> > the
> > cached result returns, Data Row message and Command Complete message
> > appeared twice.
> >
> > Per by bug #152.
> >
> > - test: Fix regression test 065. (Tatsuo Ishii)
> >
> > The path to JDBC driver was explicitly defined. This is wrong. This
> > should be inherited from JDBC_DRIVER environment variable.
> >
> > - test: Fix possible hang-up of regression test 054.postgres_fdw (Yugo
> > Nagata)
> >
> > - test: Add option to regress.sh and pgpool_setup for unix domain
> > socket
> > directory (Yugo Nagata)
> >
> > - doc: Add missing descriptions about default values to documents
> > (Yugo Nagata)
> >
> > - test: Fix regression test 055 for rhel7 rpm (Yugo Nagata)
> >
> > - Fix reset query stuck problem (Muhammad Usama)
> >
> > The issue is already fixed in older branches and this fix adopts the
> > same solution used by 3.3 series, i.e. closing the backend connection
> > when client idle limit is reached.
> >
> > - Fix bug with "SET TRANSACTION READ ONLY" (Tatsuo Ishii)
> >
> > Pgpool-II remembers that non read only queries (including SET) were
> > executed in an explicit transaction and adds a "writing transaction"
> > mark to the transaction. The mark affects the query routing behavior
> > of pgpool-II while running in streaming replication mode. Pgpool-II
> > starts sending queries to the primary after the mark is set. Because
> > the effect of writing queries may appear on standbys after some delay
> > in streaming replication mode, it is safer to route read queries to
> > the primary after the mark is set.
> >
> > However there's oversight here. "SET TRANSACTION READ ONLY" does no
> > data modification and should be treated as an exception.
> >
> > Per bug #157.
> >
> > - test: Fix to use timeout command to handle time out of regress test
> > 062
> > (Yugo Nagata)
> >
> > - Fix to show wrong error (Tatsuo Ishii)
> >
> > connect_with_timeout() does not show proper error info when
> > getsockopt(SO_ERROR) reports an error. Pointed out in bug #159.
> >
> > - test: Add regress.sh missing \n in help messages (Yugo Nagata)
> >
> > - Fix the logic issue in get_backends_status() function (Muhammad
> > Usama)
> >
> > get_backends_status () function counts the number of current valid
> > and down
> > backend nodes. The function assumed that the node was also invalid
> > when its
> > connection status was down. However, that is not always right.
> >
> > - Fix white/black_memqcache_table_list not to require quotaion (Yugo
> > Nagata)
> >
> > The tables and schemas name specified in *_memqcache_table_list
> > were needed to be quoted by double quotation.
> >
> > Patch contributed by Dang Minh Huong.
> > Per [pgpool-hackers: 1323]
> >
> > - Fix FATAL error with reloading (Tatsuo Ishii)
> >
> > While reloading pgpool.conf, the number of DB nodes is tentatively
> > set
> > to 0, then counted up until reaching to the actual number of backends
> > by the pgpool main process. Unfortunately the variable was on the
> > shared memory and it confused pgpool child process when they were
> > using
> > the variable and this caused FATAL error.
> >
> > Per bug #156 report by harukat.
> >
> > - test: Add some tests for white/black_memqcache_table_list to
> > regression
> > test 006.memqcache (Yugo Nagata)
> >
> > - Fix reset query stuck problem (Muhammad Usama, Tatsuo Ishii)
> >
> > When pool_read fails to read from frontend or pool_flush fails to
> > write to the frontend, report FRONTEND_ERROR, rather than ERROR to
> > disconnect and terminate pgpool child process, to prevent the query
> > stuck problem.
> >
> > - test: Fix some regression tests that failed in debug mode (Yugo
> > Nagata)
> >
> > - Fix performance degradation while using IPv6 (Muhammad Usama)
> >
> > Per bug #165.
> >
> > --
> > 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-hackers
mailing list