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