BDI勉強会にて、「Vacuumとzheap」という題で話してきました。 前半は現在の取り組んでいるVacuumの課題点と改善案、後半は、コミュニティに提案されているストレージエンジン機能とzheapについてです。

Vacuumとzheap from Masahiko Sawada

Vacuumは色々改善されてきてはいるけど、まだまだ改善できそうだなという印象。特に、インデックスVacuum周りは意外と進歩していないように見える。 ここに挙げた課題をクリアすれば、おおよそ自分がやりたかった改善は一通り完了した事になりそう。PGConでは、この辺の内容を検証結果も含めて話す予定です。

zheapは、楽しみな機能の一つです。MySQL 5.6以前のようにUNDOログ領域が肥大化し続ける事もなく、共有メモリ領域も必要な量を動的に確保するようになっていて、なかなか考えられて実装されているイメージですが、UNDOログへのポインタがページ毎というのは、ワークロードによっては制約になりそうな感じ。xmin/xmaxのフィールドが無くなった分、タプル毎にあっても良い気がしました。PGConでもzheapのセッションがあるので聞いてきたいと思います。

zheapはテーブルに肥大化を抑えるという点では優れているので助かるユーザはとても多いと思いますが、僕はVacuum好きなので「Vacuum高性能だから追記型で大丈夫だよね」と言ってもらえるように、Vacuumの改善を頑張ります。