WAL圧縮
Fujii Masao (@fujii_masao)
PostgreSQL9.5に提案中の
WAL圧縮機能
について紹介します
WAL圧縮機能とは
WALを圧縮してから書くことで
WALサイズを小さくして
更新性能を向上させる機能
WAL圧縮の効果
圧縮方法 レスポンス[ms] WALサイズ[MB]
圧縮なし 55.3 6051.0pglz 45.0 3543.0lz4 44.2 3344.0snappy 43.4 3354.0fpw=off 19.1 202.0
pgbench -i -s 1000ALTER TABLE pgbench_accounts ALTER COLUMN fller TYPE text USING gen_random_uuid()::text;
pgbench -c 64 -j 64 -r -R 400 -T 900 -M preparedcheckpoint_timeout = 5min
WAL圧縮の効果
圧縮方法 スループット[tps] WALサイズ[MB]
圧縮なし 891.8 7675.5pglz 1037.2 5492.0lz4 1084.7 5494.5snappy 1058.4 5667.0fpw=off 2162.6 948.0
pgbench -i -s 1000ALTER TABLE pgbench_accounts ALTER COLUMN fller TYPE text USING gen_random_uuid()::text;
pgbench -c 64 -j 64 -r -T 900 -M preparedcheckpoint_timeout = 5min
レプリ構成だと効果絶大
WAL WAL
MASTER STANDBY
パッチのステータス
性能検証用パッチを開発済
議論中の話題 ・どの圧縮アルゴリズムを採用する? ・圧縮対象データをどう切り出す?
道のり長い ・圧縮アルゴリズム自体のパッチを採用 ・WAL圧縮のパッチ、展開側のパッチ ・pg_xlogdump対応など
他のPG9.5向け提案
スタンバイ側でのWALアーカイブ
即時マスタ昇格
最新Txのコミット時刻を返却する関数