Нашри DBMS libmdbx 0.11.7. Пас аз бастани GitHub, рушдро ба GitFlic интиқол диҳед

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

Нашрия барои интиқоли лоиҳа ба хидмати GitFlic пас аз он ки маъмурияти GitHub libmdbx-ро дар якҷоягӣ бо як қатор лоиҳаҳои дигар дар 15 апрели соли 2022 бе ягон огоҳӣ ё тавзеҳот хориҷ кард ва ҳамзамон дастрасӣ ба бисёре аз таҳиягаронро, ки бо ширкатҳои афтодаанд, масдуд кард, назаррас аст. таҳти таҳримҳои ИМА. Аз нигоҳи корбар ҳама саҳифаҳо, анборҳо ва форкҳои лоиҳа бидуни имкони иртибот ва дарёфти сабабҳо ногаҳон ба саҳифаи "404" табдил ёфтанд.

Мутаассифона, кариб хамаи масъалахо аз байн рафтаанд, ки дар онхо саволхои зиёде бо чавобхои муфассал ва мубохисахои зиёде низ буданд. Аз даст додани ин маълумот ягона зарари объективӣ мебошад, ки маъмурияти GitHub тавонист ба лоиҳа расонад. Нусхаҳои қисман муҳокимаҳо дар бойгонии archive.org дастрасанд.

Аз даст додани скриптҳои дарунсохташудаи CI ва инфрасохтор (барои лоиҳаҳои OpenSource ройгон дастрас аст) моро маҷбур кард, ки таҷдиди назар, муттаҳидсозӣ ва рафъи қарзи хурди техникӣ кунем. Ҳоло CI тақрибан ба ҳамон андоза барқарор карда шудааст, ба истиснои сохтмонҳо ва озмоишҳо барои ҳама вариантҳои BSD ва Solaris. Гуфта мешавад, ки пас аз амалҳои GitHub, ба ғайр аз ёдрас кардани зарурати пардохт ва кӯшиши аз даст додани пул, ҳеҷ гуна тавзеҳот ё огоҳинома гирифта нашуд.

Азбаски хабари охирин дар бораи нашри libmdbx v0.11.3, ба ғайр аз барқароршавӣ аз амалҳои GitHub, такмилҳо ва ислоҳҳои зеринро қайд кардан лозим аст:

  • Роҳи муваққатӣ барои эффект/нуқсони ошкоршуда дар саҳифаи якҷоя ва кэши буферӣ дар ядрои Linux илова карда шуд. Дар системаҳое, ки кэшҳои саҳифа ва буферӣ воқеан муттаҳид шудаанд, барои ядро ​​​​ҳангоми навиштан ба файли аллакай хариташудаи хотира хотираро дар ду нусхаи маълумот беҳуда сарф кардан маъно надорад. Аз ин рӯ, маълумоти навишташуда тавассути харитасозии хотира пеш аз анҷоми занги системаи write() намоён мешавад, ҳатто агар маълумот ҳанӯз ба диск навишта нашуда бошад.

    Дар маҷмӯъ, рафтори дигар оқилона нест, зеро бо якҷоякунии таъхир, шумо ба ҳар ҳол бояд қуфлҳоро барои рӯйхатҳои саҳифаҳо гиред, маълумотро нусхабардорӣ кунед ё PTE-ро танзим кунед. Аз ин рӯ, қоидаи ногуфташудаи ҳамоҳангӣ аз соли 1989, вақте ки кэши ягонаи буферӣ дар SRV4 пайдо шуд, амал мекунад. Аз ин рӯ, дарёфти нокомиҳои аҷиб дар сенарияҳои истеҳсолии бандҳои libmdbx кори зиёдеро талаб мекард. Аввалан, тавассути дубора тавлид кардани мушкилот, сипас бо роҳи тасдиқи гипотезаҳо ва тафтиши беҳбудиҳо.

    Ҳоло мо метавонем бо итминон бигӯем, ки новобаста аз мураккабӣ ва хусусияти сенарияи бозикунӣ мушкилот ба таври эътимодбахш муайян карда шуд, маҳаллӣ ва боэътимод бартараф карда шуд. Илова бар ин, кори механизми гузариш аз ҷониби яке аз таҳиягарони Erigon (Ethereum) тасдиқ карда шуд, ки дар ҳолати ӯ, дар сохтани дебаг, муҳофизат ҳамчун регрессия аз ҳисоби санҷиши иловагии тасдиқ оғоз ёфт.

    Бояд қайд кард, ки дар шароити истифодаи васеъи libmdbx дар лоиҳаҳои корӣ, на фаҳмидани «оё ин иштибоҳ аст ё хусусият» ва оё ба чунин ҳамоҳангӣ такя кардан мумкин аст, таъмини кори боэътимод ба таври куллӣ муҳимтар аст. хусусан сабабҳои номувофиқӣ дар ядрои Linux пайдо накардан. Аз ин рӯ, дар ин ҷо мо дар бораи ислоҳи мушкилоте меравад, ки метавонад ба корбарон таъсир расонад.

  • Регрессияи хатои EXDEV (пайванди байни дастгоҳ) ҳангоми нусхабардории гарми пойгоҳи додаҳо бидуни фишурдан ба системаи файлии дигар ҳам тавассути API ва ҳам бо истифода аз утилитаи mdbx_copy ислоҳ карда шуд.
  • Kris Zyp дастгирии libmdbx-ро дар Дено амалӣ кардааст. Kai Wetlesen RPM-ро барои Fedora баста кардааст. Дэвид Буисси барои Скала бастабандӣ кард.
  • Коркарди собит арзиши аз ҷониби опсияи MDBX_opt_rp_augment_limit муқарраршуда ҳангоми коркарди транзаксияҳои бузург дар пойгоҳи додаҳои калон. Қаблан, аз сабаби иштибоҳ, амалҳои нолозим метавонистанд иҷро шаванд, ки баъзан ба иҷрои татбиқи Ethereum (Erigon/Akula/Silkworm) ва лоиҳаҳои Binance Chain таъсир мерасонданд.
  • Бисёр хатогиҳо, аз ҷумла хатогиҳои API C++ ислоҳ карда шуданд. Бисёр мушкилоти сохтмон дар конфигуратсияҳои нодир ва экзотикӣ ҳал карда шуд. Рӯйхати пурраи ҳама беҳбудиҳои назаррас дар ChangeLog мавҷуд аст.
  • Дар маҷмӯъ ба 185 файл 89 тағйирот ворид карда шуд, ≈3300 сатр илова карда шуд, ≈4100 нест карда шуд. Бештар аз сабаби тоза кардани файлҳои технологии бефоида, ки бо GitHub ва хидматҳои вобаста алоқаманданд, хориҷ карда шуданд.

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

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

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

Манбаъ: opennet.ru

Илова Эзоҳ