暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Pgpool-II 4.4.4、4.3.7、4.2.14、4.1.17 和 4.0.24 已发布

原创 通讯员 2023-08-23
485

什么是 Pgpool-II?

Pgpool-II 是一个向 PostgreSQL 添加有用功能的工具,包括:

  • 连接池
  • 负载均衡
  • 自动故障转移等等

次要版本

Pgpool 全球开发集团很高兴地宣布推出以下版本的 Pgpool-II:

  • 4.4.4
  • 4.3.7
  • 4.2.14
  • 4.1.17
  • 4.0.24

发行说明:https://www.pgpool.net/docs/latest/en/html/release.html

源代码下载:https://pgpool.net/mediawiki/index.php/Downloads


Pgpool-II 4.4.4发行说明

A.1. 版本4.4.4

发布日期: 2023-08-17

A.1.1。变化


  • 仅在共享内存初始化后安装系统退出回调。(穆罕默德·乌萨马)

    当由于无法获取共享内存而调用退出回调时。清理函数在访问共享内存中的 process_info 时可能会产生段错误。虽然我们也可以通过当 process_info 为 NULL 时从退出回调中退出来解决此问题,但在成功初始化共享内存后安装该函数是更好的方法,因为系统的其余部分始终假设 process_info 永远不会为 NULL,而且,在生成子进程之前没有什么需要清理的。

  • process_management_mode设置为“dynamic”时 ,不允许将max_spare_children设置为大于num_init_children 。(穆罕默德·乌萨马)

    如果num_init_children小于max_spare_children , 配置后处理阶段现在会抛出错误Commit 还根据配置的进程管理策略调整启动时生成的子进程的数量。对于 Aggressive 策略,生成max_spare_children进程数;对于其他两种策略,min_spare_children子级数在启动时创建。

  • 降级日志消息。(石井达夫)

    https://www.pgpool.net/mantisbt/view.php?id=806 中指出 日志文件中有日志条目:

    日志:pool_pending_message_set_flush_request:msg:解析

    这些消息用于调试,日志级别应该是 DEBUG*。所以我将日志级别从LOG更改为DEBUG5。

  • 为某些系统目录查询功能添加模式限定。(石井达夫)

A.1.2。Bug修复


  • 修复覆盖警告。(石井达夫)

    修复查询缓存模块将 time_t 值分配给 int32 变量的问题。将变量类型更改为 int64。根据覆盖性。还可以使用 difftime() 来计算 time_t 差异。这是推荐的做法。 https://www.jpcert.or.jp/sc-rules/c-msc05-c.html

  • 修复 find_primary_node_repeatedly 不会在search_primary_node_timeout内终止。(彭博)

  • 修复使用 v2 协议时的崩溃问题。( bug 807 ) (Tatsuo Ishii)

    当read_kind_from_backend()累积统计数据时,它没有为v2协议情况做好准备。

    来自 MCanivez 的错误报告和补丁。被我稍微修改了一下。

  • 修复多语句情况下的PREPARE 。(石井达夫)

    如果多语句查询在第二个或后面的位置包含 PREPARE ,并且后续绑定消息使用准备好的语句,则会失败并出现“无法绑定”错误,因为准备好的语句未保存在发送的消息中。

    如果在解析语句后发现这种情况,要解决此问题,请为指定语句创建查询上下文并将其添加到已发送消息列表中。

    讨论:https ://www.pgpool.net/pipermail/pgpool-general/2023-July/008931.html

    对于这个新的回归测试,添加了 079..multi_prepare。

  • 修复 pgproto 以使用参数处理绑定消息。(石井达夫)

    以前 pgproto 只能处理没有参数的绑定消息。

  • 修复日志消息中的拼写错误。(彭博)

  • 修复缺失的 CTE SEARCH 和 CYCLE 重写。(彭博)

    在本机复制模式下,Pgpool-II需要将日期/时间函数重写为 WRITE 查询中的时间戳。CTE SEARCH 和 CYCLE 重写丢失。

  • 删除了 src/sample/pgpool.conf.sample-stream 中重复的 pcp_listen_address 设置。(彭博)

  • 防止共享锁下的查询缓存更新。(石井达夫)

    错误 795中,有人指出可以在共享锁下修改过期的查询缓存条目。这可能会导致查询缓存使用的共享内存损坏。为了解决这个问题,我们暂时释放共享锁,然后在修改缓存条目之前获取排它锁。这可能会创建一个窗口,我们需要再次获取缓存条目元数据以确保元数据没有被其他人修改。

    向后补丁到 V4.4 稳定版,其中引入了查询缓存的共享锁定。

  • 修复delay_threshold_by_timeprefer_lower_delay_standby(石井达夫)

    自从4.4 中引入 delay_threshold_by_time 以来,它们就被破坏了。


    • 在 where_to_send 中未检查delay_threshold_by_time 。当复制延迟时,这会破坏负载平衡。


    • 如果同时启用了 delay_threshold_by_time 和prefer_lower_standby_delay ,则select_load_balancing_node 会被破坏。

    为了解决该问题,修复了 where_to_send 和 select_load_balancing_node。还将delay_threshold_by_time的测试用例添加 到033.prefer_lower_standby_delay。

    讨论:https://www.pgpool.net/pipermail/pgpool-general/2023-June/008864.html

  • 修复replication_mode_recovery_2nd_stage.sample 示例脚本中错误的变量名称。(彭博)

A.1.3。文件


  • 修复丢失的“logger”应用程序名称。(彭博)

  • 明确停止模式的含义。(石井达夫)

  • 从发行说明 4.2.10 中删除不正确的信息。(彭博)

    从发行说明 4.2.10 中删除“修复 pgpool_recovery 扩展脚本。(Tatsuo Ishii)”。

  • 增强“8.2. Pgpool-II + Watchdog 设置示例”中的 SSH 公钥验证设置部分。(彭博)

  • 修复负载平衡模式章节。(石井达夫)

    有些地方“流复制模式”被写成“本机复制模式”。还增强了有关流式复制模式中负载平衡的附加要求的描述。添加一些索引。

  • 增强在线恢复文档。(彭博)

    需要指出的是,在线恢复的第二阶段仅对于未启用看门狗的多个 pgpool 节点无法正常工作。

A.1.4。回归测试


  • 修复偶尔出现的 069.memory_leak_extended 测试失败问题。(石井达夫)

    事实证明,偶尔测试失败的原因是,在 pgbench 完成后运行 ps 命令之前,pgpool 子进程就消失了。原因是类型不匹配致命错误,“DISCARD ALL 无法在管道内执行”。要解决此问题,请在后台运行 pgbench 并在 pgbench 完成之前获取进程大小。

    讨论:https ://www.pgpool.net/pipermail/pgpool-hackers/2023-May/004338.html


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论