SlateDB - オブジェクトストレージベースの組み込みストレージエンジン
(github.com/slatedb)- ログ構造化マージツリー(Log-Structured Merge-tree)で構築された組み込みストレージエンジン
- 既存のLSM-treeストレージエンジンとは異なり、SlateDBはデータをオブジェクトストレージ(S3、GCS、ABS、MinIO、Tigris など)に書き込む
- オブジェクトストレージを活用することで、無限のストレージ容量、高い耐久性、容易なレプリケーション機能を提供
- ただし、オブジェクトストレージにはローカルディスクより高いレイテンシとAPIコストが発生するという欠点がある
SlateDBの欠点を回避する戦略
- 書き込みをバッチ処理して高い書き込みAPIコスト(PUT)を緩和
- すべての
put()呼び出しをオブジェクトストレージに書き込む代わりに、MemTable を定期的に文字列ソート済みテーブル(SST)としてオブジェクトストレージにフラッシュ - フラッシュ間隔は設定可能
- すべての
- 非同期
putメソッドを提供し、書き込みレイテンシも緩和- 強い耐久性を重視するクライアントは、MemTable がオブジェクトストレージにフラッシュされるまで
putでawaitできる(レイテンシと耐久性のトレードオフ) - 低レイテンシを重視するクライアントは、
putから返された future を無視できる
- 強い耐久性を重視するクライアントは、MemTable がオブジェクトストレージにフラッシュされるまで
- 標準的なLSM-treeキャッシュ技術を使用して、読み取りレイテンシと読み取りAPIコスト(GET)を緩和
- インメモリのブロックキャッシュ、圧縮、ブルームフィルター、ローカルSSTディスクキャッシュ
まだコメントはありません。