昨年から、HTAP (Hybrid Transactional/Analytical Processing) を実現する為の手法に興味を持っています。

HTAP を実現する為に、DB の内部では row-wise / column-wise それぞれの形式でレコードを保持するのが一般的です。それらのレコードを効率的に保存、活用する手法について何か面白い話は無いか調べてみたところ、『Towards a One Size Fits All Database Architecture』 という 2011 年の Paper があったので、読んでみました。

Conclusion 以外は要約です。

Introduction

90年代半ばには、data warehouse のエンジニアは、当時の DB がデータサイズや OLAP の複雑なクエリに対応するのは不十分であることが分かっていた。それ故、分析用に column-wise な DB を作り、分析はその DB を使うようにした。このように、用途によって DB を分けるようになった。ストリームを扱うシステム (data stream management systems: DSMS) もその一つ。その結果、ETL パイプラインを用意する等してデータをコピーし、複数の DB を管理することなる。複数の DB のユースケースをカバーする単一の効果的なシステムを構築したい。それが OctopusDB である。

OctopusDB

The Primary Log Store

Storage View

Storage View Example

SV Lattice

Holistic SV Optimizer

Purging and Checkpoints

Recovery

Transaction And Isonation

Conclusion

OctopusDB は、以下の点が面白いと思いました。

次は、複数の抽象化されたストレージの特性を参照しながら最適な実行計画を構築する具体的な手法を探してみたいと思います。