Жогорку өндүрүмдүүлүктөгү камтылган DBMS libmdbx 0.11.3 чыгаруу

libmdbx 0.11.3 (MDBX) китепканасы жогорку өндүрүмдүүлүктөгү компакт камтылган ачкыч-маанилер базасын ишке ашыруу менен чыгарылган. libmdbx коду OpenLDAP Public License астында лицензияланган. Бардык учурдагы операциялык системалар жана архитектуралар колдоого алынат, ошондой эле орус Elbrus 2000. 2021-жылдын аягында libmdbx эки эң тез Ethereum кардарларында сактагыч катары колдонулат - Erigon жана жаңы "Shark", алар жеткиликтүү ылайык маалымат, эң жогорку натыйжалуу Ethereum кардары болуп саналат.

Тарыхый жактан алганда, libmdbx LMDB DBMS терең кайра иштетүү болуп саналат жана ишенимдүүлүгү, өзгөчөлүктөр топтому жана аткаруу боюнча анын ата-бабаларынан жогору турат. LMDB менен салыштырганда, libmdbx коддун сапатына, API туруктуулугуна, тестирлөөгө жана автоматташтырылган текшерүүлөргө көп басым жасайт. Кээ бир калыбына келтирүү мүмкүнчүлүктөрү менен маалымат базасынын түзүмүнүн бүтүндүгүн текшерүү үчүн утилита берилет.

Технология боюнча, libmdbx ACIDди, күчтүү өзгөрүүлөрдү сериалдаштырууну жана процессордун өзөктөрү боюнча сызыктуу масштабдоо менен бөгөттөлбөгөн окууларды сунуштайт. Автоматтык компактификация, маалымат базасынын өлчөмүн автоматтык түрдө башкаруу жана диапазон сурамдарын баалоо колдоого алынат. 2016-жылдан бери долбоор Positive Technologies компаниясы тарабынан каржыланып, 2017-жылдан бери анын продукциясында колдонулуп келет.

libmdbx C++ API, ошондой эле Rust, Haskell, Python, NodeJS, Ruby, Go жана Nim үчүн энтузиасттар колдогон тил байламталарын сунуштайт.

11-октябрдагы мурунку жаңылыктардан бери кошулган негизги инновациялар, жакшыртуулар жана оңдоолор:

  • C++ API колдонууга даяр деп эсептелет.
  • Чоң транзакцияларды жасоодо GC маалыматтарын жаңыртуу бир топ ылдамдады, бул Ethereum экосистемасында libmdbx колдонууда өзгөчө маанилүү.
  • Маалыматтар базасынын форматынын ички кол тамгасы колдонуучулар үчүн толугу менен ачык-айкын болгон автоматтык жаңыртууну колдоо үчүн өзгөртүлдү. Бул китепкананын эскирген версиялары учурдагы версиялар тарабынан жазылган транзакцияларды окуу үчүн колдонулганда, маалымат базасынын бузулушу жөнүндө жалган-позитивдүү билдирүүлөрдү жок кылууга мүмкүндүк берет.
  • Кошулган функциялар mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() жана mdbx_env_get_syncbytes(). MDBX_SET_UPPERBOUND операциясы үчүн колдоо кошулду.
  • C++ 11/14/17/20 режимдеринде бардык колдоого алынган компиляторлор менен курууда бардык эскертүүлөр жок кылынды. Мурунку компиляторлор менен шайкештик камсыз кылынат: 3.9дан баштап clang, 4.8ден баштап gcc, анын ичинде CentOS/RHEL 9 үчүн cdevtoolset-7 аркылуу чогултуу.
  • mdbx_chk утилитасын колдонуу менен белгилүү бир мета баракка кол менен которулгандан кийин мета-баракча конфликтинин мүмкүндүгү оңдолду.
  • Эски мета-баракчаларды кайра жазууда күтүлбөгөн MDBX_PROBLEM катасы оңдолду.
  • MDBX_GET_BOTH өтүнүчүн иштетүүдө так эмес дал келген учурда MDBX_NOTFOUND кайтаруу оңдолду.
  • Linux'та компиляция катасы оңдолду, анткени өзөк менен интерфейстердин сыпаттамасы менен баш файлдары жок.
  • MDBX_SHRINK_ALLOWED ички желек менен MDBX_ACCEDE опциясынын ортосундагы карама-каршылык оңдолду.
  • Бир нече керексиз ырастоо текшерүүлөрү жок кылынды.
  • mdbx_env_set_option() функциясынан MDBX_RESULT_TRUE күтүлбөгөн кайтаруу оңдолду.
  • Жалпысынан 90 файлга 25тан ашык өзгөртүүлөр киргизилип, ~1300 сап кошулган, ~600 өчүрүлгөн.

Source: opennet.ru

Комментарий кошуу