- ログ構造化マージツリー(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 を無視できる
- 標準的なLSM-treeキャッシュ技術を使用して、読み取りレイテンシと読み取りAPIコスト(GET)を緩和
- インメモリのブロックキャッシュ、圧縮、ブルームフィルター、ローカルSSTディスクキャッシュ
まだコメントはありません。