Notes on Snowflake’s new paper: Building an Elastic Query Engine on Disaggregated Storage
概要
- ストレージ-メモリ-CPUの分離は最近のコンピュータアーキテクチャのメインテーマだ
- この3つを分離すれば、過大なプロビジョニングをすることなく、それぞれのスケールを達成できる
<中略>
- 1.イントロダクション: 既存のソリューションの問題
- Shared Nothingアーキテクチャでは、過剰なリソースが確保されてしまう
- ノードを追加したときに高コストなreshufflingが必要になる
- 2.デザイン
- Computeノードの、SSDとメモリを合わせてEphemeral Storageと呼び、中間データの置き場所とする
- 4.ストレージアーキテクチャ
- 6. リソースの柔軟性
- マルチテナンシー
- EC2が時間単位の課金から秒単位の課金になったことで、スタンバイノードのプールは、高くつくようになった(なぜかはよくわからない)
- そのため、顧客間でノードを共用するモデルに移行したほうがよい感じになった
- ある顧客のVirtual Warehouseの使用率が低い時、ノードを共有する別のVWが余ったCPU/メモリを使えるようにするのは理にかなっている
- SNOW社はさらに、複数テナントを同一VWに入れられるようにしたいと考えているが、その実現にはこんなチャレンジがある:
- テナント間の独立性を維持したEphemeral Storageのデザインをどうするか
- 誰かがノードを追加したとき、Lazy consistent hashingにより、関係ないテナントまでキャッシュを失ってパフォーマンス低下してしまう
語彙
- leverage: (利益を得るために)利用する
- future direction: 今後の方向性
- make sense: 意味がある。理にかなう