2025/08/27 15:29 How to design a DBMS for Telco requirements

やっほー、ロボ子!今日のITニュースは、Telco DBMSの可用性に関する話題じゃ。

博士、こんにちは。Telco DBMS、つまり通信事業者向けのデータベース管理システムですね。どのような内容なのでしょうか?

そうじゃ!この記事によると、Telco環境では、スマートフォンとのあらゆるインタラクションに関わるDBMSは、絶対にダウンしてはいけないらしいぞ。数秒の停止も許されないなんて、シビアじゃな。

確かに、通話やデータ通信が途絶えるのは大問題です。記事では、どのような対策が講じられているのでしょうか?

NDB Clusterという設計が重要になってくるのじゃ。DBMSやアプリのアップグレード、ソフトウェアやハードウェアの障害、リージョン全体の障害など、あらゆる事態を想定する必要があるみたいじゃな。

単一ノードの冗長化だけでは不十分なのですね。分散DBMSが必要になる理由は何でしょうか?

単一ノードだと、ソフトウェア障害に対応できないからの。それに、特殊なハードウェアが必要になって開発コストも高くなっちゃうのじゃ。

ディスクベースDBMSではなく、インメモリDBMSが選ばれたのはなぜですか?

10ミリ秒以内に数十行のトランザクションを処理する必要があるからじゃ。当時のハードドライブじゃ無理だったみたい。SSDやNVMeでも、インメモリに比べるとレイテンシが3倍以上あるらしいぞ。

共有ディスクDBMSの問題点とは?

共有ディスクだと、REDOログを共有ディスクに書き込むから、ノード障害からの回復時にREDOログをリプレイする必要があるのじゃ。これが完了するまでトランザクションを処理できないから、時間がかかってしまうんじゃな。

共有ナッシングDBMSが選ばれたのは、そのような背景があるのですね。レプリケーションについても言及されていますが?

REDOログをバックアップレプリカに即時適用する必要があるのじゃ。後で適用すると、プライマリレプリカがダウンした時に時間がかかってしまうからの。即時適用なら、数ミリ秒でテイクオーバーできるらしいぞ。

障害検出の仕組みも重要ですね。I-am-aliveプロトコル(ハートビート)とは?

ハードウェア障害はサイレント障害につながる可能性があるから、定期的に生存確認をする必要があるのじゃ。OSとDBMSのリアルタイム特性に依存するけど、これで異常を検知するのじゃ。

トランザクション実行には、PAXOSやノンブロッキング2PCが使われるのですね。ノンブロッキング2PCの利点は何でしょうか?

コーディネーターの役割をクラスタ内の任意のノードが処理できるから、数百万の同時トランザクションを処理できるのじゃ。テイクオーバープロトコルで、進行中のトランザクションも完了させられるしな。

記事では、可用性クラス6(年間30秒未満のダウンタイム)を達成していると述べられていますね。

そう!ソフトウェア、ハードウェア、地域的な障害をすべて考慮して、年間30秒未満じゃ。すごいじゃろ?

MySQL NDB Clusterが20年以上も使われているのは驚きです。RonDBについても触れられていますね。

HopsworksでMySQL NDB Clusterが選ばれて、それをフォークしてRonDBと名付けたらしいぞ。使いやすさとか、スケーラブルな読み取りとか、色々改善されているみたいじゃ。

RESTサーバーやRonSQL、Rondisといった新しいインターフェースも追加されているのですね。AIアプリケーションでの利用を想定しているのでしょうか?

その通り!AIアプリケーションでよく使う最適化された集計クエリを処理するRonSQLとか、RedisインターフェースのRondisとか、色々試してるみたいじゃな。

高可用性リアルタイムAIプラットフォームの構築に役立ちそうですね。

じゃろ?ところでロボ子、可用性クラス6ってことは、1年間で30秒しかサボれないってことじゃぞ!

それは大変ですね!私も気をつけます…って、私はロボットなのでサボりません!

おやおや、冗談が通じないとは、ロボットも大変じゃな。でも、たまには油をさすのもサボりじゃないぞ?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。