विकासको पाँच वर्ष पछि, दोस्रो libmdbx 1.0 रिलीज उम्मेद्वार प्रकाशित गरिएको छ

उपलब्ध छ для тестирования второй кандидат в релизы библиотеки libmdbx с реализацией высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение. Текущая версия (0.5) является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки. Код libmdbx द्वारा वितरित под лицензией OpenLDAP Public License.

Библиотека MDBX является существенно переработанным ответвлением от LMDB - आधारित "कुञ्जी-मान" वर्गको लेनदेन इम्बेडेड DBMS रूख B+ बिना सक्रिय लगिङ, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надёжнее LMDB, и при этом сохраняет все ключевые возможности своего прародителя, такие как एसिड и неблокирующее чтение с линейным масштабированием по ядрам 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 विवरणहरू.
  • Слияние (амальгамация) исходного кода для удобства встраивания.
  • CMake समर्थन।
  • नेस्टेड लेनदेनको लागि समर्थन।
  • OS रिबुट भएको छ कि छैन भनेर निर्धारण गर्न bootid प्रयोग गर्दै (फोहोर डाटाबेस रोक्नुहोस्)।
  • Сквозной подсчёт обновлённых/старых страниц и расширенная информация о транзакциях.
  • विकल्प MDBX_ACCEDE मिल्दो मोडमा पहिले नै खुला डाटाबेसमा जडान गर्नको लागि।
  • प्रयोग गर्नुहोस् OFD अवरुद्ध उपलब्ध हुँदा।
  • पाइपमा तातो ब्याकअप।
  • Специализированный оптимизированный алгоритм внутренней сортировки (до 2-3 раз быстрее «qsort()» и до 30% быстрее «std::sort()»).
  • अधिकतम कुञ्जी लम्बाइ बढाइएको छ।
  • अगाडि पढ्ने स्वचालित नियन्त्रण (मेमोरीमा डाटाबेस फाइल क्यासिङ रणनीति)।
  • थप आक्रामक र छिटो स्वत-कम्प्याक्टिफिकेशन।
  • B+ रूख पृष्ठहरू मर्ज गर्नको लागि थप इष्टतम रणनीति।
  • Контроль нелокальных файловых систем (NFS, Samba и т.п.) для предотвращения повреждения БД при неверном использовании.
  • परीक्षणको सेट विस्तार गरिएको छ।

libmdbx को "अर्को" संस्करणको विकास छुट्टै परियोजनाको रूपमा जारी रहनेछ MithrilDB, जबकि MDBX को "वर्तमान" संस्करणको विकास भेक्टर सुविधा सेट फ्रिज गर्ने र यसलाई स्थिर गर्ने उद्देश्य हो। यो निर्णय तीन कारणको लागि गरिएको थियो:

  • पूर्ण रूपमा असंगत: MithrilDB लाई सबै योजनाबद्ध सुविधाहरू लागू गर्न फरक (असंगत) डाटाबेस फाइल ढाँचा र फरक (असंगत) API आवश्यक पर्दछ।
  • नयाँ स्रोत कोड: MithrilDB स्रोत कोड LMDB बाट स्वतन्त्र इजाजतपत्र गरिएको छ, र परियोजना आफैं एक फरक इजाजतपत्र (द्वारा स्वीकृत) अन्तर्गत प्रकाशित गर्ने योजना छ। वा IF лицензией Apache 2.0, а не OpenLDAP सार्वजनिक लाइसेन्स).
  • Разделение позволяет избежать потенциальную путаницу, внести больше определённости и обеспечить независимость пути развития проектов.

MithrilDB, MDBX जस्तै, पनि आधारित छ रूख B+ र MDBX र LMDB का धेरै आधारभूत बेफाइदाहरूलाई हटाउँदै अत्यधिक उच्च कार्यसम्पादन पनि हुनेछ। विशेष गरी, "लामो पढाइ" को समस्या, जुन डाटाबेसको "सुजन" को रूपमा प्रकट हुन्छ कि फोहोर प्रशोधन लामो पढ्ने लेनदेन द्वारा अवरुद्ध भएको तथ्यको कारणले गर्दा, हटाउनेछ। नयाँ MithrilDB सुविधाहरू समावेश:

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

स्रोत: opennet.ru

एक टिप्पणी थप्न