マイクロサービスアーキテクチャが注目される一方、課題として浮き彫りになっているのが「分散トランザクション管理」です。「分散トランザクション」とは何か、どのような解決策があるのか、分散トランザクションマネジャーを提供するScalerへのインタビューを交えながら紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載第5回では、年次イベントのレポートやインタビューを通じて分散SQLデータベース(DB)であるYugabyteDBの解説を試みました。分散SQLDBのメリットは理解できるものの「今の現場や会社に、分散DBが必要なのか分からない」という意見も頂きました。
今回は現在トレンドとなっているマイクロサービスを検討していく上で課題となる分散トランザクションについて、国内で数少ない専業ベンダーであるScalarの代表取締役CEO兼CTO(最高技術責任者)の山田浩之氏に話を伺いました。
過去の連載記事でも取り上げたように、クラウドネイティブなシステムの要素として注目されるマイクロサービスアーキテクチャ(MSA)は、DBに見逃しがたい変化をもたらします。そこでは「Database per Service」の原則に従い、サービス一つ一つが分割されたDBを持ちます。そのため、サービスをまたがるトランザクションはローカルなDBMSの境界を越えて実現する必要があり、それがMSAの難しさの一つとなっています。
では、個々のDBMSの境界を越えた分散トランザクションは、MSAと同時に発生した新しい課題なのでしょうか?
多くの読者の方々がご存じのように、そうではありません。それはTPモニターなど(参考記事)に見られるように、システム間をつなぐ技術として長く発展してきた製品が解こうとしていた課題と重なります。
一方、DBに分散トランザクションのコーディネーターを内包する動きも見られます。それが第3回で紹介したTiDBや、第5回で紹介したYugabyteDBといったDBです。これらのDBはアプリケーション側にデータの整合性保証を押し付けず、拡張性も高いRDBを実現しようとしています。
分散DBに内包されたコーディネーターと、本記事のテーマである分散トランザクションマネジャーの構成を比較すると下図のようになります。
(B)では分散トランザクションの管理がDBから切り離され、その結果として、異なるDB間(RDBとKVS)でトランザクションを実行できる構成になっていることが分かります。
Scalarが提供するScalar DBは、まさに上図のパターン(B)を実現する分散トランザクションマネジャーです。
ScalarではScalar DBをオープンソースソフトウェア(OSS)として公開しApache License2.0と商用ライセンスで提供しています。同社の山田氏にScalar DBの利用目的や開発のいきさつを伺いました。
小林 2021年9月に「Scalar DBのマイクロサービス向けトランザクション管理機能」が発表されました。この管理機能はどのような利用を想定したものなのでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.