Суулгасан DBMS-ийн хувилбар libmdbx 0.13.2

libmdbx 0.13.2 (MDBX) хувилбар хэвлэгдэн гарсан бөгөөд энэ нь өндөр хүчин чадалтай авсаархан суулгагдсан түлхүүр утгын мэдээллийн санг хэрэгжүүлдэг. libmdbx кодыг Apache 2.0 лицензийн дагуу түгээдэг. Одоогийн бүх үйлдлийн системүүд болон архитектурууд, мөн Оросын Elbrus 2000 нь дэмжигддэг. libmdbx нь C++-д зориулсан хөгжүүлсэн API-г санал болгож, Rust, Haskell, Python, NodeJS, Ruby, Go, Nim хэлийг сонирхогчдод дэмждэг. , Дено, Скала.

Түүхийн хувьд libmdbx нь LMDB DBMS-ийн гүн гүнзгий дахин боловсруулалт бөгөөд найдвартай байдал, онцлог шинж чанар, гүйцэтгэлээрээ өвөг дээдсээсээ давуу юм. LMDB-тэй харьцуулахад libmdbx нь кодын чанар, API тогтвортой байдал, туршилт, автомат шалгалт зэрэгт ихээхэн ач холбогдол өгдөг. Зарим сэргээх боломж бүхий мэдээллийн сангийн бүтцийн бүрэн бүтэн байдлыг шалгах хэрэгслийг нийлүүлсэн. Технологийн хувьд libmdbx нь CPU-ийн цөмд шугаман масштабтай ACID, хүчтэй өөрчлөлтийн цуваа, блоклохгүй унших боломжийг санал болгодог. Автомат нягтаршуулах, өгөгдлийн сангийн хэмжээг автоматаар удирдах, хүрээний асуулгын тооцооллыг дэмждэг.

Үндсэн өөрчлөлтүүд:

  • Нарийн төвөгтэй хувилбаруудад хуудасны жагсаалтыг буцаах/ тавих үед GC шинэчлэлтийг хурдасгана уу. Өмнө нь идэвхгүй болгосон туршилтын залруулах санал хүсэлтийн горимыг сайжруулж, идэвхжүүлсэн. Энэ нь нэгдмэл байдлыг үндсээр нь сайжруулсан (дахин оролдлогын тоог бууруулсан), мөн ховор тохиолдлуудад гүйлгээ хийх үед (MDBX_PROBLEM алдаа буцаах үед) "гогцоо" үүсгэдэг согогийг арилгасан.
  • CMake бүтээх скриптүүд нь C23 стандартыг агуулдаг.
  • Хосолсон char/wchar_t функцүүдэд T-макро нэмсэн.
  • C++ API дээр үүрлэсэн бичих гүйлгээний дэмжлэгийг нэмсэн.
  • Утга зүйн хувилбарын тодорхойлолтын хоёр дахь хэвлэлд ("Утгын хувилбар гаргах 2") шилжих ажил дуусч, хувилбарын мэдээллийг VERSION.json руу экспортлохыг баталгаажуулсан.
  • Дахин бүтээгдэхийн тулд SOURCE_DATE_EPOCH орчны хувьсагчийн дэмжлэгийг нэмсэн. MDBX_BUILD_TIMESTAMP дэмжлэг хэвээр байгаа бөгөөд энэ хувьсагч давуу эрхтэй болно.
  • MDBX_BUILD_METADATA сонголтоор дамжуулан libmdbx бүтээх талаар нэмэлт мэдээллийг зааж өгөх боломжийг нэмсэн. Одоо заасан мэдээллийг зүгээр л номын санд mdbx_build.metadata утга болгон оруулах бөгөөд ирээдүйд багц үүсгэх гэх мэтийг ашиглах болно.
  • API-аас буцаж ирсэн алдааны бүртгэлийг нэмсэн. Одоо үүнийг хийхийн тулд MDBX_LOG_DEBUG (бүртгэлийн алдааг хасах MDBX_NOTFOUND) эсвэл MDBX_LOG_TRACE (бүх алдаа, түүнчлэн MDBX_RESULT_TRUE) бүртгэлийн түвшинг тохируулахад хангалттай.
  • Зан төлөвийн өөрчлөлт:
    • mdbx::cursor::get_multiple_samelength() аргыг нэмж, mdbx::txn::put_multiple_samelength() гэж өөрчилсөн.
    • C++ API нийцтэй байдлын хувьд MDBX_GET_MULTIPLE үйлдэл нь одоо түлхүүрийн утгыг өөрөө буцаадаг.
    • mdbx::env::геометрийн хэмжээний тогтмолуудын хувьд үндсэн төрлийг гарын үсэггүй size_t-ээс тэмдэгт intptr_t болгон өөрчилсөн.
    • CRT-ийн оронд ntdll-г ашиглах сонголт нь зөвхөн C++ API-г идэвхгүй болгох үед л хийгддэг.
    • mdbx_txn_commit()-д дамжуулагдсан тасалдсан/тасарсан уншсан гүйлгээний санах ойг чөлөөлөхийг баталгаажуулдаг. API конвенц нь ийм гүйлгээг mdbx_txn_abort() ашиглан гаргахыг шаарддаг бөгөөд энэ нь mdbx_txn_commit() нь ийм тохиолдолд гүйлгээг цуцлахгүйгээр алдаа гаргахад хүргэдэг. Үүний үр дүнд програмын алдаанаас болж санах ой алдагдаж, зан үйлийн өөрчлөлтийг өдөөсөн.
    • Тодорхойлогдсон бол __deprecated_enum макро ашиглах.
    • CMake ашиглан бүтээхдээ CMAKE_C_STANDARD дээр үндэслэн Си хэлний стандартыг сонгосон.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх