C-Store: A Column-oriented DBMS(2005)

June 4, 2022

C-Storeは、OLAP系の読み込みクエリに特化した列指向データベースで、標準のSQLでのデータへのアクセスをサポートする。 高速化のために、テーブルのデータを、ある列の値でソートした複数の投影として保存する。 読み込みクエリのSELECT句やソートに合致する投影があれば処理を高速化でき、さらに可用性も向上する。 しかし、同じ列を重複して複数の投影に含める場合、必要なディスク容量も増える。 そのため、C-Storeは4種類の圧縮アルゴリズムによって、データを圧縮して保存する。

C-Storeの読み込みに特化した保存形式は、書込みには適さない。 そこで、C-Storeは、挿入と更新に特化した領域Writable Store(WS)と、容量の大きく読み込みに特化したRead-optimized Store(RS)を分離し、定期的にWSからRSへLSM-treeに似た仕組みでデータを移すことで、書込み速度の劣化を抑制する。

論文へのリンク