Write Once アーキテクチャ

Verticaは一度書き込みを行った領域に対しては更新を行わないWrite Onceと呼ばれるアーキテクチャを採用しています。これによりシンプルなトランザクション管理を実現しています。

DML処理を行った場合は、それぞれ以下のような処理が内部的に実行されます。

INSERTの場合

処理イメージ

insert

処理内容

1) 対象テーブルに対してINSERT文を発行すると最下部に行が追記されます。

DELETEの場合

処理イメージ

delete

処理内容

1) 対象テーブルに対してDELETE文を発行すると該当行は論理削除されます。
2) 論理削除されたデータは定期的に物理削除されます。

 ※論理削除とは、データを残したまま該当行を「Deleted」としてマークする動作です。

UPDATEの場合

処理イメージ

update

処理内容

1) 対象テーブルに対してUPDATE文を発行します。
2) 更新対象の行を直接更新せず、更新後のデータを新しい行として追記(INSERT)します。
3) 更新対象の行については論理削除(DELETE)を行います。
4) 論理削除されたデータは定期的に物理削除されます。

 ※論理削除とは、データを残したまま該当行を「Deleted」としてマークする動作です。

検証バージョンについて

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