Daniel J. Bernstein, a kriptográfia és a biztonságos szoftverfejlesztés elismert szakértője, aki olyan projekteket fejlesztett, mint a qmail, djbdns, NaCl, Ed25519, Curve25519 és ChaCha20-Poly1305, kiadta a cdb 20250121-et, egy adattárolási formátumot és a hozzá tartozó könyvtárat, amely kulcs/érték adatbázisfüggvények alkalmazásokba ágyazására szolgál. Ez a kiadás több mint 25 évvel az előző, 2000 februárjában kiadott cdb 0.75-ös frissítés után jelent meg.
Az új verzió a cdb64 formátumot valósítja meg, 64 bites adatszerkezetekre lefordítva. 64 bites platformokon az új formátum akár egy exabájt méretű adatbázisokat is lehetővé tesz (korábban az adatbázisok mérete 4 GB-ra volt korlátozva). Az adatbázis nagyon kompakt, és rekordonként 4096 bájtos fejlécet és 48 bájtos többletterhelést használ (a 32 bites verziónál a fejléc 2048 bájt és 24 bájt rekordonként). Az adatbázis eléréséhez csak két lemezhozzáférési művelet szükséges, ha a kulcs jelen van, és egy, ha nincs. Az atomi adatbázis-csere támogatott, amely összeomlásálló és nem blokkolja az olvasási hozzáférést.
Egyéb változások:
- Támogatás a configure szkripttel történő fordításhoz és a "make install" paranccsal történő telepítéshez.
- A tesztszkriptek csh-hoz kötése eltávolítva.
- Minden belső egész értéket a „num” típus váltott fel, amely „long long”-ként van definiálva. Az uint32, fmt és scan függvényeket a num típussal működő függvények váltották fel.
- A pufferkezelő API-t felosztották inbuf és outbuf részekre. A hier felületet letisztították.
- A nem használt függvénydefiníciókat eltávolítottuk a kódból.
- Az olyan kötések elavult használata, mint az str_len, alloc, uint32, exit, error és systype.
- A kódot átdolgoztuk, hogy kiküszöböljük az elavult C konstrukciók, például a régi stílusú függvénydefiníciók, az üres prototípusok és a main() definíció régi stílusának használatát.
- A const és a static definícióit használjuk.
- Az összeszerelés során engedélyezték a "-Wall" jelzőt, és a kódot megtisztították a figyelmeztetések kiküszöbölése érdekében.
- A fordítás során a -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing és -fno-strict-overflow kapcsolók engedélyezve vannak.
Forrás: opennet.ru
