はじめに
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時間間隔 | MergeOutInterval | 600(秒) | |
コンテナ数閾値 | MaxROSPerStratum | 32(コンテナ) | 一定のコンテナサイズごとに自動で階層分けされており、その階層内でのコンテナ数の閾値 |
論理削除行数閾値 | PurgeMergeoutPercent | 20(%) | 1ROSコンテナあたりの格納行数に対する論理削除行数の割合 |
Reflexive Mergeoutの利点
Reflexive Mergeoutにより、コンテナ数が増加するタイミングでMergeoutの要否がチェックされることとなり、DML操作のパフォーマンス低下の抑止、ROS Pushbackエラー(*)の発生軽減が期待できます。(*) ROSコンテナの作成上限数に達した際に発生するエラーです。