د پنځو کلونو پراختیا وروسته، د دویم libmdbx 1.0 خوشې کولو کاندید خپور شو

موجود для тестирования второй кандидат в релизы библиотеки libmdbx с реализацией высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение. Текущая версия (0.5) является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки. Код libmdbx لخوا توزیع شوی под лицензией OpenLDAP Public License.

Библиотека MDBX является существенно переработанным ответвлением от LMDB - د "کلیدي ارزښت" ټولګي پراساس د لیږد ایمبیډ شوي DBMS ونې B+ پرته فعال ننوتل, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надёжнее LMDB, и при этом сохраняет все ключевые возможности своего прародителя, такие как اسيد и неблокирующее чтение с линейным масштабированием по ядрам CPU.

د MDBX او LMDB تر منځ خورا مهم توپیرونه:

  • په بنسټیز ډول، د کوډ کیفیت، ازموینې او اتوماتیک چکونو ته ډیره پاملرنه کیږي.
  • د عملیاتو په جریان کې د پام وړ ډیر کنټرول، د پیرامیټونو چک کولو څخه د ډیټابیس جوړښتونو داخلي پلټنې پورې.
  • د اتوماتیک تړون کولو او اتوماتیک ډیټابیس اندازې مدیریت.
  • د 32-bit او 64-bit غونډو لپاره د واحد ډیټابیس بڼه.
  • د سلسلې په واسطه د نمونې حجم اټکل (د رینج پوښتنې اټکل).
  • د پینکیکونو او د کاروونکي د انتخاب وړ ډیټابیس پاڼې اندازې دوه چنده لوی کیلي لپاره ملاتړ.

Выпущенный кандидат в релизы 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 توضیحات.
  • Слияние (амальгамация) исходного кода для удобства встраивания.
  • د CMake ملاتړ.
  • د نیست شوي معاملو لپاره ملاتړ.
  • د بوټیډ کارول ترڅو معلومه کړي چې ایا OS ریبوټ شوی (د خندا ډیټابیس سټاپ).
  • Сквозной подсчёт обновлённых/старых страниц и расширенная информация о транзакциях.
  • په مناسب حالت کې د دمخه خلاص ډیټابیس سره وصل کولو لپاره MDBX_ACCEDE اختیار.
  • کارول د OFD بندول کله چې شتون ولري.
  • په پایپ کې ګرم بیک اپ.
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее «qsort()» и до 30% быстрее «std::sort()»).
  • د کیلي اعظمي اوږدوالی ډیر شوی.
  • مخکې د لوستلو اتوماتیک کنټرول (په حافظه کې د ډیټابیس فایل کیشینګ ستراتیژي).
  • ډیر تیریدونکی او ګړندی اتوماتیک تړون.
  • د B+ د ونې پاڼو د یوځای کولو لپاره خورا غوره ستراتیژي.
  • Контроль нелокальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • د ازموینو لړۍ پراخه شوې.

د libmdbx د "راتلونکي" نسخې پراختیا به د جلا پروژې په توګه دوام ومومي MithrilDB، پداسې حال کې چې د MDBX د "اوسني" نسخې پراختیا ویکتور هدف د فیچر سیټ منجمد کول او ثبات کول دي. دا پریکړه د دریو دلیلونو لپاره وشوه:

  • په بشپړ ډول متضاد: MithrilDB د ټولو پلان شوي ب featuresو پلي کولو لپاره مختلف (غیر متناسب) ډیټابیس فایل فارمیټ او مختلف (غیر متناسب) API ته اړتیا لري.
  • د نوي سرچینې کوډ: د MithrilDB سرچینې کوډ د LMDB څخه خپلواک جواز اخیستی شوی، او پروژه پخپله پالن شوې چې د یو بل جواز لاندې خپره شي (د تصویب لخوا یا IF лицензией Apache 2.0, а не OpenLDAP عامه جواز).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определённости и обеспечить независимость пути развития проектов.

MithrilDB، لکه MDBX، هم پر بنسټ والړ دی ونې B+ او هم به خورا لوړ فعالیت وړاندې کړي، پداسې حال کې چې د MDBX او LMDB یو شمیر بنسټیز زیانونه له منځه یوسي. په ځانګړې توګه، د "اوږدې لوستلو" ستونزه، چې ځان د ډیټابیس د "پړسوب" په توګه څرګندوي د دې حقیقت له امله چې د کثافاتو پروسس کول د اوږدې لوستلو معاملو لخوا بند شوي، به له منځه یوړل شي. د MithrilDB نوې ځانګړتیاوې په لاندې ډول دي:

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

سرچینه: opennet.ru

Add a comment