ஐந்து வருட வளர்ச்சிக்குப் பிறகு, இரண்டாவது libmdbx 1.0 வெளியீடு கேண்டிடேட் வெளியிடப்பட்டது

கிடைக்கும் для тестирования второй кандидат в релизы библиотеки libmdbx с реализацией высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение. Текущая версия (0.5) является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки. Код libmdbx வழங்கியது под лицензией OpenLDAP Public License.

Библиотека MDBX является существенно переработанным ответвлением от எல்எம்டிபி — அடிப்படையிலான "முக்கிய மதிப்பு" வகுப்பின் பரிவர்த்தனை உட்பொதிக்கப்பட்ட DBMS மரம் B+ இல்லாமல் செயலில் பதிவு செய்தல், которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надёжнее LMDB, и при этом сохраняет все ключевые возможности своего прародителя, такие как ACID и неблокирующее чтение с линейным масштабированием по ядрам CPU.

MDBX மற்றும் LMDB இடையே உள்ள மிக முக்கியமான வேறுபாடுகள்:

  • அடிப்படையில், குறியீட்டின் தரம், சோதனை மற்றும் தானியங்கி சோதனைகள் ஆகியவற்றில் அதிக கவனம் செலுத்தப்படுகிறது.
  • செயல்பாட்டின் போது குறிப்பிடத்தக்க அளவு கட்டுப்பாடு, அளவுருக்களை சரிபார்ப்பது முதல் தரவுத்தள கட்டமைப்புகளின் உள் தணிக்கை வரை.
  • தானியங்கு சுருக்கம் மற்றும் தானியங்கி தரவுத்தள அளவு மேலாண்மை.
  • 32-பிட் மற்றும் 64-பிட் அசெம்பிளிகளுக்கான ஒற்றை தரவுத்தள வடிவம்.
  • வரம்புகள் மூலம் மாதிரி தொகுதிகளின் மதிப்பீடு (வரம்பு வினவல் மதிப்பீடு).
  • பான்கேக்குகளை விட இரண்டு மடங்கு பெரிய விசைகளுக்கான ஆதரவு மற்றும் பயனர் தேர்ந்தெடுக்கும் தரவுத்தள பக்க அளவு.

Выпущенный кандидат в релизы libmdbx является результатом принятого в августе 2019 решения о разделении проектов MDBX и MithrilDB. При этом в libmdbx было решено устранить (рациональный) максимум технического долга и стабилизировать библиотеку. По факту в обозначенном направлении сделано в 2-3 раза больше, чем оценивалось и планировалось исходно:

  • Реализована поддержка macOS и платформ «второго эшелона»: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Поддержка AIX и HP-UX может быть добавлена при необходимости.
  • Проведена санация кода при помощи Undefined Behavior Sanitizer и Address Sanitizer, устранены все предупреждения при сборке с «-Wpedantic», все предупреждения Coverity Static Analyzer и т.д.
  • புதுப்பிக்கவும் API விளக்கங்கள்.
  • Слияние (амальгамация) исходного кода для удобства встраивания.
  • சிஎம் ஆதரவு.
  • உள்ளமை பரிவர்த்தனைகளுக்கான ஆதரவு.
  • OS மறுதொடக்கம் செய்யப்பட்டதா என்பதைத் தீர்மானிக்க bootid ஐப் பயன்படுத்துதல் (அழுக்கு தரவுத்தள நிறுத்தம்).
  • Сквозной подсчёт обновлённых/старых страниц и расширенная информация о транзакциях.
  • இணக்கமான பயன்முறையில் ஏற்கனவே திறந்திருக்கும் தரவுத்தளத்துடன் இணைப்பதற்கான விருப்பம் MDBX_ACCEDE.
  • பயன்படுத்த OFD தடுப்பு கிடைக்கும் போது.
  • குழாயில் சூடான காப்புப்பிரதி.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее «qsort()» и до 30% быстрее «std::sort()»).
  • அதிகபட்ச விசை நீளம் அதிகரிக்கப்பட்டுள்ளது.
  • முன்னோக்கி வாசிப்பதற்கான தானியங்கி கட்டுப்பாடு (நினைவகத்தில் தரவுத்தள கோப்பு கேச்சிங் உத்தி).
  • அதிக ஆக்ரோஷமான மற்றும் வேகமான தானியங்கு சுருக்கம்.
  • B+ ட்ரீ பக்கங்களை இணைப்பதற்கான மிகவும் உகந்த உத்தி.
  • Контроль нелокальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • சோதனைகளின் தொகுப்பு விரிவாக்கப்பட்டுள்ளது.

libmdbx இன் "அடுத்த" பதிப்பின் உருவாக்கம் ஒரு தனி திட்டமாக தொடரும் மித்ரில்டிபி, MDBX இன் "தற்போதைய" பதிப்பின் டெவலப்மெண்ட் வெக்டார் அம்சத் தொகுப்பை முடக்கி அதை நிலைப்படுத்துவதை நோக்கமாகக் கொண்டுள்ளது. இந்த முடிவு மூன்று காரணங்களுக்காக எடுக்கப்பட்டது:

  • முற்றிலும் பொருந்தாதது: MithrilDB க்கு வேறுபட்ட (பொருந்தாத) தரவுத்தள கோப்பு வடிவம் மற்றும் திட்டமிட்ட அனைத்து அம்சங்களையும் செயல்படுத்த வேறுபட்ட (பொருந்தாத) API தேவைப்படுகிறது.
  • புதிய மூலக் குறியீடு: MithrilDB மூலக் குறியீடு LMDB இலிருந்து சுயாதீனமாக உரிமம் பெற்றது, மேலும் திட்டமே வேறு உரிமத்தின் கீழ் வெளியிட திட்டமிடப்பட்டுள்ளது (அங்கீகரித்தது அல்லது ஒருவேளை лицензией Apache 2.0, а не OpenLDAP பொது உரிமம்).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определённости и обеспечить независимость пути развития проектов.

MDBX போன்ற MithrilDB ஐ அடிப்படையாகக் கொண்டது மரம் B+ மேலும் MDBX மற்றும் LMDB இன் பல அடிப்படைக் குறைபாடுகளை நீக்கும் அதே வேளையில், மிக உயர்ந்த செயல்திறனைக் கொண்டிருக்கும். குறிப்பாக, நீண்ட வாசிப்பு பரிவர்த்தனைகளால் குப்பை செயலாக்கம் தடுக்கப்படுவதால் தரவுத்தளத்தின் "வீக்கமாக" வெளிப்படும் "நீண்ட வாசிப்பு" சிக்கல் நீக்கப்படும். புதிய MithrilDB அம்சங்கள் பின்வருமாறு:

  • Поддержка размещения БД на нескольких разнородных носителях: HDD, SSD и энергонезависимой памяти.
  • Оптимальные стратегии для «ценных» и «малоценных», для «горячих», «теплых» и «холодных» данных.
  • Использование Merkle tree для контроля целостности БД.
  • Опциональное использование WAL и существенно более высокая производительно в сценариях с интенсивной записью и гарантиями на целостность данных.
  • Ленивая догоняющая фиксация данных на дисках.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்