Нашри DBMS-и дарунсохтаи libmdbx 0.11.3

Китобхонаи libmdbx 0.11.3 (MDBX) бо татбиқи як пойгоҳи додаи пурмаънои дарунсохташудаи калиди арзиш бароварда шуд. Рамзи libmdbx дар доираи Литсензияи ҷамъиятии OpenLDAP иҷозатнома дорад. Ҳама системаҳои оператсионӣ ва меъмории ҷорӣ, инчунин Elbrus 2000-и русӣ дастгирӣ карда мешаванд. Дар охири соли 2021, libmdbx ҳамчун пуштибонии нигаҳдорӣ дар ду муштарии зудтарини Ethereum - Erigon ва нави "Shark", ки мувофиқи дастрас аст, истифода мешавад. маълумот, мизоҷи баландтарин Ethereum мебошад.

Таърихан, libmdbx як тарҳи амиқи DBMS LMDB аст ва аз ҷиҳати эътимоднокӣ, маҷмӯи хусусиятҳо ва иҷроиш аз пешгузаштаи худ болотар аст. Дар муқоиса бо LMDB, libmdbx ба сифати код, устувории API, санҷиш ва санҷишҳои автоматӣ диққати зиёд медиҳад. Утилита барои тафтиши якпорчагии сохтори пойгоҳи додаҳо бо баъзе имконоти барқарорсозӣ таъмин карда мешавад.

Аз ҷиҳати технология, libmdbx ACID, сериализатсияи сахти тағирёбанда ва хондани бебандро бо миқёси хаттӣ дар байни ядроҳои CPU пешниҳод мекунад. Фишурдани худкор, идоракунии автоматии андозаи пойгоҳи додаҳо ва арзёбии дархости диапазон дастгирӣ карда мешавад. Аз соли 2016 лоиҳа аз ҷониби Positive Technologies маблағгузорӣ шуда, аз соли 2017 дар маҳсулоташ истифода мешавад.

libmdbx API C++ ва инчунин пайвандҳои забони аз ҷониби ҳаваскорон дастгирӣшавандаро барои Rust, Haskell, Python, NodeJS, Ruby, Go ва Nim пешниҳод мекунад.

Навовариҳо, такмилҳо ва ислоҳоти асосӣ аз хабари қаблӣ дар 11 октябр илова карда шуданд:

  • API C++ барои истифода омода ҳисобида мешавад.
  • Навсозии маълумоти GC ҳангоми анҷом додани транзаксияҳои бузург ба таври назаррас суръат гирифт, ки ин махсусан ҳангоми истифодаи libmdbx дар экосистемаи Ethereum муҳим аст.
  • Имзои дохилии формати пойгоҳи додаҳо барои дастгирии навсозии худкор тағир дода шудааст, ки барои корбарон комилан шаффоф аст. Ин ба шумо имкон медиҳад, ки паёмҳои мусбати бардурӯғ дар бораи фасоди пойгоҳи додаҳоро нест кунед, вақте ки версияҳои кӯҳнаи китобхона барои хондани транзаксияҳои аз ҷониби версияҳои ҷорӣ сабтшуда истифода мешаванд.
  • Функсияҳои иловашуда mdbx_env_get_syncbytes (), mdbx_env_get_syncperiod () ва mdbx_env_get_syncbytes (). Дастгирии иловашуда барои амалиёти MDBX_SET_UPPERBOUND.
  • Ҳама огоҳиҳо ҳангоми сохтани ҳама компиляторҳои дастгирӣшуда дар режимҳои C++ 11/14/17/20 бартараф карда шуданд. Мутобиқат бо компиляторҳои кӯҳна таъмин карда мешавад: clang аз 3.9 сар карда, gcc аз 4.8 сар карда, аз ҷумла васлкунӣ бо истифода аз cdevtoolset-9 барои CentOS/RHEL 7.
  • Имконияти муноқишаи саҳифаи мета пас аз ба таври дастӣ гузаштан ба саҳифаи мушаххаси мета бо истифода аз утилитаи mdbx_chk ислоҳ карда шуд.
  • Ҳангоми баргардонидани хатои ғайричашмдошти MDBX_PROBLEM ислоҳ карда шуд, ки ҳангоми баргардонидани метасаҳифаҳои кӯҳна.
  • Баргардонидани MDBX_NOTFOUND дар сурати мувофиқати носаҳеҳ ҳангоми коркарди дархости MDBX_GET_BOTH ислоҳ карда шуд.
  • Хатогии компиляция дар Linux дар сурати мавҷуд набудани файлҳои сарлавҳа бо тавсифи интерфейсҳо бо ядро ​​ислоҳ карда шуд.
  • Муноқиша байни парчами дохилии MDBX_SHRINK_ALLOWED ва имконоти MDBX_ACCEDE ислоҳ карда шуд.
  • Якчанд санҷишҳои нолозим бартараф карда шуданд.
  • Бозгашти ғайричашмдошти MDBX_RESULT_TRUE аз функсияи mdbx_env_set_option() собит.
  • Дар маҷмӯъ, ба 90 файл зиёда аз 25 тағйирот ворид карда шуд, ~ 1300 сатр илова карда шуд, ~ 600 нест карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ