マイクロサービスにおけるトランザクション処理パターンの切り替えによる整合性担保の時間削減

マイクロサービスアーキテクチャでは, 主なトランザクション処理としてTCC パターンとSaga パターンの2 つがある. 2 つにはそれぞれ問題点がある. TCC パターンでは, 正常時にデータを取得できるまでの速度が遅い. Saga パターンでは, ロールバック発生時にロールバック前のデータを取得できるまでの時間が遅い. 本稿では, ロールバックを必要とする処理が頻繁には起こらないと仮定して基本はTCC パターンよりも約20 %速度が早いSaga パターンを使用する. 本稿で提案するakira は, Dawid-Skene アルゴリズムをもとにした信頼度付与アルゴリズムを使用する. このアルゴリズムをもとにトランザクションが失敗するか成功することを予測する. その予測をもとにTCC パターンとSaga パターンを切り替える.akira を使用することでどちらか一方のパターンを使用するよりも早く整合性の担保を行える. 評価として, ロールバック処理が発生時に正しいデータを取得できるまでの時間と通常時にデータを取得できるまでの時間をakira とTCC パターン, Saga パターンで比較する. 結果として, すべての処理が完了するまでの時間がSaga パターンより約26 %, TCC パターンにおいて約20 %削減された. ...