データのチェック

最近のプロジェクトは、より困難な独立した設計モジュールと考え、アイデアの実現をまとめるために使用しています。ここでのアイデアについての簡単な紹介です。

 

I.背景と需要

異なるデータベースに同じテーブルの差分データを比較してください。本明細書で同じテーブルであるテーブルの同じデータ構造を指します。そのような存在次の表DB_AにtableAなどのデータベース・サービス、B DB_Bサービスデータベースは、次の形式のTABLEBを有しています。今、データギャップとにtableAのテーブルBを識別するために、このようなシーンがあります。

 

第二に、全体の技術的な分析ポイントはに関連する必要があります

1、それは別のデータベース操作に必要なダイナミックカットDBのサポートを必要とするからです。

図2に示すように、比較的大量のデータを動的マッパーページングをサポートするために必要とされるからです。

図3は、考慮にメモリ消費量とタイムリーなリリースDB接続を取って、キャッシュされたデータファイルを使用するには、関連する知識NIOポイントに精通する必要があります。

例えば10万件のにtableAデータがあり、どのように我々はそれ100,000 TABLEBデータというギャップを特定できますか?データの2つの表は、直接、すべての比較をチェックアウトするデータの量がOOMに直接つながる可能性が大きすぎるため、明確に信頼できるものではありません。おそらく、我々は、考慮に入れ、各ページのチェックにtableAテーブルのデータを取るその後、表Aには、クエリを実行するために、テーブルのBにして、1つの比較ずつ。外に加えて、それは非常に時間のかかる感が望ましい見えます。しかし、ロックテーブルを使用することができないであろう他の事業に影響を及ぼさずに、私たちは長いトランザクションが致命的な問題があることを知って、二つのトランザクションのRR分離レベルのトランザクション制御を開くために必要な、静的データをそれが致命的な問題があり、順番ににtableA TABLEBですデータベースのパフォーマンスへの影響、他の変更は(幸いにも私達はちょうど彼らが自分自身を変更する必要があれば、ここで読んで、だけでなく、独自の変更のロールバックログを生成)、ログをロールバックする権利を持っているので、我々が作る必要があるとき、彼は読んでいたので、データベース接続ができるだけ早く解放されます。だから、ファイルキャッシュデータベースのデータを使用することは良い選択であると思われ、データのファイルベースの操作には大きなスペースを再生することができ、また、非常に柔軟です。

 

第三に、技術的な設計

上記の分析から、我々は技術のコアがデータのファイルストレージとファイル検索を中心に設計されなければならないことを知っています。

  • プログラム:+ランダムランダムなストレージを取得

ランダム読み取りと書き込み、ディスクが読み込まれ、シーケンシャルリードよりも遅いと書き込みの観点から記述します。しかし、大きなファイルのために、より少ないランダム読み取りとは、メモリの消費量に書き込みます。大きなファイルのための一般的な手順は、ランダムアクセスで実装されます。

アイデアの実現:

我々は、事前にtableAで計算すると表にtableA調査からのデータは、我々は、各ラインデータAは、デジタルは、ダイジェスト= MD5(行)、ハッシュPOS = HSH(diget)デジタル要約として、消化生成するであろう場合データの量は、その後、ハッシュアルゴリズムは、すべてのデータにtableAが均等に対応するファイルで配布さが、HSHの競合を避けることができないと信じているために十分優れている場合は、確かにメモリ内のファイルの無駄になります、ファイルが対応しなければならないことを予見できる範囲の上限であるHSHこれは、不要なメモリ消費が生じ、拡大していきます。テーブルには、データラインを書き、そして私たちは、読み取り専用のブロックでファイルを対応するにtableAデータに必要な、そして、関連するファイルがTABLEBすることができます見つけるために、データを解析するためにtableAの方法に従って完全に応答を生成TableBのPOSを決定する方法を書くために一度(POSと同様の生成)。

  • オプションII:インデックスファイル+データファイル 

このプログラムは、データベース検索エンジンに触発されました。最初のインデックスよりも、その後、対応するファイルデータファイルを見つけるためにインデックスを通過します。データファイルを読み込み、シーケンシャルなデータストリームを書くには、ランダムに読み込まれます。

アイデアの実現:

テーブルのすべての規則の最初には、主キーを持っている必要があります。主キーのインデックス= + +オフセットデジタル回線データ要約データファイル。インデックスは、分析バッチをロードするために、インデックスファイルには、次の動作を容易にするため、固定長を満たすためにブロックのメモリを必要とします。長さが固定されているので、我々は8バイトデータサマリーインデックスの+ 16バイト+ 8バイトの主キーは、約千32Mため= 32バイト、1つのラインデータメモリオフセットメモリを占有すると仮定する。2つのファイルが比較1000件のデータがメモリ64Mを食べるようになるが、これは私たちの許容範囲であることを意味だけ64M、です。そして、検出されたデータの後に、私たちが必要とする操作は、最初のインデックスのために生成され、その後、インデックスファイルを作成し、データをデータ・ファイルに書き込まれます。文書が書かれた後、次のステップは、対応するデータファイルにデータを見つけるためにインデックスを通過し、インデックスファイルのインデックスのインデックスよりも区別です。

  • 決定するためのプログラム

ビューのスループットと性能の点から:プログラム書き込みモードとして、ハッシング・アルゴリズムに完全に依存ランダムで、プログラムは、2つのファイルの検索性能よりも良好です。索引付けされたデータのメモリ制御方法として、スキームIIように別のマシンによって、スループット制御可能な動的な構成を採用しました。

ビューのディスク使用量の観点から:オプション1ファイル拡張のためのハッシュアルゴリズム自体考えられる原因は、不要なディスクの消費につながる可能性があるため。オプションIIは、完全な相互主義ディスク・ファイル・サイズとデータサイズのデータ​​テーブルを確保することができます。

達成することがより困難な観点から:二つのプログラムよりも困難スキーム、プログラムが難しく、およびハッシュアルゴリズム設計ファイルブロック検索に具現化。

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/enjoyall/p/11300801.html