aspose.info
SV

CDB - konstant databasfil

Uppdaterad

Vad är en CDB fil?

CDB-filerna används i verksamhetskritiska applikationer som e-post. CDB står för “konstant databas”, ett snabbt, pålitligt och enkelt paket för att skapa eller läsa konstanta databaser. Databasersättning är säker mot systemkrascher. Användare behöver inte pausa under en omskrivning. CDB fungerar som en associativ array (på disk), mappar nycklar till värden och gör att flera värden kan lagras i en enda nyckel.

CDB filformat

CDB-filformatet lagrar tal, förskjutningar, längder och hashvärden i little endian-format som osignerade 32-bitars heltal. Nycklar och data tros vara ogenomskinliga bytesträngar utan någon speciell behandling. I början av databasen representerar rubriken med fast storlek 256 hashtabeller genom att lista deras position i filen och deras längd i luckor. Vanligtvis lagras data som en sekvens av poster, varje post lagrar nyckellängd, datalängd, nyckel och data. Det finns inga regler för sortering eller anpassning. Posterna följs av en uppsättning av 256 hashtabeller av varierande längd. Eftersom noll är en giltig längd, kan det finnas färre än 256 hashtabeller fysiskt lagrade i databasen, men det anses inte vara 256 tabeller. Hashtabeller består av en serie slots, som var och en innehåller ett hashvärde och en postoffset. “Empty slots” har en offset på noll.

Struktur

CDB-databasen består av en hel datauppsättning i en enda datorfil. Den innehåller tre delar:

  • En rubrik med fast storlek
  • Data
  • En uppsättning hashtabeller.

Uppslagningar är endast tillgängliga för exakta nycklar. Uppslagningar fungerar med hjälp av följande algoritm:

  • Haha nyckeln.
  • Bestäm vid vilket hashbord och slot denna post ska placeras.
  • Testa den angivna luckan i hashtabellen.

För uppslagningar av nycklar med mer än ett värde kan ytterligare värden hittas genom att helt enkelt återuppta sökningen vid nästa lucka.

Funktioner

CDB databasstruktur ger flera funktioner:

Snabba uppslagningar

En lyckad uppslagning i en enorm databas tar normalt bara två diskåtkomster och en misslyckad uppslagning tar bara en.

Låg overhead

En databas använder 2048 byte, 24 byte per post och utrymme för nycklar och data.

Inga slumpmässiga gränser

CDB kan hantera vilken databas som helst på upp till 4 gigabyte. Eftersom det inte finns några andra begränsningar behöver posterna inte ens passa in i minnet. Databaser lagras i ett maskinoberoende format.

Snabb ersättning av atomdatabaser

Kommandot cdbmake kan skriva om en hel databas i två storleksordningar, snabbare än andra hashpaket.

Snabba databasdumpar

cdbdump kan skriva ut innehållet i en databas i cdbmake-kompatibelt format.

Referenser

Se även