Luft's Road to Elasticity - Part 1: Shared NothingからShared Storageへ
(engineering.ab180.co)自社開発データベースであるLuftの弾力性(elasticity)を改善するため、Shared NothingアーキテクチャからShared Storageアーキテクチャへ移行した経験を共有します。
- 以前は各ノードが独立したストレージを使用してデータを処理していたが、大容量データ処理時には弾力性が不足し、スパイク的なワークロードへの対応が難しかった。
- コンピューティング資源とストレージを分離するCompute-Storage Separationの考え方を適用し、ストレージを共有するShared Storageアーキテクチャへの移行を決定した。
- S3にアクセスするためにFUSEを活用する方式を試したが、Goランタイムの特性上、FUSE使用時に性能問題が発生したため、アプリケーションレベルでBuffer Pool Managerを独自実装した。
- これらの改善により、S3への直接クエリが可能になり、事前にデータが分散配置されていない場合のクエリ性能が最大70%以上向上して、Luftの弾力性が大きく改善された。
1件のコメント
これ、本当に面白いことをされていますね。私もやってみたくなりました。