PostgreSQL 10.0 preview 流复制增强 - 支持可配置的wal send max size

标签

PostgreSQL , 10.0 , 流复制增强 , max wal send size


背景

以前的版本,wal sender进程使用流复制协议,将WAL信息发送给下游的wal receiver进程时,一次最多发送128KiB,是在宏中设置的。

现在允许用户设置GUC参数,来控制这个最大值。

在测试环境中设置为16MB有2倍的性能提升,可以更好的利用网络带宽,提升流复制的传输效率。

Attached please find a patch for PostgreSQL 9.4 which changes the maximum
amount of data that the wal sender will send at any point in time from the
hard-coded value of 128KiB to a user-controllable value up to 16MiB. It has
been primarily tested under 9.4 but there has been some testing with 9.5.  

In our lab environment and with a 16MiB setting, we saw substantially
better network utilization (almost 2x!), primarily over high bandwidth
delay product links.  

--
Jon Nelson
Dyn / Principal Software Engineer

这个patch的讨论,详见邮件组,本文末尾URL。

PostgreSQL社区的作风非常严谨,一个patch可能在邮件组中讨论几个月甚至几年,根据大家的意见反复的修正,patch合并到master已经非常成熟,所以PostgreSQL的稳定性也是远近闻名的。

参考

https://commitfest.postgresql.org/13/958/

https://www.postgresql.org/message-id/flat/CACJqAM2uAUnEAy0j2RRJOSM1UHPdGxCr=U-HbqEf0aAcdhUoEQ@mail.gmail.com#CACJqAM2uAUnEAy0j2RRJOSM1UHPdGxCr=U-HbqEf0aAcdhUoEQ@mail.gmail.com

时间: 2024-08-03 18:22:59

PostgreSQL 10.0 preview 流复制增强 - 支持可配置的wal send max size的相关文章

PostgreSQL 10.0 preview 多核并行增强 - 并行hash join支持shared hashdata, 节约哈希表内存提高效率

标签 PostgreSQL , 10.0 , 多核并行增强 , shared hash表 , hash join 背景 PostgreSQL 9.6支持哈希JOIN并行,但是每个worker进程都需要复制一份哈希表,所以会造成内存的浪费,小表无妨,但是大表的浪费是非常大的. 因此10.0做了一个改进,使用共享的哈希表. Hi hackers, In PostgreSQL 9.6, hash joins can be parallelised under certain conditions, b

PostgreSQL 10.0 preview 多核并行增强 - 索引扫描、子查询、VACUUM、fdw/csp钩子

标签 PostgreSQL , 10.0 , 并行计算 , 索引扫描 , 子查询 , VACUUM , 外部表并行 背景 PostgreSQL 9.6推出的多核并行计算特性,支持全表扫描,hash join,聚合操作. 10.0 在此基础上,增加了更多的支持. 1. Parallel bitmap heap scan 2. Parallel Index Scans 3. Parallel Merge Join 4. parallelize queries containing subplans

PostgreSQL 10.0 preview 多核并行增强 - tuplesort 多核并行创建索引

标签 PostgreSQL , 10.0 , 并行增强 , 多核并行创建索引 背景 PostgreSQL 10.0的多核并行有了诸多增强,比如多核并行排序,可以用于提升创建btree索引的速度. As some of you know, I've been working on parallel sort. I think I've gone as long as I can without feedback on the design (and I see that we're accepti

PostgreSQL 10.0 preview 多核并行增强 - 控制集群并行度

标签 PostgreSQL , 多核并行 , 集群并行度 , SQL并行度 , NODE并行度 背景 PostgreSQL 9.6引入多核并行,一条SQL可以使用多个CPU核,提升SQL性能. 但是多核并行一定不要滥用,因为CPU资源有限,如果单个QUERY把CPU都用光了,其他QUERY就会因为缺乏CPU资源造成性能抖动. 9.6刚出来的时候,可以控制单个gather的并行度,比如全表扫描,扫描节点算一个gather,一个gather下面会fork 一些worker process执行并行任务

PostgreSQL 10.0 preview 功能增强 - 逻辑订阅端 控制参数解说

标签 PostgreSQL , 10.0 , 逻辑订阅 背景 PostgreSQL 逻辑订阅相关文章请参考 <PostgreSQL 10.0 preview 变化 - 逻辑复制pg_hba.conf变化,不再使用replication条目> <PostgreSQL 10.0 preview 功能增强 - 备库支持逻辑订阅,订阅支持主备漂移了> <PostgreSQL 10.0 preview 功能增强 - 逻辑复制支持并行COPY初始化数据> <PostgreSQ

PostgreSQL 10.0 preview 功能增强 - OLAP增强 向量聚集索引(列存储扩展)

标签 PostgreSQL , 10.0 , Vertical Clustered Index (columnar store extension) , 列存储 , 向量聚集索引 背景 未来数据库OLTP+OLAP逐渐模糊化,需求逐渐融合是一个大的趋势,如果你的数据库只支持OLTP的场景,未来可能会成为业务的绊脚石. 在这方面PostgreSQL每年发布的新版本,都给用户很大的惊喜,OLTP已经具备非常强大的竞争力(性能.功能.稳定性.成熟度.案例.跨行业应用等),而OLAP方面,新增的feat

PostgreSQL 10.0 preview 功能增强 - 增加access method CHECK接口amcheck

标签 PostgreSQL , 10.0 , amcheck , 逻辑一致性检测 , 物理存储检测 背景 一些高端存储.包括ZFS文件系统,在使用了RAID后,有块检测和异常块的修复功能. 对于数据库来说,数据的可靠性是非常重要的指标,例如: 1. 写进入是什么,读出来就应该是什么. 2. 当操作系统的collate发生变化时,索引的顺序可能与实际的collate顺序不匹配.造成不稳定现象. 3. 数据块partial write,可能导致数据损坏. 4. 内存页异常,使用到某些异常页时,可能带

PostgreSQL 10.0 preview 性能增强 - 推出JIT开发框架(朝着HTAP迈进)

标签 PostgreSQL , 10.0 , HTAP , 动态编译 , JIT , LLVM , 表达式 , 函数跳转 背景 数据库发展了几十年,出现了很多产品,有面向OLTP(在线事务处理)的,有面向OLAP(在线分析)的. 虽然两个场景各有需求特色,但是企业需要为其需求买单,因为目前很少有产品可以同时满足在线处理和在线分析的需求. 比如一家企业,通常都有业务的波峰波谷,比如游戏业务,通常波谷可能是在凌晨,因为大多数人都睡了.而波峰可能出现在每天的工作闲时.游戏运营时段.节假日等. 为了分析

震精 - PostgreSQL 10.0 preview 性能增强 - WARM提升一倍性能

标签 PostgreSQL , 10.0 , WARM , 写放大 , 索引写放大 背景 目前,PostgreSQL的MVCC是多版本来实现的,当更新数据时,产生新的版本.(社区正在着手增加基于回滚段的存储引擎) 由于索引存储的是KEY+CTID(行号),当tuple的新版本与旧版本不在同一个数据块(BLOCK)的时候,索引也要随之变化,当新版本在同一个块里面时,则发生HOT UPDATE,索引的值不需要更新,但是因为产生了一条新的记录,所以也需要插入一条索引item,垃圾回收时,将其回收,因此