.CDB オプション番号
CDB ファイルは、電子メールなどのミッション クリティカルなアプリケーションで使用されます。 CDB は「定数データベース」の略で、定数データベースを作成または読み取るための高速で信頼性が高くシンプルなパッケージです。データベースの置き換えは、システム クラッシュに対して安全です。ユーザーは書き換え中に一時停止する必要はありません。 CDB は連想配列 (ディスク上) として機能し、キーを値にマッピングし、複数の値を 1 つのキーに格納できるようにします。
CDBファイル形式
CDB ファイル形式は、数値、オフセット、長さ、およびハッシュ値を符号なし 32 ビット整数としてリトル エンディアン形式で格納します。キーとデータは、特別な処理を行わない不透明なバイト文字列と見なされます。データベースの先頭にある固定サイズのヘッダーは、ファイル内の位置とスロット内の長さをリストすることで、256 個のハッシュ テーブルを表します。通常、データは一連のレコードとして格納され、各レコードにはキーの長さ、データの長さ、キー、およびデータが格納されます。並べ替えや整列の規則はありません。レコードの後には、さまざまな長さの 256 個のハッシュ テーブルのセットが続きます。ゼロは有効な長さであるため、データベースに物理的に格納されているハッシュ テーブルは 256 未満である可能性がありますが、256 テーブルと見なされるものはありません。ハッシュ テーブルは一連のスロットで構成され、各スロットにはハッシュ値とレコード オフセットが含まれます。 「空のスロット」のオフセットはゼロです。
### 構造 CDB データベースは、単一のコンピューター ファイル内のデータセット全体で構成されます。次の 3 つの部分が含まれています。
- 固定サイズのヘッダー
- データ
- ハッシュ テーブルのセット。
ルックアップは正確なキーに対してのみ使用できます。ルックアップは、次のアルゴリズムを使用して動作します。
- キーをハッシュします。
- このレコードを配置する必要があるハッシュ テーブルとスロットを決定します。
- ハッシュ テーブルで示されたスロットをテストします。
複数の値を持つキーのルックアップの場合、次のスロットで検索を再開するだけで追加の値を見つけることができます。
#### 特徴
CDB データベース構造には、いくつかの機能があります。
高速検索
通常、大規模なデータベースでのルックアップの成功には 2 回のディスク アクセスが必要であり、ルックアップの失敗には 1 回のアクセスしか必要ありません。
低オーバーヘッド
データベースは 2048 バイト (レコードごとに 24 バイト) を使用し、キーとデータ用のスペースを使用します。
ランダム制限なし
CDB は、最大 4 ギガバイトのデータベースを管理できます。他に制限がないため、レコードがメモリに収まる必要さえありません。データベースは、マシンに依存しない形式で保存されます。
迅速なアトミック データベースの置き換え
コマンド cdbmake は、他のハッシュ パッケージよりも高速に、データベース全体を 2 桁に書き換えることができます。
高速データベース ダンプ
cdbdump は、データベースの内容を cdbmake と互換性のある形式で出力できます。