Cdb
全ての数値 — オフセット、長さ、ハッシュ値 — は、符号無し32ビット整数であり、リトルエンディアンで格納される。キーと値は単なるバイト列として扱われる。
データベースの先頭にある固定長ヘッダは、256個のハッシュテーブルそれぞれの、ファイル中のオフセットとスロット数を並べたものである。ヘッダの次は、データがレコードの列として格納される。各レコードは、キーの長さ・値の長さ・キー・値で構成される。アライメントや並び順に規則は無い。その次には、可変長のハッシュテーブルが256個並ぶ。各ハッシュテーブルはスロットの列からなり、スロットはハッシュ値とレコードのファイル中のオフセットで構成される。「空のスロット」はオフセットが0のスロットとして表現される。
ハッシュ値は符号無し32ビット整数である。このハッシュ値は、5381から開始して、キーの各バイトについて、現在のハッシュ値を33倍した値と現在のバイトのXORを取っていくことにより求める。オーバーフローは破棄される。256個あるうちのどのハッシュテーブルに格納するかはハッシュ値の下位8ビットによって選択され、ハッシュテーブルのどこにスロットを置くかは、残りの上位24ビットをハッシュテーブルのエントリ数で割った値をもとに決定される。