In the previous blogs (part1 and part2) I have explained following new features of Pgpool-II 4.3.
- Configuration file format has been changed for easier configuration.
- More information is added to utility commands to make admin's life easier.
- Allow to keep quorum even if the watchdog cluster looses enough number of watchdog nodes.
I will explain rest of the feature in this blog.
Allow to choose PostgreSQL node for promotion
Before 4.3 it was difficult to promote specified standby PostgreSQL node. Surely we have pcp_promote_node command but it actually just changes the status in Pgpool-II: it does not actually promotes PostgreSQL. Now pcp_promote_node has new option --switchover which actually promote PostgreSQL standby node. Details has been already written in a blog entry. Please visit the blog entry for more details.
Allow to choose the least replication delay node in load balancing
Pgpool-II can distribute read query among PostgreSQL servers. Also Pgpool-II can avoid to send read queries to standby servers if the replication delay between primary PostgreSQL server and standby PostgreSQL servers by using delay_threshold parameter.
New parameter prefer_lower_delay_standby does even more intelligent read query load balancing. This parameter is only useful if you have two or more standby servers. If the parameter is enabled and delay_threshold of the load balance node (that is the node for load balancing when the session started) is greater than 0, Pgpool-II will choose the least delay standby node to route read queries if replication delay exceeds delay_threshold. This will bring more chance to distribute load to standby servers while minimize the replication delay.
Catch up the latest SQL parser of PostgreSQL 14 as usual
Every Pgpool-II major releases import the latest PostgreSQL SQL parser at that point. When Pgpool-II 4.3 was out, PostgreSQL 14 has already been released. So Pgpool-II imports the SQL parser of PostgreSQL 14. With this user can enjoy the latest SQL features include:
- Allow an alias to be used to a JOIN ... USING
- Allow DISTINCT to be added to GROUP BY
- New SEARCH and CYCLE clauses for common table expression
Other new features
- Allow to use time stamp with milliseconds.
- Add new config parameter failover_on_backend_shutdown. See the past blog entry for more details.
- Add a new parameter which represents the recovery source hostname to recovery_1st_stage_command and recovery_2nd_stage_command. Why you need this is explain in the manual:
"Before the hostname of the main (primary) node was obtained by using hostname command. This is mostly ok since the script runs on the main (primary) node anyway. However in some systems the hostname obtained by hostname command is different from the hostname defined in backend_hostname configuration parameter. This could cause a trouble in detach_false_primary because it checks connectivity between primary and standby node by using host parameter in primary_conninfo parameter, which is generated by recovery_1st_stage_command. Thus it is strongly recommended to use this parameter instead of using hostname command to obtain the hostname of the primary node in recovery_1st_stage_command."
Conclusion
This is the last blog entry in the series of blog entries focusing on Pgpool-II 4.3. While Pgpool-II 4.3 has more features, it is easier to configure and use than previous releases. Please try it out!