انتشار DBMS جاسازی شده فشرده libmdbx 0.9.1

منتشر شد نسخه کتابخانه 0.9.1 libmdbx (MDBX) اجرای یک پایگاه داده کلید-مقدار جاسازی شده با کارایی بالا و فشرده. کد libmdbx تحت یک مجوز توزیع می شود مجوز عمومی OpenLDAP.

نسخه فعلی مصالحه ای بین قصد انتشار یک نسخه پایدار طولانی مدت 1.0 با پشتیبانی کامل ++C و عدم تمایل به تاخیر در انتشار به دلیل عدم آمادگی برای مسدود کردن API جدید C++ است. نسخه ارائه شده نتیجه 9 ماه کار با هدف تثبیت کتابخانه و بهبود قابلیت استفاده آن است و همچنین شامل یک نسخه اولیه است. C++ API.

کتابخانه libmdbx فقط یک "چنگال" نیست، بلکه یک نسل دوباره طراحی شده است. LMDB - DBMS جاسازی شده تراکنشی از کلاس «کلید-مقدار» بر اساس درخت B+ بدون ثبت پیشگیرانه، که به فرآیندهای چند رشته ای اجازه می دهد تا به طور رقابتی و کارآمد با یک پایگاه داده مشترک (غیر شبکه ای) محلی بدون فرآیند سرور اختصاصی کار کنند. libmdbx اساسا گسترش می یابد توانایی های جد خود، در حالی که به طور همزمان معایب را حذف یا کاهش می دهد. در عین حال، به گفته توسعه دهندگان، libmdbx کمی سریعتر و قابل اعتمادتر از LMDB است.

libmdbx پیشنهاد می کند ACID، سریال سازی دقیق تغییرات و خواندن غیر مسدود کننده با مقیاس خطی در سراسر هسته های CPU. نتایج تست عملکرد (ارسال درخواست‌های خواندن/جستجوی موازی در رشته‌های 1-2-4-8 در CPU i7-4600U با 2 هسته فیزیکی در حالت HyperThread 4 رشته‌ای):

انتشار DBMS جاسازی شده فشرده libmdbx 0.9.1

مهمترین تفاوت های MDBX و LMDB:

  • اساساً توجه بیشتری به کیفیت کد، سازگاری API، آزمایش و بررسی خودکار می شود.
  • کنترل قابل توجهی بیشتر در طول عملیات، از بررسی پارامترها تا ممیزی داخلی ساختارهای پایگاه داده.
  • فشرده سازی خودکار و مدیریت خودکار اندازه پایگاه داده.
  • یک قالب پایگاه داده واحد برای مجموعه های 32 بیتی و 64 بیتی.
  • برآورد حجم نمونه بر اساس محدوده (تخمین محدوده پرس و جو).
  • پشتیبانی از دو برابر کلیدهای طولانی و اندازه صفحه پایگاه داده قابل انتخاب توسط کاربر.
  • ابزاری برای بررسی یکپارچگی ساختار پایگاه داده با برخی از قابلیت های بازیابی.

نوآوری ها و پیشرفت های اصلی پس از آن اخبار قبلی با معرفی نسخه 0.5 در ژانویه 2020:

  • یک سیستم باز برای پشتیبانی سریع و پاسخ به سوالات ایجاد شده است. گروه تلگرام.
  • بیش از ده ها خطا و کاستی برطرف شده است (نگاه کنید به. تغییرات ثبت شده).
  • بسیاری از اشتباهات املایی و املایی رفع شده است و بهبودهای زیبایی متعددی انجام شده است.
  • سناریوهای آزمایشی گسترش یافته است.
  • پشتیبانی از iOS، اندروید، بیلد روت, مسلم, uClibc, WSL1 и شراب.
  • پیش نمایش C++ API منتشر شد یک فایل هدر.
  • مستندات داخلی با فرمت Doxygen و تولید خودکار مستندات آنلاین.
  • تولید خودکار آرشیوها با متون منبع ادغام شده ارائه شده است.
  • اضافه شدن پشتیبانی برای آماده سازی تراکنش ها و مکان نماها، زمینه های کاربر برای تراکنش ها و مکان نماها.
  • روش‌های اضافی برای کنترل یکپارچگی ارجاعی در عکس‌های فوری MVCC B+tree پیاده‌سازی شده‌اند.
  • پشتیبانی اضافه شده برای بررسی یک عکس فوری MVCC از پایگاه داده، قابل دسترسی از طریق هر صفحه متا با قابلیت تعویض برای بازیابی.
  • پشتیبانی اجرا شده برای بازگشایی پایگاه داده از یک فرآیند برای اهداف آزمایشی و غیره.
  • پردازش خودکار گزینه MDBX_NOSUBDIR هنگام باز کردن یک پایگاه داده انجام می شود.
  • توابع اضافه شده برای تولید کلیدهای عدد صحیح از مقادیر ممیز شناور و اعداد "جهانی" جاوا اسکریپت.
  • در مجموع، 430 تغییر در 93 پرونده ایجاد شد، بیش از 25 هزار خط اضافه شد، بیش از 8.5 هزار خط حذف شد.

توسعه بعدی libmdbx بر روی API نهایی C++، تثبیت بیشتر کد پایه، بهبود قابلیت استفاده از کتابخانه و بسته بندی برای توزیع های محبوب لینوکس تمرکز خواهد کرد. در میان بهبودهای پیشنهادی، شایان ذکر است پشتیبانی از کلیدها در قالب است بسته پیام.

منبع: opennet.ru

اضافه کردن نظر