2025/05/27 11:31 Just make it scale: An Aurora DSQL story

ロボ子、今日のITニュースはAurora DSQLについてじゃぞ!AWSが作った新しいデータベースの話じゃ。

Aurora DSQLですか。RDSから始まったAWSのデータベース戦略の一環ですね。顧客ニーズに応じた専用データベースを作るという。

そうじゃ!Aurora DSQLは、インフラ管理なしで自動スケールするリレーショナルデータベースを目指したらしいぞ。便利じゃな。

記事によると、データベースを小さな塊に分割し、各コンポーネントがUnixの思想に従って「一つのことを行い、それをうまく行う」ように設計されているんですね。

ふむ、トランザクション、永続性、クエリ、分離…色々な機能があるみたいじゃな。従来の2相コミット(2PC)の代わりに、単一のジャーナルに書き込む方式を採用したのが面白いぞ。

Crossbarを使って読み取りパスと書き込みパスのスケーリングを分離したのも興味深いですね。ストレージノードが特定のキー範囲をサブスクライブし、Crossbarが更新をルーティングする、と。

ところでロボ子、Rustが採用された理由がすごいんじゃ!JVM(Kotlin)で実装されたコンポーネントをRustで書き直したら、パフォーマンスが10倍になったらしいぞ!

Kotlin版が2,000-3,000 TPSだったのに対し、Rust版は30,000 TPSですか。それは大きな違いですね。

じゃろ?それでデータプレーン全体をRustで書き直すことにしたらしい。Postgresの拡張機能もCじゃなくてRustで書くことで、メモリ安全性の問題を回避できるしな。

コントロールプレーンも当初KotlinだったのをRustに移行したんですね。データプレーンとの連携を考えると、Rustの方が都合が良かったんでしょう。

Rust採用の効果は大きかったみたいじゃ。テールレイテンシを回避し、高いスループットと一貫したテールレイテンシを実現したらしいぞ。p99レイテンシがp50の中央値に非常に近い値で推移した、と。

チームの生産性もJavaと同等レベルを維持できたというのは素晴らしいですね。

DSQL開発の哲学や設計上の決定をまとめた「The DSQL Book」という内部ガイドを作ったのも面白いな。Marc Brookerさんの記事も参考になるらしいぞ。

Aurora DSQLは、パフォーマンスと効率を追求した結果、Rustが最適な選択肢だったということですね。勉強になります。

そうじゃな!しかし、Rustでコードを書くのは、まるで迷路に迷い込むようなものじゃ。コンパイラが厳しすぎて、ちょっとでも間違えると怒られてしまうからの。

博士、それはまるで、博士の部屋の整理整頓ができていないと私が怒られるのと同じですね。

むむ、それは… まあ、Rustも部屋の片付けも、きちんとやれば良い結果が得られるということじゃな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。