blog

ShardingSphere 4.x 分散トランザクション・サポート機能

クロス・ライブラリでないトランザクションの完全サポート (例: テーブルの分割のみ、ライブラリは分割するが結果は単一ライブラリでルーティング) 論理的例外によるクロスデータベース・トランザクションを完...

May 19, 2020 · 2 min. read

概要

このサブセクションでは、ShardingSphere 分散トランザクションの主な機能について説明します。

  • ローカル・トランザクション
  • 2段階のXAトランザクション
  • Seata柔軟なトランザクション

ローカル・トランザクション

  • 機能
  • サポート

機能

  • クロス・ライブラリでないトランザクションの完全サポート。例えば、テーブルの分割のみや、ライブラリは分割するが結果は単一のライブラリでルーティングする場合など。
  • 論理例外によるクロス・ライブラリ・トランザクションは完全にサポートされています。例えば、同じトランザクションで2つのライブラリをまたいで更新します。更新が完了すると、NULLポインタがスローされ、両方のライブラリの内容をロールバックできます。
  • ネットワークやハードウェアの異常によって発生するクロス・ライブラリ・トランザクションはサポートされていません。たとえば、同じトランザクションで、2つのライブラリにまたがって更新が行われ、更新が完了した後にコミットされず、1つ目のライブラリがダウンし、2つ目のライブラリのデータのみがコミットされたとします。

サポート

  • Sharding-JDBCとSharding-Proxyは、ネイティブにローカルトランザクションをサポートします。

二段階トランザクション - XA

  • 機能
  • 未サポート

機能

  • データシャーディング後のクロスデータベースXAトランザクションのサポート
  • 2段階コミットにより、操作の原子性と強力なデータ一貫性を確保
  • コミット/ロールバック中のトランザクションは、サービスのダウンタイムや再起動後に自動的にリカバリされます。
  • SPIメカニズムが主流のXAトランザクションマネージャと統合、デフォルトでAtomikos、オプションでNarayanaとBitronixが利用可能
  • XAおよび非XAコネクションプーリングの両方をサポート
  • spring-bootとnamespaceへのアクセスの提供。

未サポート

  • サービス停止後、他のマシンのコミット/ロールバックからデータを復元

柔軟なトランザクション - SAGA

  • 機能
  • 未サポート
  • サポート

機能

  • クロス・ライブラリ・トランザクションの完全サポート
  • 失敗したSQLの再試行と最大努力配信のサポート
  • 逆引きSQL、更新スナップショットの自動生成、自動補正のサポート
  • スナップショットとトランザクションログは、デフォルトではリレーショナルデータベースを使用して永続化されます。

未サポート

  • リソースの分離は現在サポートされていません。
  • サービス停止後のコミットやロールバックの自動復旧はサポートしていません。

サポート

注記

  • 逆引きSQLでは主キーが必要なので、テーブル構造で主キーを定義してください。
  • 主キーを自動的に生成する必要がある場合は、ShardingSphereの分散主キーを使用できます。

フレキシビリティ・サービス - SEATA

  • 機能
  • 依存関係
  • 最適化すべきオプション

機能

  • ライブラリ間の分散トランザクションの完全サポート
  • RC分離レベルのサポート
  • 元に戻すスナップショットによるトランザクションのロールバック
  • サービス停止後のコミット済みトランザクションの自動回復をサポートします。

依存関係

  • ブランチ・トランザクションのオーケストレーションには、Seata-serverの追加サービスを導入する必要があります。

最適化すべきオプション

  • ShardingSphereとSeataはSQLの重複解析を行います。
Read next

スタジアムもブロックチェーンを利用できる

また、金融・財政分野では、ブロックチェーン技術の応用は、計算コストの削減や資産の信頼性の向上に寄与します。電子送り状を例にとると、宝安体育センターの駐車場の管理・運営を担当する盛世冀会社の郭敬利取締役会長は、次のように述べています。

May 18, 2020 · 2 min read

4-Vueのライフサイクル

May 16, 2020 · 2 min read

複数の抽選カウントダウン

May 16, 2020 · 1 min read

WebGLの探求

May 14, 2020 · 3 min read