Tomas Vondra:[补丁想法] 并行 pgbench -i

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

文章建议通过并行数据加载来加速 pgbench -i,减少准备时间。方法是使用多个客户端同时生成和发送数据,并利用 pthread 实现并行处理。作者还讨论了按 ID 范围或分区分配任务的策略。尽管复杂性增加,但初步测试显示速度提升明显。

🎯

关键要点

  • pgbench 是最常用的 Postgres 基准测试工具,但初始数据加载仍然是串行的,导致准备时间长。
  • 建议通过并行数据加载来加速 pgbench -i,使用多个客户端同时生成和发送数据。
  • 该补丁的实现完全在客户端,代码简单,易于理解和修改。
  • pgbench 可以通过指定 -j N 创建多个进程来生成工作负载,利用 pthread 实现并行加载。
  • 数据可以通过不同策略分配给工作者,例如按 ID 范围分配或使用协调者分配小范围 ID。
  • 主要风险是速度提升可能低于预期,复杂性可能不值得,但可以通过快速测试来评估。
  • 如果对该补丁感兴趣,可以通过电子邮件联系作者或与其他 Postgres 开发者交流。
➡️

继续阅读