ДҚБЖ libmdbx 0.11.7 шығарылымы. GitHub-да құлыптан кейін әзірлеуді GitFlic-ке жылжытыңыз

libmdbx 0.11.7 (MDBX) кітапханасы өнімділігі жоғары ықшам кірістірілген кілттер-мәні дерекқорын жүзеге асыру арқылы шығарылды. libmdbx коды OpenLDAP Public License бойынша лицензияланған. Барлық ағымдағы операциялық жүйелер мен архитектураларға, сондай-ақ ресейлік Эльбрус 2000 нұсқасына қолдау көрсетіледі.

Шығарылым 15 жылдың 2022 сәуірінде GitHub әкімшілігі ешбір ескертусіз немесе түсіндірместен libmdbx-ті көптеген басқа жобалармен бірге жойғаннан кейін жобаның GitFlic қызметіне көшуімен ерекшеленеді, сонымен бірге олармен байланысты көптеген әзірлеушілерге кіруді бұғаттады. АҚШ санкцияларына ұшыраған компаниялар. Пайдаланушылардың көзқарасы бойынша, жобаның барлық беттері, репозиторийі мен шанышқылары кенеттен ешқандай байланыс және себептерін анықтау мүмкіндігінсіз 404 бетіне айналды.

Өкінішке орай, егжей-тегжейлі жауаптары бар көптеген сұрақтар, сондай-ақ көптеген талқылаулар болған мәселелердің барлығы дерлік жоғалып кетті. Бұл ақпараттың жоғалуы GitHub әкімшілігі жобаға келтіре алған жалғыз объективті зиян болып табылады. Талқылаулардың ішінара көшірмелері archive.org сайтында қолжетімді.

Кіріктірілген CI сценарийлері мен инфрақұрылымын жоғалту (OpenSource жобалары үшін ақысыз қол жетімді) бізді шағын техникалық қарызды қайта қарауға, біріздендіруге және жоюға мәжбүр етті. Енді CI барлық BSD және Solaris нұсқалары үшін құрастыру және іске қосу сынақтарын қоспағанда, бірдей дәрежеде қалпына келтірілді. Әдетте, әрекеттерден кейін GitHub төлем қажеттілігі туралы еске салғыштардан және ақшаны есептен шығару әрекеттерінен басқа ешқандай түсініктеме немесе хабарлама алмаған.

libmdbx v0.11.3 шығарылымы туралы соңғы жаңалықтардан бастап, GitHub әрекеттерінен қалпына келтіруден басқа, келесі жақсартулар мен түзетулерді атап өткен жөн:

  • Біріктірілген бетте анықталған сәйкессіздік әсері/ақау үшін уақытша шешім қосылды және Linux ядросындағы буферлік кэш. Бет пен буфер кэштері шынымен біріктірілген жүйелерде жадқа салынған файлға жазу кезінде деректердің екі көшірмесі үшін ядроның жадты ысырап етуінің ешқандай мәні жоқ. Сондықтан, деректер дискіге әлі жазылмаған болса да, жазу() жүйелік шақыруы аяқталмай тұрып, жазылған деректер жадты салыстыру арқылы көрінеді.

    Жалпы алғанда, басқа әрекеттер ұтымды емес, өйткені кейінге қалдырылған біріктіру кезінде сіз әлі де бет тізімдері үшін құлыптарды алуға, деректерді көшіруге немесе PTE реттеуге тура келеді. Сондықтан, айтылмаған когеренттілік ережесі SRV1989-те бірыңғай буферлік кэш пайда болған 4 жылдан бері әрекет етеді. Сондықтан, жүктелген libmdbx пайдалану сценарийлерінде оғаш бұзылуларды анықтау көп жұмысты қажет етті. Алдымен мәселені қайта шығару, содан кейін гипотезаларды тексеру және жақсартуларды тексеру.

    Енді көбею сценарийінің күрделілігі мен ерекшелігіне қарамастан, мәселе сенімді түрде анықталған, локализацияланған және сенімді түрде жойылған деп сенімді түрде айта аламыз. Сонымен қатар, айналып өту механизмінің жұмысын Erigon (Ethereum) әзірлеушілерінің бірі растады; оның жағдайында жөндеуді құрастыруда қорғаныс қажетсіз растауды тексеруге байланысты регрессия ретінде іске қосылды.

    Өндірістік жобаларда libmdbx кең таралған контекстінде сенімді жұмысты қамтамасыз ету оның қате немесе мүмкіндік екенін және мұндай үйлесімділікке сенуге болатынын анықтаудан гөрі маңыздырақ екенін атап өткен жөн. Linux ядросындағы сәйкессіздіктің себептері. Сондықтан бұл жерде біз пайдаланушыларға әсер етуі мүмкін мәселені шешу туралы айтып отырмыз.

  • API арқылы да, mdbx_copy утилитасы арқылы да басқа файлдық жүйеге ықшамдамай дерекқорды ыстық көшіру кезіндегі EXDEV (құрылғылар арасындағы сілтеме) қатесінің регрессиясы жойылды.
  • Kris Zyp Deno-да libmdbx қолдауын енгізді. Кай Ветлесен Fedora үшін RPM қаптамасын әзірледі. Дэвид Буиссие Скала үшін байланыстыруды жүзеге асырды.
  • Үлкен дерекқорларда үлкен транзакцияларды өңдеу кезінде MDBX_opt_rp_augment_limit опциясы арқылы көрсетілген мәннің бекітілген өңдеуі. Бұрын қатеге байланысты қажетсіз әрекеттер орындалуы мүмкін, бұл кейде Ethereum іске асыру (Erigon/Akula/Silkworm) және Binance Chain жобаларындағы өнімділікке әсер етті.
  • Көптеген қателер түзетілді, соның ішінде C++ API. Сирек және экзотикалық конфигурациялардағы көптеген құрастыру мәселелері түзетілді. Барлық маңызды жақсартулардың толық тізімі ChangeLog ішінде қол жетімді.
  • 185 файлға барлығы 89 өзгерту енгізілді, ≈3300 жол қосылды, ≈4100 жойылды. Көбірек GitHub және тәуелді қызметтермен байланысты әлдеқашан пайдасыз технологиялық файлдарды тазалауға байланысты жойылды.

Тарихи тұрғыдан алғанда, libmdbx LMDB ДҚБЖ терең қайта өңдеу болып табылады және сенімділік, мүмкіндіктер жиынтығы және өнімділік бойынша оның ата-бабасынан жоғары. LMDB-мен салыстырғанда, libmdbx код сапасына, API тұрақтылығына, тестілеуге және автоматтандырылған тексерулерге көп көңіл бөледі. Кейбір қалпына келтіру мүмкіндіктері бар дерекқор құрылымының тұтастығын тексеруге арналған қызметтік бағдарлама жеткізіледі.

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

libmdbx әзірленген C++ API, сондай-ақ Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala тілдеріне энтузиастар қолдайтын байлауларды ұсынады.

Ақпарат көзі: opennet.ru

пікір қалдыру