Daniel Bernstein përmirësoi bibliotekën cdb

Daniel J. Bernstein, një ekspert i njohur në fushën e kriptografisë dhe zhvillimit të softuerit të sigurt, autor i projekteve si qmail, djbdns, NaCl, Ed25519, Curve25519 dhe ChaCha20-Poly1305, ka publikuar versionin e projektit cdb 20250121, i cili ofron një format për ruajtjen e të dhënave dhe një bibliotekë shoqëruese për të integruar në aplikacione funksione pune me baza të dhënash të tipit key/value. Ky publikim vjen më shumë se 25 vjet pas përditësimit të fundit cdb 0.75, të publikuar në shkurt 2000.

Në versionin e ri është implementuar formati cdb64, i përshtatur për struktura me tipe 64-bit. Në platformat 64-bit, formati i ri mundëson krijimin e bazave të të dhënave me madhësi deri në një eksabajt (më parë madhësia e BD-së nuk mund të kalonte 4 GB). Baza e të dhënave është shumë kompakte dhe përdor një header prej 4096 bajtesh dhe 48 bajte informacion shërbimi për çdo regjistrim (për variantin 32-bit, header-i është 2048 bajte dhe 24 bajte për regjistrim). Gjatë qasjes në bazën e të dhënave kryhen vetëm dy operacione leximi nga disku kur çelësi ekziston dhe një kur mungon. Mbështetet zëvendësimi atomik i BD-së, rezistent ndaj ndërprerjeve të papritura dhe pa bllokuar qasjen për lexim.

Ndryshime të tjera:

  • MbĂ«shtetet ndĂ«rtimi me pĂ«rdorimin e skriptit configure dhe instalimi me komandĂ«n «make install».
  • ËshtĂ« hequr varĂ«sia e skenarĂ«ve tĂ« testimit nga csh.
  • TĂ« gjitha 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.
  • NdĂ«rfaqja programore pĂ«r punĂ«n me buffer-at Ă«shtĂ« ndarĂ« nĂ« inbuf dhe outbuf. ËshtĂ« pastruar edhe ndĂ«rfaqja hier.
  • Nga kodi janĂ« hequr pĂ«rkufizimet e funksioneve tĂ« papĂ«rdorura.
  • ËshtĂ« ndĂ«rprerĂ« pĂ«rdorimi i wrapper-ave si str_len, alloc, uint32, exit, error dhe systype.
  • Kodi Ă«shtĂ« ripunuar pĂ«r tĂ« hequr pĂ«rdorimin e konstruksioneve tĂ« vjetruara tĂ« C, si stili i vjetĂ«r i pĂ«rcaktimit tĂ« funksioneve, prototipet bosh dhe stili i vjetĂ«r i pĂ«rcaktimit tĂ« main().
  • JanĂ« pĂ«rdorur pĂ«rkufizimet const dhe static.
  • GjatĂ« ndĂ«rtimit Ă«shtĂ« aktivizuar flamuri «-Wall», ndĂ«rsa kodi Ă«shtĂ« pastruar pĂ«r tĂ« eliminuar paralajmĂ«rimet.
  • GjatĂ« kompilimit janĂ« aktivizuar opsionet -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing dhe -fno-strict-overflow.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster