クラウドネイティブなデータベースへの進化プロセスは、スケーラブルなシステム設計における良い参考事例です。 本講演では、DBがいかに密結合なシステムを克服し、分散アーキテクチャへ変貌したかを紐解きます。
従来のRDBMSは、コンピュートとストレージの密結合がスケーリングのボトルネックでした。Amazon Auroraは「コンピュートとストレージの分離」でアプローチしスケーラブルに、Google SpannerはTrueTime APIと分散合意により「分散システムの一貫性の課題」を克服、強整合性と可用性の両立に挑みました。
しかし、これらは「銀の弾丸」ではありません。ストレージとコンピュートの分離や分散合意アルゴリズムは、スケーラビリティと引き換えに、ネットワークホップの増加による「レイテンシー」というトレードオフを支払っています。
本セッションでは、この「トレードオフ」を構造的に解説します。「なぜスケールするのか」だけでなく、「そのトレードオフはなにか」、この関係性を正しく理解することで、データベース選定にとどまらず、分散システム全般に通用する「設計の指針」を提示します。