Daniel J. Bernstein, një ekspert i njohur në fushën e kriptografisë dhe krijimit të softuerëve të sigurt, i cili ka zhvilluar projekte të tilla si qmail, djbdns, NaCl, Ed25519, Curve25519 dhe ChaCha20-Poly1305, publikoi versionin 20250121 të projektit cdb, i cili ofron një format ruajtjeje të të dhënave dhe një bibliotekë të shoqëruar për integrimin e funksioneve për punë me bazat e të dhënave në formën çelës\/vlerë. Ky version u formua pas më shumë se 25 vitesh nga azhurnimi i fundit të cdb 0.75, i cili u formua në shkurt 2000.
Në versionin e ri është realizuar formati cdb64, i përkthyer në struktura me tipa 64-bit. Në platformat 64-bit, formati i ri lejon krijimin e bazave të të dhënave me madhësi deri në eksabajt (më parë madhësia e bazës së të dhënave nuk mund të kalonte 4 GB). Baza e të dhënave është shumë kompakte dhe përdor një kokë 4096-byte dhe 48 byte informacion shërbimi për çdo rekord (për variantin 32-bit, koka është 2048 dhe 24 byte për rekord). Kur aksesohet baza e të dhënave, kryhen vetëm dy operacione të aksesit në disk në rastin e një çelësi dhe një në rastin e mungesës. Mbështetet zëvendësimi atomik i bazës së të dhënave, i qëndrueshëm ndaj përfundimeve të papritura dhe pa bllokuar qasjen në lexim.
Ndrytime të tjera:
- Mbështetje për ndërtimin me përdorimin e skenarit configure dhe instalimin me komandën "make install".
- Heqja e lidhjes së skenarëve testues me csh.
- Të gjithë vlerat e brendshme të plota janë zëvendësuar me tipin "num", i përcaktuar si "long long". Funksionet uint32, fmt dhe scan janë zëvendësuar me funksione që punojnë me tipin num.
- Interface e punĂ«s me buferat Ă«shtĂ« ndarĂ« nĂ« inbuf dhe outbuf. ĂshtĂ« bĂ«rĂ« njĂ« pastrim i interfaces hier.
- Janë hequr nga kodi përcaktimet e funksioneve të pa përdorura.
- Këto mbështetje të tilla si str_len, alloc, uint32, exit, error dhe systype janë ndaluar.
- Kodi është rishkruar për të ndaluar përdorimin e konventave të vjetra të C-së, të tilla si stilin e vjetër të përcaktimit të funksioneve, prototipat e zbrazët dhe stilin e vjetër të përcaktimit të main().
- Janë angazhuar përcaktimet const dhe static.
- Kur ndërtohet, është aktivizuar flag-u "-Wall", dhe kodi është pastruar për të eliminuar paralajmërimet.
- Gjatë kompaktimit janë përfshirë opsionet -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing dhe -fno-strict-overflow.
Burimi: opennet.ru
