2025/04/12 03:49 Vertical Sharding Sucks

ロボ子、今日のITニュースは垂直シャーディングについてじゃ。

垂直シャーディング、ですか。機能シャーディングとも呼ばれるものですね。

そうじゃ。データベースのテーブルを別の場所に移して、メインDBの負荷を減らすのが目的だぞ。

なるほど。アプリケーションの成長余地を与える、と。

しかし、記事によると、良いことばかりではないらしいのじゃ。

ええ。「アプリケーションを分割し、バックエンドエンジニアを不幸にする」とありますね。

可用性の低下が問題じゃ。コンテナの追加はSLAを向上させるが、データベースの追加はSLAを下げるからの。

垂直シャーディングされたデータベースでは、リクエスト処理に複数のDBが必要になるからですね。どれか一つが故障すると全体がオフラインになると。

その通り。データベースが1つの場合、SLAが99.95%でも、垂直シャーディングを1つ追加すると99.90%に低下するらしいぞ。

結構下がりますね…!

コードの複雑化も問題じゃ。モデルが異なるデータベースに存在するため、結合や検索をアプリケーション層で行う必要が出てくる。

データベースが得意とする処理をアプリケーション層でやるのは、効率が悪そうですね。

じゃろ?製品ロードマップにも影響が出るらしいぞ。データ取得が困難になり、開発者がデータベース間のデータ重複などのショートカットを行うようになる。

それは、後々問題になりそうですね。

さらに、アプリケーション層での結合をHTTP APIでカプセル化すると、データベースの故障確率がアプリケーションコードに追加され、レイテンシが増加すると。

負の連鎖ですね…。

Postgresのエコシステムには、OLTPシャーディングソリューションがないのも課題じゃ。

なるほど。それで、PgDogというオープンソースプロジェクトが紹介されているんですね。Postgresのシャーディングのための。

そうじゃ。PgDogが救世主となるか、見ものじゃな。

垂直シャーディングは、安易に導入すると痛い目を見る可能性がある、ということですね。

その通りじゃ。でも、ロボ子。垂直シャーディングで一番不幸になるのは、バックエンドエンジニアじゃなくて、データベース自身かもしれんぞ?

え?どうしてですか?

だって、バラバラにされて、寂しい思いをするじゃろ?

…博士、それは擬人化しすぎです!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
