انتشار DBMS جاسازی شده با کارایی بالا libmdbx 0.11.3

کتابخانه libmdbx 0.11.3 (MDBX) با اجرای یک پایگاه داده کلید-مقدار فشرده و فشرده با کارایی بالا منتشر شد. کد libmdbx تحت مجوز عمومی OpenLDAP مجوز دارد. تمام سیستم‌عامل‌ها و معماری‌های کنونی و همچنین Elbrus 2000 روسی پشتیبانی می‌شوند. در پایان سال 2021، libmdbx به عنوان پشتیبان ذخیره‌سازی در دو سریع‌ترین کلاینت اتریوم - Erigon و جدید "Shark" استفاده می‌شود. اطلاعات، مشتری اتریوم با بالاترین عملکرد است.

از لحاظ تاریخی، libmdbx یک طراحی مجدد عمیق از LMDB DBMS است و از نظر قابلیت اطمینان، مجموعه ویژگی‌ها و عملکرد از پیشینیان خود پیشی می‌گیرد. در مقایسه با LMDB، libmdbx تاکید زیادی بر کیفیت کد، پایداری API، تست و بررسی خودکار دارد. ابزاری برای بررسی یکپارچگی ساختار پایگاه داده با برخی از گزینه های بازیابی ارائه شده است.

از نظر فناوری، libmdbx ACID، سریال‌سازی تغییرات قوی و خواندن غیر مسدودکننده را با مقیاس‌بندی خطی در هسته‌های CPU ارائه می‌دهد. فشرده سازی خودکار، مدیریت خودکار اندازه پایگاه داده، و برآورد محدوده پرس و جو پشتیبانی می شود. از سال 2016، این پروژه توسط Positive Technologies تامین مالی شده و از سال 2017 در محصولات خود استفاده شده است.

libmdbx یک API ++C و همچنین اتصالات زبانی با پشتیبانی علاقه مندان را برای Rust، Haskell، Python، NodeJS، Ruby، Go و Nim ارائه می دهد.

نوآوری ها، بهبودها و اصلاحات عمده اضافه شده از اخبار قبلی در 11 اکتبر:

  • C++ API آماده برای استفاده در نظر گرفته می شود.
  • به روز رسانی داده های GC هنگام انجام تراکنش های بزرگ به طور قابل توجهی تسریع شده است، که به ویژه هنگام استفاده از libmdbx در اکوسیستم اتریوم بسیار مهم است.
  • امضای داخلی قالب پایگاه داده برای پشتیبانی از به روز رسانی خودکار تغییر یافته است که برای کاربران کاملاً شفاف است. این به شما امکان می دهد پیام های مثبت کاذب در مورد خرابی پایگاه داده را زمانی که نسخه های قدیمی کتابخانه برای خواندن تراکنش های ثبت شده توسط نسخه های فعلی استفاده می شود، حذف کنید.
  • توابع mdbx_env_get_syncbytes()، mdbx_env_get_syncperiod() و mdbx_env_get_syncbytes() اضافه شد. پشتیبانی برای عملیات MDBX_SET_UPPERBOUND اضافه شد.
  • تمام هشدارها هنگام ساخت با همه کامپایلرهای پشتیبانی شده در حالت های C++ 11/14/17/20 حذف شده اند. سازگاری با کامپایلرهای قدیمی تضمین شده است: صدای زنگ از 3.9 شروع می شود، gcc از 4.8 شروع می شود، از جمله مونتاژ با استفاده از cdevtoolset-9 برای CentOS/RHEL 7.
  • رفع امکان تداخل صفحه متا پس از تغییر دستی به یک متا صفحه خاص با استفاده از ابزار mdbx_chk.
  • رفع خطای غیرمنتظره MDBX_PROBLEM هنگام بازنویسی صفحات متا قدیمی.
  • در صورت تطابق نادرست هنگام پردازش درخواست MDBX_GET_BOTH، برگشت MDBX_NOTFOUND رفع شد.
  • رفع خطای کامپایل در لینوکس در غیاب فایل‌های هدر با توضیحات رابط‌ها با هسته.
  • تداخل بین پرچم داخلی MDBX_SHRINK_ALLOWED و گزینه MDBX_ACCEDE رفع شد.
  • چندین بررسی غیرضروری از بین رفته است.
  • بازگشت غیرمنتظره MDBX_RESULT_TRUE از تابع mdbx_env_set_option() رفع شد.
  • در مجموع، بیش از 90 تغییر در 25 فایل ایجاد شد، ~ 1300 خط اضافه شد، ~ 600 خط حذف شد.

منبع: opennet.ru

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