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