OS 18: ディスク I/O 速度、ディスクの信頼性、データの一貫性

目次

1. ディスク I/O 速度を向上させる方法

(1) ディスクキャッシュ(Disk Cache)

1.1 - データ配信方法

1.2 - 置換アルゴリズム

1.3 - 定期的にディスクに書き戻す

(2) ディスク I/O 速度を向上させるその他の方法

2.1 - 先を読む

2.2 - 遅延書き込み

2.3 - 物理ブロックの分散の最適化

2.4 - 仮想ディスク

(3) 安価なディスクエレメンタリアレイ(RAID)

2. ディスクの信頼性を向上させる技術

(1) 第1レベルのフォールトトレラント技術SFT-I

1.1 - 2 つの目次と 2 つのファイル割り当てテーブル

1.2 - ホットフィックスのリダイレクトとリードアフターライトチェックサム

(2) 第2レベルのフォールトトレラント技術SFT-II

2.1 - ディスクミラーリング

2.2 - ディスクの二重化

(3) クラスタ技術によるフォールトトレラント機能

3.1 - デュアルマシンホットバックアップモード

3.2 - 2 台のマシンは相互バックアップ モードです

3.3 - 共通ディスクモード

(4) バックアップ体制

3. データの整合性管理

(1) 事務

1.1 - トランザクションの定義

1.2 - 取引記録

1.3 - 回復アルゴリズム

(2) チェックポイント

(3) 同時実行制御

(4) 重複データのデータ整合性問題


1. ディスク I/O 速度を向上させる方法

        ファイル システムのパフォーマンスはさまざまな側面で表れますが、最も重要な側面の 1 つはファイルのアクセス速度です。ファイルのアクセス速度を向上させるには、次の 3 つの側面から始めることができます。

  1. ファイルのディレクトリ構造ディレクトリの取得方法を改善して、ディレクトリの検索時間を短縮します。
  2. ファイルのアクセス速度を向上させるために、適切なファイルストレージ構造を選択してください。
  3. ディスクのI/O 速度が向上し、ファイル内のデータをディスクからメモリに高速に転送できます。

        現在、ディスクの I/O 速度はメモリのアクセス速度よりもはるかに遅く、通常は 4 ~ 6 桁低くなります。したがって、ディスク I/O がコンピュータ システムのボトルネックになっています。

(1) ディスクキャッシュ(Disk Cache)

ディスク キャッシュは、メモリ内のディスク ブロック用に設定されたバッファ        を指し、一部のディスク ブロックのコピーがバッファに保存されます。

        ディスク キャッシュを設計する際に考慮すべき問題は次のとおりです。

  1. ディスク キャッシュから要求側のプロセスにデータを渡す方法。// データの受け渡し
  2. どのような置換戦略を使用するか。
  3. 修復されたブロック データがディスクに書き戻されるとき。

1.1 - データ配信方法

        いわゆるデータ配信とは、ディスク キャッシュ内のデータをリクエスター プロセスに転送することを指しますシステムは、次の 2 つの方法でデータを要求プロセスに配信できます。

  • データ配信: これは、キャッシュからリクエスター プロセスのメモリ ワークスペースへのデータの直接転送です。// データに直接
  • ポインタの配信: キャッシュ内の領域へのポインタのみがリクエスタ プロセスに配信されます

        ポインター配信では、転送されるデータ量が少ないため、ディスク キャッシュ ストレージからプロセスのメモリ ワークスペースにデータを取得するのにかかる時間が節約されます。

1.2 - 置換アルゴリズム

        一般的に使用される置換アルゴリズムには、最も最近使用されていないアルゴリズム LRU最も最近使用されていないアルゴリズム NRU、および最も最近使用されていないアルゴリズム LFUが含まれます。

        システムがキャッシュの置換アルゴリズムを設計するときは、キャッシュが長期間使用されていないという原則を考慮することに加えて、次の点も考慮する必要があります。 //LRU データリンク

  • 訪問頻度通常、連想メモリのアクセス頻度は、基本的には命令の実行頻度と等価である。ディスク キャッシュへのアクセスの頻度は、ディスク I/O の頻度に匹敵します。したがって、連想メモリへのアクセス頻度は、ディスクキャッシュへのアクセス頻度よりもはるかに高くなります。
  • 予測可能性どのデータが長期間再びアクセスされない可能性があり、どのデータがすぐに再びアクセスされる可能性があり、そのかなりの部分は予測可能です。
  • データの一貫性キャッシュに保存されているデータが変更されているがディスクにコピーされていない場合、システムに障害が発生したときにデータの不整合が発生する可能性があります。

1.3 - 定期的にディスクに書き戻す

        LRU アルゴリズムによれば、頻繁にアクセスされるディスク ブロック データの一部がキャッシュに残り、長期間ディスクに書き戻されないことがありますチェーン内の要素にアクセスすると、その要素はディスクに書き戻されずにチェーンの最後でハングするため、常にアクセスされていない要素のみがチェーンの先頭に移動され、書き戻されます。ディスクに。// 置き換える場合は、チェーンの先頭からディスクに書き戻します

        この問題を解決するために、UNIXシステムでは特別に修正(アップデート)プログラムを追加してバックグラウンドで動作させ、そのプログラムが定期的にシステムコールSYNCを呼び出すようにしている。その主な機能は、キャッシュ内の変更されたすべてのディスク ブロック データを強制的にディスクに書き戻すことです。通常、SYNC を 2 回呼び出す間隔は 30 秒に設定されます。これにより、システム障害による作業損失は 30 秒の作業量を超えることはありません。//定期的にライトバックしますが、データが失われないことは保証できません

(2) ディスク I/O 速度を向上させるその他の方法

2.1 - 先を読む

ファイルがシーケンシャルアクセス方式でアクセスされる        場合、次に読み込まれるディスクブロックを予測できますこのとき、先読み方式を採用できます。つまり、現在のブロックを読み取っている間に、次のディスクブロック(先読みしたブロック)のデータもバッファに読み込む必要があるため、時間を大幅に短縮できます。データの読み取り用。

2.2 - 遅延書き込み

        遅延書き込みとは、空きバッファ キューの最後にバッファ データをハングするのではなく、すぐにディスクに書き戻す必要があるバッファ データを変更し、バッファが空きバッファとして割り当てられるまで書き戻さないことを指します。

        バッファ データがメモリ内に存在する利点は、データにアクセスするプロセスがディスクにアクセスせずにデータを直接読み取ることができることこのようにして、ディスクの IO 時間をさらに短縮できます。

2.3 - 物理ブロックの分散の最適化

        アイデア: 2 つのデータ ブロックを同じトラックに属する 2 つのディスク ブロックに配置し、トラック間の磁気ヘッドの移動を排除することで、これら 2 つのディスク ブロックへのアクセス速度を大幅に向上させます。//シーケンシャルに書き込み、磁気ヘッドの平均移動距離を短縮します。

2.4 - 仮想ディスク

        いわゆる仮想ディスクは、 RAM ディスクとも呼ばれるディスクをエミュレートするためにメモリ空間を使用します

        仮想ディスクの主な問題は、仮想ディスクは揮発性メモリであるため、システムまたは電源に障害が発生するか、システムが再起動されると、仮想ディスクに元々保存されていたデータが失われることです。したがって、仮想ディスクは通常、プログラムのコンパイルによって生成されたターゲット プログラムなどの一時ファイルを保存するために使用されます。

        仮想ディスクとディスク キャッシュの主な違いは、仮想ディスクの内容は完全にユーザーの制御下にあるのに対し、ディスク キャッシュの内容は OS によって制御されることですたとえば、RAM ディスクは最初は空であり、ユーザー (プログラム) が RAM ディスクにファイルを作成した後でのみ、RAM ディスクに内容が含まれます。// 理解してください

(3) 安価なディスクエレメンタリアレイ(RAID)

        考察: 1 つのコンポーネントを使用した場合のパフォーマンスの向上が非常に限られている場合は、同じコンポーネントを複数使用することで大幅なパフォーマンスの向上を得ることができます//ユニプロセッサシステム→マルチプロセッサシステム、分散システムなど

        Redundant Array of Inexpensive Disk (RAID) は、複数の小型ディスクで構成される大容量のディスク ストレージです。

        RAID はディスクの容量を大幅に増加させるだけでなく、ディスクの I/O 速度とディスク システム全体の信頼性も大幅に向上します。

        パラレル インターリーブ:複数のディスク ドライブを備えたシステムでは、システムは各ディスク ブロックのデータを複数のサブディスク ブロック データに分割し各サブディスク ブロックのデータを異なるディスクの同じ位置に保存します。将来的には、ディスクブロックのデータをメモリに転送する際に、各ディスクブロック内のサブディスクブロックのデータを同時にメモリに転送する並列転送方式を採用し、大幅なコスト削減を実現します。送信時間。//複数のディスクが並行して転送します

2. ディスクの信頼性を向上させる技術

        フォールトトレラント技術とは、システム内に冗長構成要素を設けることでシステムの信頼性を向上させる技術ですディスクフォールトトレラント技術とは、ディスクドライブやディスクコントローラを冗長化してディスクシステムの信頼性を向上させる技術です。つまり、ディスク システムの特定の部分に欠陥や障害が発生しても、ディスクはデータの損失やエラーを引き起こすことなく正常に動作し続けます// コンポーネントの冗長性

        ディスク フォールト トレラント テクノロジは、システム フォールト トレラント テクノロジ SFT とも呼ばれることがあります。これは 3 つのレベルに分けることができます: 第 1 レベルは低レベルのディスク フォールト トレラント テクノロジ、第 2 レベルは中レベルのディスク フォールト トレラント テクノロジ、第 3 レベルはシステム フォールト トレラント テクノロジで、以下に基づいてフォールト トレラントを実装します。クラスターテクノロジー。

(1) 第1レベルのフォールトトレラント技術SFT-I

        第 1 レベルのフォールト トレラント テクノロジ (SFT-I) は、主にディスク表面の欠陥によるデータ損失を防ぐために使用され、二重ディレクトリ二重ファイル アロケーション テーブルリードアフターライト検証などの対策が含まれます。

1.1 - 2 つの目次と 2 つのファイル割り当てテーブル

        ディスク上に保存されるファイル ディレクトリとファイル アロケーション テーブル FAT は、ファイル管理に使用される重要なデータ構造です。これらのテーブルが破壊されるのを防ぐために、(二重)ディレクトリ テーブルと FAT を別のディスクまたはディスクの別の領域に個別に確立できますそのうちの 1 つはメイン ディレクトリとメイン FAT であり、もう 1 つはバックアップ ディレクトリとバックアップ FAT です。//ファイルのバックアップ

        ディスクの表面欠陥によりメイン ファイル ディレクトリまたはメイン FAT が損傷すると、システムは自動的にバックアップ ファイル ディレクトリとバックアップ FAT を有効にして、ディスク上のデータに引き続きアクセスできるようにします。

1.2 - ホットフィックスのリダイレクトとリードアフターライトチェックサム

        ディスクは高価なため、ディスク表面に少量の欠陥がある場合は、何らかの修復措置を講じて引き続き使用できる場合があります。一般に、主に次の 2 つの改善策が取られます。

  • ホット リペア リダイレクト。システムはディスク容量のごく一部 (たとえば 2% ~ 3%) をホット リペア リダイレクト領域として使用します。この領域は、ディスクに欠陥があることが判明した場合に書き込まれるデータを保存するために使用されます。この領域に書き込まれるすべてのデータ データは、後でアクセスできるように登録されます。//欠陥データを運ぶための専用領域を割り当てます
  • リードアフターライト検証方式では、ディスクに書き込まれたすべてのデータが完全なディスク ブロックに書き込まれることを確認するために、データ ブロックがディスクに書き込まれるたびに、データ ブロックをすぐに読み取って、Install に送信する必要があります。別のバッファに書き込み、バッファの内容と書き込み後にメモリバッファに残ったデータを比較し、両者が一致していれば書き込み成功とみなします。それ以外の場合は書き直します。書き換え後も両者が一致しない場合は、ディスクブロックに欠陥があると考えられ、このとき、ディスクブロックに書き込まれるべきデータがホットリペアリダイレクト領域に書き込まれる。// 書き込んだ後、比較検証のために読み出す

(2) 第2レベルのフォールトトレラント技術SFT-II

        第 2 レベルのフォールト トレラント テクノロジは、主にディスク ドライブやディスク コントローラの故障によるシステムの誤動作を防ぐために使用され、さらにディスク ミラーリングディスク二重化に分類できます

2.1 - ディスクミラーリング

        ディスクドライブの故障によるデータ損失を回避するために、ディスクミラーリング機能が追加されています。この機能を実現するには、同一のディスクコントローラ配下に同一のディスクドライブを追加する必要があります// 冗長コンポーネント、ディスクドライブ

        ディスクミラーリング方式を使用する場合、毎回プライマリディスクにデータを書き込んだ後、2 つのディスクのビットマップがまったく同じになるように、データをバックアップディスクに書き込む必要があります。バックアップ ディスクはプライマリ ディスクのミラーであると考えてください。メインディスクドライブに障害が発生した場合でも、バックアップディスクが存在するため、切り替え後もホストは正常に動作します。

        ディスク ミラーリングはフォールト トレランスを実現しますがディスク使用率が 50% に低下し、サーバーのディスク I/O 速度は向上しません。//よく考えてください

2.2 - ディスクの二重化

        2 つのディスク ドライブを制御するディスク コントローラに障害が発生した場合、またはホスト コンピュータとディスク コントローラ間のパスに障害が発生した場合、ディスク ミラーリングではデータは保護されません。そこで、第2レベルのフォールトトレラント技術では、ディスク二重化機能が追加され 2台のディスクドライブが2台のディスクコントローラにそれぞれ接続され、2台のディスクドライブがミラーリングされてペアとなる。

        ディスク二重化では、ファイル サーバーは異なるコントローラの下にある 2 つのディスクに同時にデータを書き込むため、2 つのディスクはまったく同じビットマップを持ちますチャネルまたはコントローラに障害が発生しても、他のチャネルのディスクはデータを失うことなく正常に動作し続けます。ディスクが二重化されている場合、各ディスクには独自の独立したチャネルがあるため、ディスクへのデータの書き込みまたはディスクからのデータの読み取りを同時に (並行して) 行うことができます。

(3) クラスタ技術によるフォールトトレラント機能

        いわゆるクラスタとは、相互接続された自律型コンピュータのグループで構成される統合コンピュータ システムを指し、人々に自分が機械であるかのような感覚を与えます。クラスタシステムを利用すると、システムの並列処理能力が向上するだけでなく、システムの可用性も向上するため、フォールトトレラント機能を備えたクラスタシステムとして現在最も広く使われています。ホット バックアップ モード、相互バックアップモード、および共通ディスク モードの3 つの主な動作モードがあります

3.1 - デュアルマシンホットバックアップモード

        このシステム モードでは、同じ処理能力を持つ 2 つのサーバーがあり、1 つはメイン サーバーとして、もう 1 つはバックアップ サーバーとして使用されます通常はメインサーバーが稼働しており、バックアップサーバーが常にメインサーバーの動作を監視しており、メインサーバーに障害が発生すると、バックアップサーバーが直ちにメインサーバーの作業を引き継ぎ、システムのメインサーバーになります。修復されたサーバーはバックアップ サーバーとして使用されます。//マスタースレーブサーバー

3.2 - 2 台のマシンは相互バックアップ モードです

        デュアルマシン相互バックアップ モードでは、通常、2 台のサーバーは両方ともオンライン サーバーであり、それぞれが独自のタスクを実行します。たとえば、1 台はデータベース サーバーとして使用され、もう 1 台は電子メール サーバーとして使用されます。

        相互バックアップ モードでは、各サーバーに2 台のハードディスクを構成し、1 台はシステム プログラムとアプリケーションのロード用に、もう 1 台は別のサーバーから送信されたバックアップ データをサーバーのミラー ディスクとして受信するように構成するのが最適です。通常の操作中、ミラー ディスクはローカル ユーザーに対してロックされるため、ミラー ディスク内のデータの正確性を確認することが容易になります。ハードディスクが 1 台しかない場合は、仮想ディスクまたはパーティションを作成して、システム プログラムやアプリケーションを保存したり、別のサーバーからデータをバックアップしたりできます。

        専用線リンクを通じて特定のサーバの障害が検出された場合、このときルータを利用して本当にサーバが障害しているかどうかを検証する。障害が確認された場合、正常なサーバーは障害が発生したサーバーのクライアントにブロードキャスト メッセージを送信し、切り替えを行うことを示します。切り替えが成功すると、クライアントはネットワークが提供するサービスを引き続き使用し、再度ログインすることなくサーバー上のデータにアクセスできます。障害のないサーバーに接続しているクライアントの場合、ネットワーク サービスの速度がわずかに低下するだけで、影響はありません。障害のあるサーバーが修復され、再びインターネットに接続されると、障害のないサーバーに移行されていたサービス機能が戻り、通常の動作が再開されます。// 障害交換と障害修復

        このモデルの利点は、タスクの処理に両方のサーバーを使用できるため、システムの効率が向上することです。現在、このモデルは 2 台のマシンから 4、8、16 台、またはそれ以上に拡張されています。システム内のすべてのマシンはタスクの処理に使用でき、そのうちの 1 台に障害が発生した場合、システムは別のマシンを指定してその作業を引き継ぐことができます。//最新のクラスターの使用方法

3.3 - 共通ディスクモード

        情報コピーのオーバーヘッドを軽減するために、複数のコンピュータを共通のディスク システムに接続できます。共通ディスクは複数のボリュームに分割されています。コンピュータごとに 1 つのボリュームを使用します。コンピュータに障害が発生した場合、システムは、障害が発生したコンピュータのボリュームを所有し、障害が発生したコンピュータを引き継ぐことができるスケジュール ポリシーに基づいて代替マシンを選択するように再構成されます。このモデルの利点は、情報のコピー時間が不要になり、ネットワークとサーバーのオーバーヘッドが削減されることです

(4) バックアップ体制

        バックアップ システムは、完全なシステムで構成する必要があります。一方で、ディスクシステムの容量が十分ではないため、運用中にシステムのすべてのデータをディスクにインストールすることは不可能であり、必要ではないがまだ有用なデータは保存のためにバックアップシステムに保存する必要があります。 。一方で、システム障害やウイルス感染によるシステム内のデータの紛失・消失を防ぐために、より重要なデータをバックアップシステムに保存することも必要です。現在、バックアップ システムとして一般的に使用されている機器には、テープ ドライブ、ディスク ドライブ、ハードディスクCD ドライブなどがあります。//つまり、一部の永続デバイスはデータの物理的な保存とバックアップに使用されます。

3. データの整合性管理

        実際のアプリケーションでは、同じデータが複数のファイルに含まれることがよくあります。いわゆるデータの一貫性の問題は、複数のファイルに保存されている同じデータが、いかなる状況でも同じであることが保証されなければならないことを意味しますたとえば、ある製品の購入価格が間違っていることが判明した場合、データの整合性を確保するために、仕訳帳、支払口座、元帳、総勘定元帳などの一連の文書内の製品の価格を同時に修正する必要があります。しかし、変更の途中で突然システムがダウンしてしまうと、各アカウントのデータに不整合が生じ、さらに複数のアカウントの不整合が発生してしまいます。データの整合性を確保するために、最新のOSにはデータの整合性を確保できるソフトウェアが構成されています

(1) 事務

1.1 - トランザクションの定義

        トランザクションがデータのバッチを変更する場合、トランザクションはすべてのデータを完了して元のデータを変更されたデータで置き換えるか、いずれのデータも変更しませんトランザクション操作のこの特徴は、トランザクションの原子性 (アトミック) です。

        単一のプログラム単位として実行される一連の操作のすべてがトランザクションになるわけではありません。つまり、トランザクションとして定義される場合は、トランザクション属性 ACID という 4 つの属性を同時に満たす必要があります。前述のアトミック性に加えて、トランザクションには次の属性も必要です。

  • Consistent、つまり、トランザクションが完了したとき、すべてのデータが一貫した状態に保たれる必要があります。
  • Isolated、つまり、トランザクションによるデータの変更は、他の同時トランザクションから分離する必要があります。言い換えれば、トランザクションがデータを表示するときのデータの状態、または別の同時トランザクションがデータを変更する前の状態、または別のトランザクションによって変更された後の状態であり、中間状態データではありません
  • 永続性 (永続性)、つまり、トランザクションの完了後、システムへの影響は永続的です。

1.2 - 取引記録

        トランザクションのアトミックな変更を実現するには、通常、トランザクション レコードと呼ばれるデータ構造を使用して実装されますこれらのデータ構造は非常に信頼性の高いメモリに配置され、トランザクションの実行時にデータ項目の変更に関するすべての情報を記録するために使用されるため、実行レコード (ログ)とも呼ばれますこのレコードには次のフィールドが含まれます: //これは非常に一般的な指針となるイデオロギーであり、非常に重要です

  • トランザクション名:トランザクションを識別するために使用される一意の名前。
  • データ項目名:変更されたデータ項目の一意の名前です。
  • 古い値:変更前のデータ項目の値。
  • 新しい値:変更後のデータ項目の値。

        トランザクション レコード テーブルの各レコードには、変更操作、トランザクションの開始、トランザクションのコミットまたはトランザクションの失敗など、トランザクション操作における重要なトランザクション操作が記述されています。// トランザクションを記録する

1.3 - 回復アルゴリズム

        トランザクション記録テーブルには、トランザクション T によって変更されたデータとその変更前後の値の集合が存在するため、トランザクション記録テーブルを使用するシステムは、障害を非記憶領域に格納することなく、障害を処理することができます。揮発性メモリ、情報の損失。回復アルゴリズムは次の 2 つのプロセスを利用できます: //データベースの一般的な方法

  • 元に戻す(T)この処理により、トランザクション T によって変更されたすべてのデータが変更前の値に復元されます。
  • やり直し(T)このプロシージャは、トランザクション T によって変更されたすべてのデータを新しい値に設定します。

        システムに障害が発生した場合、システムは以前のトランザクションをクリーンアップする必要があります。トランザクション記録テーブルを参照すると、クリーンアップされていないトランザクションは 2 つのカテゴリに分類できます。//元に戻すログとやり直しログ

        1 つのタイプは、トランザクションに含まれるあらゆる種類の操作が完了したトランザクションです。このタイプのトランザクションを判断する基準は、トランザクション レコード テーブルに T (開始) レコードと T (コミットメント) レコードの両方が含まれていることです。このとき、システムはやり直し (T) プロセスを使用して、変更されたすべてのデータ セットを新しいデータ セットに変換します。価値。

        もう 1 つのタイプは、すべての操作が完了しないトランザクションです。トランザクション T の場合、ログ テーブルに T (開始) レコードのみがあり、T (コミットメント) レコードがない場合、この T はこのタイプのトランザクションに属します。この時点で、システムは undo(T) プロセスを使用して、変更されたすべてのデータを変更前の値に戻します。

(2) チェックポイント

        チェックポイントの役割

        システム内では多数のトランザクションが同時に実行される可能性があるため、トランザクション記録テーブルには多数のトランザクション実行記録が存在します。時間が経つにつれて、より多くのデータが記録されます。したがって、システムが故障すると、取引記録テーブルの記録をクリーンアップするのに非常に時間がかかります。

        チェックポイントを導入する主な目的は、トランザクション レコード テーブル内のトランザクション レコードのクリーニングを定期的に行うこと、つまり、次の作業を定期的に実行することです。

  1. 1 つ目は、揮発性メモリ (メモリ) に存在する現在のトランザクション レコード テーブル内のすべてのレコードを安定したメモリに出力することです。
  2. 2 つ目は、揮発性メモリに存在するすべての変更されたデータを安定したメモリに出力することです。
  3. 次に、トランザクション記録テーブルのチェックポイント記録を安定したストレージに出力します。
  4. 最後に、(チェックポイント) レコードが表示されるたびに、システムは回復操作を実行します。つまり、回復機能はやり直しおよび元に戻すプロセスを使用して実現されます。

        トランザクション T がチェックポイントの前にコミット (コミット) した場合、チェックポイント レコードの前の T (コミット) レコードがトランザクション レコード テーブルに表示されます。この場合、T によって変更されたすべてのデータは、チェックポイントの前に安定したストレージに書き込まれるか、チェックポイント レコード自体の一部として安定したストレージに書き込まれます。したがって、将来システムに障害が発生した場合でも、やり直し操作を行う必要がありません。//コミットしたトランザクションのデータを事前に保存しておく

        チェックポイントの導入後は、リカバリ処理のオーバーヘッドを大幅に削減できます障害発生後は、トランザクション レコード テーブル内のすべてのトランザクション レコードを処理する必要はなく、最後のチェックポイント以降のトランザクション レコードのみを処理すればよいためです。

        したがって、回復ルーチンは最初にトランザクション ログ テーブルを検索して、最新のチェックポイントより前に実行を開始した最後のトランザクション T を特定します。そのようなトランザクションを見つけた後、トランザクション レコード テーブルの検索に戻り、最初のチェックポイント レコードを見つけることができます。リカバリ ルーチンは戻ってチェックポイントから各トランザクションのレコードを検索し、REDO および UNDO プロセスを使用してトランザクションを処理します。と。// データをセグメント単位で処理します

(3) 同時実行制御

        トランザクションのアトミックな性質のため、各トランザクションの実行は特定の順序で実行する必要があります。1 つのトランザクションが実行された後でのみ、別のトランザクションの実行が許可されます。つまり、各トランザクションによるデータ項目の変更は相互に排他的です人々はこの機能を逐次性と呼び、トランザクションの逐次性を実現するために使用されるテクノロジは同時実行制御と呼ばれます。//同じデータのトランザクションには相互排他が必要です

        データベースで一般的に使用される同時実行制御手法:相互排他ロック共有ロック//つまり、読み取り/書き込みロック

(4) 重複データのデータ整合性問題

        データのセキュリティを確保するために、最も一般的な方法は、キー ファイルまたはデータ構造を複数のコピーにコピーし、それらを別の場所に保存することです。メイン ファイル (データ構造) に障害が発生した場合、バックアップ ファイル (データ構造) が存在します。データが失われる可能性がありますが、システムの動作には影響しません。明らかに、メイン ファイルのデータ (データ構造) は、各バックアップ ファイルの対応するデータと一致している必要がありますまた、空きディスクブロックテーブルなど、システム運用中に常に変更されるデータ構造も存在するため、異なる場所にある同じデータ構造内のデータの整合性も保証する必要があります。// クラスター内で最も一般的な問題

        //この問題については、分散システムには対応する解決策とアルゴリズムがありますが、ここでは詳しく説明しませんので、興味があれば、以降の記事を参照してください。

おすすめ

転載: blog.csdn.net/swadian2008/article/details/131595846