データベースのマスター・スレーブ複製、サブライブラリーのサブテーブル

mysqlのマスターコピーの原理と問題を解決します

https://blog.csdn.net/darkangel1228/article/details/80003967

mysqlのマスター・スレーブレプリケーションの原則

 

プライマリ・データベースがbiglog書き込みログを変更します、マスターは、スレッドが合格O / IをBINLOGために使用されるライブラリーから、ログ・ダンプ・スレッドライブラリを生成します。

図書館は二つのスレッド、1つのI / Oスレッド、スレッドのSQLから生成されます。

I / Oのバイナリログのプライマリ・データベースを要求するスレッド、得られたログバイナリログリレーログ(リレーログ)ファイルを書き込みます。

SQLスレッドは、リレーログログファイルを読み取り、そして一貫したマスタ・スレーブ動作を実現する具体的な動作に解析され、一貫性の最終的なデータ。

シリアルデータの主なライブラリーからのデータベースの同期手順は、それがライブラリからシリアルで行われ、メイン並列ライブラリ操作で言うことです。SQLの実装は、ライブラリのメインライブラリデータは確かに遅くなるだろうから、遅延があり、並行性の高いシナリオの下で、メインのライブラリだけでなく、ライブラリーのシリアルからログのコピーから備えているのでこれは非常に重要なポイントは、あります。

もう一つの問題は、プライマリ・データベースが突然ダウンした場合ということです、そしてライブラリに同期していないだけでデータは、いくつかのデータがライブラリからではないかもしれないが、一部のデータが失われる可能性があります。

 本明細書で一般的にデータ損失の問題メインライブラリを解決するために、半同期、遅延の問題を解決するために、並列コピー、マスター・スレーブの同期を使用します

並列コピー、複数のスレッドの並列リードリレーログログ異なるライブラリーからのオープンライブラリを参照し、そして、ライブラリレベルの並列である、異なるライブラリに平行でログを再生します。

セミ同期(半同期コピー)一次ライブラリーは、ログを書いた後、ビンログ言及した後、今度はすぐに、その後、ログ自体のローカルリレーログを書くために、ライブラリから、ライブラリーからのデータを同期することを余儀なくされるだろうメインライブラリにACKを返し、メインライブラリは、ACK書き込み操作が完了した後に思うだろう、ライブラリから少なくとも1つを受け取ります

 

mysqlのマスター・スレーブ同期、一般的なアドバイスは、保証書チェックの種類のためにすぐに必要に続くことを、mysqlのマスタースレーブの同期で、一般的なタイムクリティカルなデータはそれほど高くない時間を読み書きよりもはるかに多くを読むためにあります強制読んメインライブラリーを介してシーン。

一般的に、より深刻な場合は、マスターからの遅延

 図1に示すように、サブライブラリーは、一つのマスターライブラリは無視マスタから、メインライブラリ500 / sのそれぞれに、4つの主要なライブラリーには、この時間遅延を同時書き込みを分割しました

2は、オープン並列コピーMySQLサポート、複数の並列ライブラリのコピー、ライブラリが特に高い同時書き込みならば、単一のライブラリをコピーするには、並列または無意味2000 /秒に達し、同時書き込みます。28法律は、非常に頻繁に言って、いくつかの注文表は、2000 /秒、他のテーブルの数十は、10 /秒で書かれていることです。

私たちが実際に短期的には、コードを書き換えるために学生を取得し、その後、更新に直接データを挿入することであるとき3、コードを書き換える、学生はコードを書く、照会しませんが、注意してください

図4は、確かにそれが挿入されなければならない存在する場合には、直ちにに問い合わせするように要求し、我々はすぐにメインのデータベースクエリに直接接続し、何かを有効にする必要があります。読みや分離を書くことの意味での結果が失われているので、あなたが行う、この方法をお勧めしません。

 


 

MySQLのクラスタ

 

 


 

サブライブラリーサブテーブルの問題と対処方法の後

 業務

分散トランザクション

参考:  約分散トランザクション、2相相はベストエフォート総務部の調査1PCモードと補償メカニズム、コミット、コミット利点システムの下で配布2フェーズ・コミット、「アトミック」クロスデータベース操作の最大保証に基づいて、トランザクションの最も厳しい実装。シンプルで、小さなワークロード。難しさとワークロード基本的に無視できないで分散トランザクションのプロジェクトを導入するようにするので、ほとんどのアプリケーションサーバだけでなく、いくつかの独立した分散トランザクションコーディネータは、ワークパッケージの多くを行っ。欠点のシステム「水平」リトラクタブルライバル。あなたは、共有アクセスするトランザクションが発生する目的でトランザクションの実行時間を延長する押しのポイントの後にトランザクションをコミットする時間を調整し、最大化するために、複数のノード間のトランザクションを提出する際にトランザクションを分散2フェーズ・コミットをもとにする必要があります分散システムでデータベース・ノードの増加に伴って増加したリソースは、この傾向は、ますます厳しくなっデータベースレベルでシステムを作るだろう、競合とデッドロックの可能性、「ヨーク」の水平スケーリングは、シャーディングの多くを使用していません取引の主な理由。ベストエフォート1PCトランザクションベースのモデル

春・データのNeo4jのリファレンス実装。ベストエフォート1PCモードと同様に、比較的単純な実装のパフォーマンス上の利点を考えると、それはほとんどのシャーディングフレームワークとプロジェクトの採択であります

トランザクション補償(等価パワー)

高いパフォーマンスを必要としますが、高いシステムの整合性を必要としない人のために、一貫性は、多くの場合、あなたがするトランザクション補償機構を作る許可時間内に、最終的な一貫性を達することができる限り、リアルタイムシステムを要求されていません実行可能な選択肢。

トランザクション補償機構は、第1に「長い取引」に対処する上で提案されているが、分散システムは、一貫性を確保するためにも良い基準値を持っていました。一般的に言って、別のエラーが実行モードでのトランザクションのロールバックは、トランザクションの補償は事後チェックと改善策された直後に発生し、唯一、それを可能にするために、時間の一貫期間内に、最終的な結果を得ることが期待されます。実装と補償システム事業の密接に関連する問題、および標準的なアプローチ。いくつかの一般的な実装は、次のとおり、データ照合チェック、比較のためにログに基づいて、定期的に標準的なデータ・ソースと同期化、等

 

https://baijiahao.baidu.com/s?id=1622441635115622194&wfr=spider&for=pc

おすすめ

転載: www.cnblogs.com/dingpeng9055/p/11303561.html