複数のデータを同時に操作する場合、そのデータの整合性と一貫性をどのように確保すればよいでしょうか? 回答: 取引は一般的な慣行です。
例えば: ユーザーが注文を行うと、残高テーブル、注文テーブル、取引テーブルを変更する必要があるため、次のような疑似コードが作成されます。
データの整合性と一貫性を確保するためのトランザクション。 取引計画にはどのような潜在的な問題がある可能性がありますか? 回答: インターネットのビジネス特性により、大量のデータと大量の同時実行性では、システム パフォーマンスを向上させるためにデータベースの分割を頻繁に使用する必要があります。データベースが分割されている場合、残高、注文、取引は異なるデータベース、または異なるデータベース インスタンスに分散される可能性があります。この場合、データベースのネイティブ トランザクションを使用してデータの一貫性を確保することはできません。 高度な同時実行性と実装の容易さを備えた分散トランザクションは、業界ではまだ十分に解決されていない難しい問題です。それで、私たちに何ができるでしょうか? A: 補償取引は一般的な慣行です。 補償取引とは何ですか? 回答:補償取引とは、業務側で逆の業務操作を実行する取引です。 例えば: 残高を変更するには、次のトランザクションを実行します。
次に、残高を変更するには、補償トランザクションを次のようにします。
同様に、注文操作の場合、トランザクションは次のようになります: Do_OrderT、新しい注文を追加します。 注文操作の場合、補正トランザクションは Compensate_OrderT であり、注文を削除します。 バランスと順序の一貫性を確保するための疑似コード:
補償取引のデメリットは何ですか?
ナレーション: 上記の例では、バランスと順序の一貫性のみを考慮しているため、2 * 2 = 4 つのブランチがあります。残高 + 注文 + トランザクションの一貫性を考慮すると、2*2*2=8 の if/else 分岐が発生し、複雑さが指数関数的に増加します。 他に一貫性を保つための簡単な実践方法はありますか? 回答: 複数のデータベース インスタンス上の複数のトランザクションの一貫性を確保するには、「コミット後の最適化」を実行します。 単一のデータベースでは、一貫性を確保するために次のような大規模なトランザクションが使用されます。
複数のデータベースに分割された後、大きなトランザクションは次の 3 つの小さなトランザクションになります。
ナレーション: これら 3 つのトランザクションは 3 つのデータベース、またはデータベースの 3 つの異なるインスタンスで発生することを再度思い出してください。 トランザクションは、実行と送信の 2 つのフェーズに分かれています。
したがって、実行プロセス全体のタイムラインは次のようになります。
どの時点で矛盾が生じるのでしょうか? 回答: 最初のトランザクションが正常に送信されてから最後のトランザクションが正常に送信されるまでの間に何らかの問題 (サーバーの再起動、データベースの異常など) が発生した場合、データの不整合が発生する可能性があります。 ナレーション: 上の図に示すように、最後の 202 ミリ秒以内に異常が発生し、不整合が生じています。 コミット後の最適化とは何ですか? 回答: トランザクションの実行と送信の順序が変更された場合、トランザクションは最初に実行され、最後に一緒に送信されます。
コミット後の最適化後、不整合はいつ発生しますか? A: 質問に対する答えは前と同じです。最初のトランザクションが正常に送信されてから最後のトランザクションが正常に送信されるまでの間に何らかの問題 (サーバーの再起動、データベースの異常など) が発生した場合、データの不整合が発生する可能性があります。 ナレーション: 上の図に示すように、最後の 2 ミリ秒以内に異常が発生し、不整合が生じます。 違いや矛盾点は何でしょうか? 答え:
データの一貫性の問題は完全に解決されていませんが、不整合の可能性は大幅に減少しています。 ナレーション: 上記の例では、確率は 100 分の 1 に減少します。 提出後の最適化の欠点は何ですか? A: トランザクションのスループットに影響します。
つまり、データベース接続にかかる時間が長くなり、システム全体のスループットが低下します。 要約する 分散トランザクション、2 つの一般的な方法:
バンドル
最適化対象:
この小さな変更 (コストは極めて低い) では、マルチデータベース分散トランザクションにおけるデータ一貫性の問題を完全に解決することはできませんが、スループットを犠牲にして、データの不整合の可能性を大幅に減らすことができます。 一貫性とスループットのトレードオフについては、ビジネス アーキテクトがトレードオフを慎重に検討する必要もあります。 ナレーション: 前にも言ったように、一般的なビジネス慣行から逸脱した建築設計は、ただの不正行為です。 結論よりもアイデアの方が重要です。誰もが恩恵を受けられることを願っています。 【この記事は51CTOコラムニスト「58 Shen Jian」によるオリジナル記事です。転載については原著者にお問い合わせください。 この著者の他の記事を読むにはここをクリックしてください |
>>: マイクロソフトのエンタープライズ クラウド サービスが中国に集結、クラウド イノベーションに無限の可能性をもたらす
618 中間プロモーション月間中、edgenat はすべての VPS および専用サーバーに対して特別...
記者は4月9日、東軟集団の子会社である東軟雲科技が立ち上げた自動車インターネットクラウドプラットフォ...
中国文化は奥深く、長い歴史を持っています。漢字は深い文化的遺産を持ち、多くの意味を表しています。オン...
2 年前、Wired 誌に非常に目を引く記事が掲載されました。「クラウド コンピューティングの時代は...
Yecao Cloud(〜、アジア太平洋APINCおよび欧州RIPE NCCのメンバー)は、618年...
Krypt傘下のVPSブランドであるionが、サンノゼデータセンターのVPSにcn2 gia回線のア...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン活発な生活を楽しむことは、必ずしも将来楽...
itldc は、12 月 1 日から 12 月 9 日までの 9 日間、Xeon E3 シリーズ C...
支出に対する監視が厳しくなるにつれ、IT リーダーは予算支出を見直し、クラウドの使用、自動化、効率的...
ショートビデオやライブ放送の人気により、新世代のブランドが急速に台頭しています。 2017年から現在...
みなさんこんにちは。私はMuzi Chengzhouです。権威の高いウェブサイトの場合、改善する必要...
2月19日、Baiduウェブマスターコミュニティは、Baidu Green Radish Algor...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています無料アプリ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています前回の記事...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...