Դանիել Բերնշտեյնը թարմացրել է cdb գրադարանն

Դանիել Բեռնշտեյն (Daniel J. Bernstein), հայտնի մասնագետ պրակտիկայի մեջ և անվտանգ ծրագրակազմի ստեղծման ոլորտում, որ մշակել է բազմաթիվ նախագծեր, այդ թվում՝ qmail, djbdns, NaCl, Ed25519, Curve25519 և ChaCha20-Poly1305, հրապարակել է cdb նախագծի 20250121 թողարկումը, որը առաջարկում է տվյալների պահման ձևաչափ և աջակցող գրադարանը ծրագրերում տվյալների բազաների համար բանալի/արժեք ձևաչափով: Այս թողարկումը կազմավորվել է ավելի քան 25 տարիների ընթացքում անցյալ cdb 0.75 թարմացումից, որը կազմվել է 2000 թվականի փետրվարին.

Նոր տարբերակում իրականացվել է cdb64 ձևաչափ, որը կիրառվել է 64-բիթանոց կառուցվածքների վրա: 64-բիթանոց հարթակներում նոր ձևաչափը հնարավորություն է տալիս ստեղծել տվյալների բազաներ մինչև մեկ էկզաբայթ (նախկինում տվյալների բազայի չափը չէր կարող գերազանցել 4 ԳԲ): Տվյալների բազան շատ կոմպակտ է և օգտագործում է 4096-բիթանոց վերնագիր ու 48 բիթ սպասարկման տեղեկատվություն յուրաքանչյուր գրառման համար (32-բիթանոց տարբերակի համար վերնագիրը 2048 է և յուրաքանչյուր գրառման համար 24 բիթ): Տվյալների բազային հասանելիություն ունենալու դեպքում կատարվում են ընդամենը երկու սկավառակի հասանելիության գործողություններ բանալի ունեցքի դեպքում և մեկը՝ երաշխավորված չլինելու դեպքում: 支持原子数据库替换,抵御意外崩溃且不阻塞读取访问.

Այլ փոփոխություններ՝

  • Համակարգված կոմպիլյացիայի աջակցություն օգտագործելով configure սկրիպտը և տեղադրման հրաման 'make install':
  • Պատասխանելու աշխատանքային սցենարների կապը csh-ից տրամադրվել է.
  • Բոլոր ներսի ամբողջական արժեքները փոխարինված են «num» տեսակով, որը սահմանված է «long long» ի ձևաչափով: uint32, fmt և scan գործառույթները փոխարինված են num տիպով աշխատող գործառույթներով.
  • Ծրագրային համակցարարի աշխատանքը բաժանված է inbuf և outbuf: Զտվող է hier interfazը.
  • Կոդից հանված են անօգտագործված գործառույթների սահմանումները.
  • Ռեալիզացիան прекращеная кетերի, таких как str_len, alloc, uint32, exit, error и systype.
  • Код переработан, чтобы прекратить использование устаревших конструкций C, таких как старый стиль определения функций, пустые прототипы и старый стиль определения main().
  • Հաստատվել են const և static սահմանումներ:
  • Կոմպիլյացիայի ընթացքում ակտիվացվել է '-Wall' նիշը, իսկ կոդը անցկացվել է նախազգուշացումների վերացման համար.
  • Կոմպիլյացիայի ընթացքում ներառվել են տարբերակները -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing և -fno-strict-overflow.

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster