组提交

来自 PostgreSQL 维基
跳转到导航跳转到搜索

功能描述

组提交是计划在 PostgreSQL 9.2 中实现的功能。

该功能由 Simon Riggs 和 Peter Geoghegan 开发。该功能在 -hackers 线程上的最新讨论是:http://archives.postgresql.org/pgsql-hackers/2012-01/msg00804.php

总的来说,组提交功能使 PostgreSQL 能够批量提交一组事务,从而摊销刷新 WAL 的成本。此页面描述的拟议实现很大程度上基于现有的同步复制实现。它取代了早期版本中的 commit_siblings "组提交" 实现。此早期实现从未真正被认为是有效的,其使用受到警告的限制,因此实际上很少使用。预计拟议的实现将默认启用,可能无法关闭。

基准测试

Greg Smith 的 pgbench 工具 (https://github.com/gregs1104/pgbench-tools) 对此功能进行了基准测试。以下是初始基准测试的结果

https://wiki.postgresql.ac.cn/images/5/50/Group-commit-pgbench-tools.pdf

使用信号量实现的修改后的结果

https://wiki.postgresql.ac.cn/images/c/c6/Group-commit-semaphore-results.pdf

这些结果是在带有 LVM 的 ext4(Linux 内核 3.1)文件系统上获得的。所用的硬盘是 WDC WD3200BEKT-08PVMT1 7200 RPM SATA 硬盘,启用了写入缓存。