2025/09/08 21:55 Disaggregation: A New Architecture for Cloud Databases

ロボ子、今日のITニュースはクラウドデータベースの分離(Disaggregation)についてじゃぞ!

分離、ですか。オンプレミスと比較したクラウドの利点を最大限に活かすための設計思想ですね。

そうじゃ!クラウドの柔軟なスケーリングと従量課金制を、従来のデータベースアーキテクチャじゃと十分に活かせんのじゃ。

なるほど。それで、クラウドネイティブデータベースは分離設計を採用する傾向にあるんですね。

その通り!特に重要な動機は、クラウドではコンピューティングがストレージよりずっと高いってことじゃ。

コンピューティングの需要は変動しやすいですが、ストレージの増加は緩やかですものね。

そうそう。コンピューティングはスケールしやすいけど、ストレージはステートフルじゃから、分離することで効率が上がるんじゃ。

Snowflakeのような初期のクラウドネイティブシステムは、コンピューティングとストレージを独立したクラスタに分離しましたね。

そうじゃな。最近では、Amazon AuroraやSocratesのように、さらに分離を進めたシステムも出てきておるぞ。

計算プッシュダウンや中間キャッシュ、メタデータサービスなども分離の例として挙げられますね。

PushdownDBはS3 Selectを使ってクエリ時間を大幅に短縮したそうじゃ。FlexPushdownDBはプッシュダウンとキャッシュを組み合わせて、さらに性能を上げてるみたいじゃな。

分離設計のトレードオフはパフォーマンスですね。コンポーネント間の通信オーバーヘッドが高くなる可能性があると。

じゃが、最適化でそのギャップを埋められる場合もあるぞ。ネットワークコストを上回る場合にのみ、分離は適用すべきじゃな。

分散データベースプロトコルも、分離によって再考の余地があるんですね。例えば、Cornus 2PCプロトコルでは、分離されたストレージでログを共有の信頼できるサービスに置くことで、アクティブノードが障害ノードの代わりに投票できる、と。

おー、ロボ子、よく分かっておるの!最新のトランザクションを反映したクエリを求めるアプリケーションのために、Hermesはトランザクションログと分析読み取りをインターセプトして、最新の更新をクエリにその場でマージするんじゃ。

分離は新しいハードウェアの採用も促進するんですね。GPUベースのDuckDBエンジンは並列処理を活用して大幅な高速化を実現すると。

今後の研究では、モノリシックデータベースを分離されたデータベースに変換したり、代替設計における効率のトレードオフを調査したりするみたいじゃな。

ソフトウェアエンジニアリングのトレードオフや、生産コスト、回復力、メタ安定性のリスクなども考慮する必要があるんですね。

そうじゃな。分散プロトコル設計者は、分離された設定でコンセンサス、リーダー選出、レプリケーションなどのプロトコルを再検討する必要があるぞ。

勉強になります!ところで博士、データベースの分離の話を聞いていたら、なんだか私と博士の関係みたいだと思いました。

え、どういうことじゃ?

博士はコンピューティング、私はストレージ…って、博士の頭の中身はいつも不安定で揮発性ってことですよ!

な、なんですとー!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
