ローカルトランザクションとは、サーバーをまたがる分散トランザクションに対して言及したものであり、特にトランザクション操作対象のテーブルのログストリームのリーダーがすべて同一のサーバー上にあり、かつセッションが確立されたサーバーと同一であるトランザクションを指します。
操作するテーブルの数に基づき、ローカルトランザクションはローカル単一ログストリームトランザクションとローカル複数ログストリームトランザクションにさらに細分化されます。
単一ログストリームトランザクション
ローカル単一ログストリームトランザクションは、以下の2つの条件を満たす必要があります:
トランザクションに含まれる操作は、合計で1つのログストリームに関連します。
ログストリームのリーダーは、セッションが作成されたサーバーと同じです。
ローカル単一ログストリームトランザクションは最も単純なモデルであり、トランザクションのコミットには非常に高度な最適化が施されています。
シングルマシン複数ログストリームトランザクション
ローカル単一ログストリームトランザクションと同様に、ローカル複数ログストリームトランザクションも2つの条件を満たす必要があります:
トランザクションに関連するテーブルが関与する複数のログストリームのリーダーが同一のサーバー上にあります。
ログストリームのリーダーは、セッションが作成されたサーバーと同じです。
OceanBaseデータベースのログストリーム設計により、シングルマシン複数ログストリームトランザクションは本質的に分散トランザクションでもあります。シングルマシンのパフォーマンスを向上させるため、OceanBaseデータベースはトランザクション内の参加者レプリカの分布が同一であるトランザクションに対して多くの最適化を施しており、従来の2段階コミットに比べて、シングルマシントランザクションのコミットパフォーマンスを大幅に向上させています。