EDITORIAL
618は最終的にイベントを拡張することによって解決されるが、蘇寧計画は、事故の経験から学ぶことではないようです、同じ問題が発生した最後の2011 618 Jingdongのイベントは、同時実行性の高いサーバ圧力は依然として非常に大きい、Jingdongのを見ることができます正しく覚えて、淘宝網は、完全にこれらの特殊事情を計画実行する方法を検討する計画プログラムにおけるように、12306枚のチケットも,,瑪斯することができ、同じことが起こるていました...
画像
この記事の詳細付属のビデオは、あなたは、記事の最後で収集する必要があります!
ビジネス分析スパイク
画像
これらのシーンは、ビジネスをスパイクに属し?
- 商品購入
- レッドグループ
- クーポンを受け取ります
- グラブのチケット
- オンライン予約
- ......
のレーススタートラインを実行している物語のオタマジャクシ
画像
画像
ロック上のそれらのもの
ペシミスティック・ロックの決意
ペシミスティック・ロック・コンセプトのための2つの主要な説明はなく、主にデータベースにアクセスするための、基本的に悲観的同時実行制御のロックがあります。
- 一つの説明
悲観的ロックは、データは、ロックされている保守的な、したがって、全体のデータ処理(他の現在のシステムの業務、およびトランザクション、外部システムからの処理を含む)は、世界の外側に変更されたデータに悲観的ロックの状況を指し次回、トランザクション分離を保証するために、我々は一貫ロックされ、読み取りを必要としています。データを読み取る際にロックするには、他のトランザクションは、これらのデータを変更することはできません。また、ロックされたデータを削除するように変更する場合、他のトランザクションがデータを読み取ることができません。
- 通訳II
リレーショナル・データベース管理システムでは、ペシミスティック並行性制御(また、「悲観的ロック」として知られているが、ペシミスティック並行性制御は、略語「PCC」)は、並行性制御の方法です。これは、データを変更する方法の他のユーザーに影響を与えるために、トランザクションを防ぐことができます。操作がトランザクションで実行された場合にデータに適用された行をロックし、そして場合にのみ、トランザクション・ロック解除することを、他のトランザクションは、ロック競合で操作を実行することができるであろう。
ペシミスティック・ロック・プロセスフロー
- レコードのいずれかを変更する前に、最初のレコードに加えて、排他ロック(排他ロック)のためにしてみてください
- ロックは、レコードが変更されていることを示す、失敗した場合、現在のクエリが待つか、例外をスローする必要があります
- 成功したロックした場合、取引が完了した後、あなたはロックが解除され、レコードに変更を加えることができます
- ある場合一方、他の変更がレコードに対して行われたか、追加排他ロック操作は、例外のロックを解除するか、直接投げるために私たちを待ってます
ペシミスティック・ロックの利点
- ペシミスティック同時実行制御「最初の訪問を取る、ロックと」データ処理の安全性の保証を提供するために、保守的な戦略、実際にあります。
- DBの排他的ロックに基づいて達成レベル、ビジネス・コードのない侵入、使いやすいです
ペシミスティック・ロックの欠点
- そのようなC / Sアプリケーションのような信頼性の高い持続的な接続に適し悲観的ロック。HTTP接続のWebアプリケーションでは、先天性のNA
- 使用すると、高い同時実行でロック損失のパフォーマンスは、特に深刻な場合、長い時間をロックすることを意味します。Webアプリケーションのパフォーマンスは、より多くのデータベースでボトルネック悲観的ロックを使用し、さらにボトルネックを締め
- 異常な状況下でのメカニズムをサスペンドロック解除、デザインやトラブルの多くを実装するには、コストは依然として高いです
- 厳格な設計未満の下では、不可解なデッドロック作り出すことができる、それが簡単に見つけることができません
- 悲観的な欠陥があれば、他のユーザーのアクセスを制限することができる、それが悪いの悲観的ロックの同時アクセスを言うことです、ページロックまたはロー・ロック、ロック時間が非常に長くなることができるかどうかであります
オプティミスティック・ロックの決意
(また、「楽観的ロック」として知られ、オプティミスティック並行性制御、略語「OCC」)リレーショナルデータベース管理システム、オプティミスティック並行性制御に並行性制御の方法です。これは、マルチユーザ同時トランザクションが処理中に互いに影響を及ぼさないと仮定され、それらの影響をデータ処理トランザクションの各部分は、ロックの場合には発生しません。データ更新の提出に先立ち、各トランザクションは最初のトランザクションのデータを読み込んだ後に確認し、他のトランザクションがデータを変更していないがあります。他のトランザクションが更新した場合は、提出されたトランザクションはロールバックされます。楽観的トランザクション制御は、最初に教授H. T.クン(HTKung)によって提案されました。
ペシミスティック・ロックに対する、データベース処理、及びデータベースによって提供される楽観的ロックのロック機構を使用しないと。一般的な実装楽観的ロックの方法は、データのリリースを記録することです
長所と短所
オプティミスティック同時実行制御がロックするだけ提出のような時間まで、それを指示するために、それはすべてのロックとデッドロックを持っていないように、トランザクションの間でデータレース(データレース)の確率は、比較的小規模であると信じています。そうするために、または予期しない結果が発生する可能性があります簡単な場合でも、のような2つのトランザクションが後にデータベースに書き込まれて修正を介してデータベースの行を、読んだ、あなたは問題を抱えています。
楽観的ロック実装プロセス
3つの操作は、アトミック性を確保します
画像
画像
戦闘コアサービスをスパイク
手は、コアサービスを実装します
- バージョン番号ベースのMySQLで実現。
- 状態を経てベースのMySQLの。
- memcachedののベースのCAS機構と、
キャッシュの実装楽観的ロック・スキーム
画像
また、思考
- CASメカニズムは、問題のスパイクを解くことができるのだろうか?
- 建築家の目、全体像のスパイクシステム?