はじめに

VerticaにはROSコンテナの統合、データのパージ処理(物理削除)を行うためのMergeout処理が備わっており、Verticaのバージョンによって動作タイミングが異なります。
本記事では、バージョンによる動作タイミングやメカニズムについてご紹介します。

※Mergeoutの概要については、以下の記事をご覧ください。
MoveoutとMergeout

バージョンごとの動作タイミング

バージョンごとの動作タイミングは以下の通りです。
Verticaバージョンチェック間隔Mergeout実行条件
9.1以前一定時間間隔以下のいずれかの閾値を超過した場合
・コンテナ数閾値超過
・論理削除行数閾値
9.2以降一定時間間隔

DML Commit
(ROSコンテナが作成されるタイミング)
以下のいずれかの閾値を超過した場合
・コンテナ数閾値超過
・論理削除行数閾値

9.2からは、DMLがCommitされたタイミングでチェックを行うMergeoutが追加されており、この動作を”Reflexive Mergeout”と呼びます。

Mergeoutに関する制御パラメータ

Mergeoutの動作については、下記のパラメータで管理されています。
なお、パラメータの変更を検討される場合は、弊社サポートセンターへご連絡ください。
項目制御パラメータデフォルト値備考
Mergeout時間間隔MergeOutInterval600(秒)
コンテナ数閾値MaxROSPerStratum32(コンテナ)一定のコンテナサイズごとに自動で階層分けされており、その階層内でのコンテナ数の閾値
論理削除行数閾値PurgeMergeoutPercent 20(%)1ROSコンテナあたりの格納行数に対する論理削除行数の割合


Reflexive Mergeoutの利点

Reflexive Mergeoutにより、コンテナ数が増加するタイミングでMergeoutの要否がチェックされることとなり、DML操作のパフォーマンス低下の抑止、ROS Pushbackエラー(*)の発生軽減が期待できます。

(*) ROSコンテナの作成上限数に達した際に発生するエラーです。

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。

更新履歴

2019/06/21 本記事を公開