Өндөр хүчин чадалтай суулгагдсан DBMS libmdbx 0.11.3 хувилбар

libmdbx 0.11.3 (MDBX) номын сан нь өндөр хүчин чадалтай авсаархан суулгагдсан түлхүүр утгын мэдээллийн санг хэрэгжүүлснээр гарсан. libmdbx код нь OpenLDAP Public License-ийн дагуу лицензтэй. Одоогийн бүх үйлдлийн систем, архитектурууд, мөн Оросын Elbrus 2000-ийг дэмждэг. 2021 оны сүүлээр libmdbx-ийг Ethereum-ийн хамгийн хурдан хоёр үйлчлүүлэгч болох Erigon болон шинэ "Shark"-д хадгалах сан болгон ашигладаг. мэдээлэл нь хамгийн өндөр гүйцэтгэлтэй Ethereum үйлчлүүлэгч юм.

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

Технологийн хувьд libmdbx нь CPU-ийн цөмд шугаман масштабтай ACID, хүчтэй өөрчлөлтийн цуваа, блоклохгүй унших боломжийг санал болгодог. Автомат нягтаршуулах, өгөгдлийн сангийн хэмжээг автоматаар удирдах, хүрээний асуулгын тооцоолол зэргийг дэмждэг. 2016 оноос уг төслийг Positive Technologies компани санхүүжүүлж, 2017 оноос бүтээгдэхүүндээ ашиглаж байна.

libmdbx нь C++ API, мөн Rust, Haskell, Python, NodeJS, Ruby, Go, Nim-д зориулсан сонирхогчдын дэмждэг хэлний холболтыг санал болгодог.

11-р сарын XNUMX-ний өмнөх мэдээнээс хойш нэмсэн томоохон шинэчлэл, сайжруулалт, залруулга:

  • C++ API-г ашиглахад бэлэн гэж үзнэ.
  • Их хэмжээний гүйлгээ хийх үед GC-ийн өгөгдлийг шинэчлэх нь мэдэгдэхүйц хурдассан бөгөөд энэ нь Ethereum экосистемд libmdbx ашиглахад онцгой ач холбогдолтой юм.
  • Мэдээллийн сангийн форматын дотоод гарын үсэг нь автомат шинэчлэлтийг дэмжих үүднээс өөрчлөгдсөн бөгөөд энэ нь хэрэглэгчдэд бүрэн ил тод байх болно. Энэ нь номын сангийн хуучирсан хувилбаруудыг одоогийн хувилбараар бүртгэгдсэн гүйлгээг уншихад ашиглах үед мэдээллийн сангийн эвдрэлийн талаарх худал эерэг мессежийг арилгах боломжийг танд олгоно.
  • mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() болон mdbx_env_get_syncbytes() функцуудыг нэмсэн. MDBX_SET_UPPERBOUND үйлдлийн дэмжлэг нэмсэн.
  • C++ 11/14/17/20 горимд бүх дэмжигдсэн хөрвүүлэгчийг ашиглан бүтээх бүх анхааруулгыг устгасан. Хуучин хөрвүүлэгчтэй нийцтэй байх нь баталгаажсан: 3.9-аас эхлэн clang, 4.8-аас эхлэн gcc, CentOS/RHEL 9-д зориулсан cdevtoolset-7 ашиглан угсралт орно.
  • mdbx_chk хэрэглүүрийг ашиглан тодорхой мета хуудас руу гараар шилжсэний дараа мета хуудасны зөрчил үүсэх магадлалыг зассан.
  • Хуучин мета хуудсуудыг дарж бичихэд гэнэтийн MDBX_PROBLEM алдааг зассан.
  • MDBX_GET_BOTH хүсэлтийг боловсруулах үед таарахгүй байгаа тохиолдолд MDBX_NOTFOUND-г буцаахыг зассан.
  • Цөмтэй интерфэйсүүдийн тайлбар бүхий толгой файл байхгүйгээс Линукс дээрх эмхэтгэлийн алдааг зассан.
  • MDBX_SHRINK_ALLOWED дотоод туг болон MDBX_ACCEDE сонголтын хоорондох зөрчлийг зассан.
  • Хэд хэдэн шаардлагагүй баталгаажуулалтын шалгалтыг хассан.
  • mdbx_env_set_option() функцээс MDBX_RESULT_TRUE-ийн гэнэтийн өгөөжийг зассан.
  • Нийтдээ 90 файлд 25 гаруй өөрчлөлт хийж, ~1300 мөр нэмж, ~600-ыг устгасан.

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

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