Бес жылдық дамудан кейін екінші libmdbx 1.0 шығарылым кандидаты жарияланды

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

MDBX кітапханасы айтарлықтай қайта қаралған шанышқы болып табылады LMDB — негізделген «кілт-мән» класының транзакциялық ендірілген ДҚБЖ ағаш B+ жоқ проактивті тіркеу, бұл көп ағынды процестерге жергілікті ортақ (желі емес) дерекқормен бәсекеге қабілетті және тиімді жұмыс істеуге мүмкіндік береді. Өз кезегінде, MDBX LMDB-ге қарағанда жылдамырақ және сенімдірек және сонымен бірге өзінің ата-бабасының барлық негізгі қасиеттерін сақтайды, мысалы ACID және процессордың өзектері бойынша сызықтық масштабтаумен блокталмаған оқулар.

MDBX мен LMDB арасындағы ең маңызды айырмашылықтар:

  • Негізінен код сапасына, тестілеуге және автоматты тексерулерге көбірек көңіл бөлінеді.
  • Параметрлерді тексеруден дерекқор құрылымдарының ішкі аудитіне дейін жұмыс кезінде айтарлықтай көбірек бақылау.
  • Автоматты ықшамдау және дерекқор өлшемін автоматты басқару.
  • 32 биттік және 64 биттік жинақтарға арналған бірыңғай дерекқор пішімі.
  • Диапазондар бойынша іріктеме көлемдерін бағалау (диапазон сұрауын бағалау).
  • Құймақтардан екі есе үлкен кілттерге және пайдаланушы таңдайтын дерекқор бетінің өлшеміне қолдау көрсету.

libmdbx шығару үміткері MDBX және MithrilDB жобаларын бөлу үшін 2019 жылдың тамызында қабылданған шешімнің нәтижесі болып табылады. Сонымен қатар, libmdbx (рационалды) максималды техникалық қарызды жоюға және кітапхананы тұрақтандыруға шешім қабылдады. Іс жүзінде белгіленген бағытта бастапқыда болжанған және жоспарланғаннан 2-3 есе көп орындалды:

  • macOS және екінші деңгейлі платформаларға қолдау көрсетілді: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Қажет болса, AIX және HP-UX қолдауын қосуға болады.
  • Код Анықталмаған мінез-құлық дезинфекциялау құралы және мекенжай санитариясы арқылы тазартылды, "-Wpedantic" көмегімен құрылыс кезіндегі барлық ескертулер, Coverity статикалық анализаторының барлық ескертулері және т.б. жойылды.
  • Жаңарту API сипаттамалары.
  • Енгізу жеңілдігі үшін бастапқы кодты біріктіру (біріктіру).
  • CҚолдау жасау.
  • Кірістірілген транзакцияларды қолдау.
  • ОЖ қайта жүктелгенін анықтау үшін bootid пайдалану (лас дерекқорды тоқтату).
  • Жаңартылған/ескі беттерді және кеңейтілген транзакция туралы ақпаратты соңына дейін санау.
  • Үйлесімді режимде бұрыннан ашық дерекқорға қосылу үшін MDBX_ACCEDE опциясы.
  • Пайдаланыңыз OFD блоктауы қол жетімді болғанда.
  • Құбырдағы ыстық резервтік көшірме.
  • Мамандандырылған оңтайландырылған ішкі сұрыптау алгоритмі («qsort()» қарағанда 2-3 есе жылдам және «std::sort()» қарағанда 30% жылдамырақ).
  • Кілттің максималды ұзындығы ұлғайтылды.
  • Алдын ала оқуды автоматты басқару (жадтағы деректер қоры файлдарын кэштеу стратегиясы).
  • Агрессивті және жылдамырақ автоматты жинақтау.
  • B+ ағаш беттерін біріктірудің оңтайлы стратегиясы.
  • Жергілікті емес файлдық жүйелерді басқару (NFS, Samba және т.б.) дұрыс пайдаланылмаса, дерекқордың зақымдалуын болдырмау.
  • Тесттер жиынтығы кеңейтілді.

libmdbx «келесі» нұсқасын әзірлеу жеке жоба ретінде жалғасады MithrilDB, ал MDBX «ағымдағы» нұсқасының даму векторы мүмкіндіктер жинағын қатыру және оны тұрақтандыруға бағытталған. Бұл шешім үш себеп бойынша қабылданды:

  • Толық үйлесімсіз: MithrilDB барлық жоспарланған мүмкіндіктерді жүзеге асыру үшін басқа (үйлесімсіз) дерекқор файл пішімін және басқа (үйлесімді емес) API қажет етеді.
  • Жаңа бастапқы код: MithrilDB бастапқы коды LMDB-ден тәуелсіз лицензияланған және жобаның өзі басқа лицензия бойынша жарияланады деп жоспарлануда (мақұлдаған НЕМЕСЕ Apache 2.0 лицензиясы емес OpenLDAP қоғамдық лицензиясы).
  • Бөлу ықтимал шатасуларды болдырмайды, көбірек сенімділікті енгізеді және жобалардың тәуелсіз жолын қамтамасыз етеді.

MithrilDB, MDBX сияқты, сондай-ақ негізделген ағаш B+ сонымен қатар MDBX және LMDB бірқатар негізгі кемшіліктерін жоя отырып, өте жоғары өнімділікке ие болады. Атап айтқанда, қоқыс өңдеу ұзақ оқу транзакциялары арқылы бұғатталғандықтан, дерекқордың «ісінуі» ретінде көрінетін «ұзақ оқу» проблемасы жойылады. Жаңа MithrilDB мүмкіндіктері мыналарды қамтиды:

  • Дерекқорды бірнеше гетерогенді тасымалдағыштарда орналастыруды қолдау: HDD, SSD және тұрақты жад.
  • «Бағалы» және «төмен құнды», «ыстық», «жылы» және «суық» деректер үшін оңтайлы стратегиялар.
  • Дерекқордың тұтастығын бақылау үшін Merkle ағашын пайдалану.
  • WAL қолданбасын қосымша пайдалану және деректер тұтастығына кепілдік беретін жазуды қажет ететін сценарийлердегі өнімділікті айтарлықтай жақсарту.
  • Деректерді дискілерге тапсырудағы жалқау.

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

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