اعليٰ ڪارڪردگي ايمبيڊڊ ڊي بي ايم ايس libmdbx 0.10.4 ۽ libfpta 0.3.9 جو رليز

libmdbx 0.10.4 (MDBX) لائبريريون جاري ڪيون ويون آھن ھڪڙي اعليٰ ڪارڪردگيءَ واري ڪمپيڪٽ ايمبيڊڊ ڪيئي-ويليو ڊيٽابيس جي نفاذ سان، ۽ لاڳاپيل libfpta 0.3.9 (FPTA) لائبريري، جيڪا ثانوي ۽ جامع انڊيڪسز سان گڏ ڊيٽا جي ٽيبلولر نمائندگي لاڳو ڪري ٿي. MDBX جي چوٽي تي. ٻئي لائبريريون OSI منظور ٿيل لائسنس تحت ورهايل آهن. سڀ موجوده آپريٽنگ سسٽم ۽ فن تعمير جي حمايت ڪئي وئي آهي، انهي سان گڏ روسي ايلبرس 2000.

تاريخي طور تي، libmdbx LMDB DBMS جي هڪ گہرائي ٻيهر ڪم ڪرڻ آهي ۽ قابل اعتماد، خصوصيت سيٽ ۽ ڪارڪردگي ۾ پنهنجي اباڻي کان اعليٰ آهي. LMDB جي مقابلي ۾، libmdbx ڪوڊ جي معيار، API استحڪام، جاچ، ۽ خودڪار چيڪن تي تمام گهڻو زور ڏئي ٿو. ڊيٽابيس جي ڍانچي جي سالميت کي جانچڻ لاءِ هڪ افاديت ڪجهه وصولي جي صلاحيتن سان فراهم ڪئي وئي آهي.

ٽيڪنالاجي جي لحاظ کان، libmdbx پيش ڪري ٿو ACID، مضبوط تبديلي سيريلائيزيشن، ۽ سي پي يو ڪور ۾ لڪير اسڪيلنگ سان غير بلاڪنگ ريڊز. خودڪار ٺهڪندڙ، خودڪار ڊيٽابيس جي ماپ مينيجمينٽ، ۽ رينج جي سوال جي تخميني جي حمايت ڪئي وئي آھي. 2016 کان وٺي، منصوبن جي مالي مدد ڪئي وئي آهي مثبت ٽيڪنالاجيز ۽ 2017 کان وٺي ان جي شين ۾ استعمال ڪيو ويو آهي.

libmdbx هڪ C++ API پيش ڪري ٿو، انهي سان گڏ رسٽ، هاسڪيل، پٿون، نوڊ جي ايس، روبي، گو، ۽ نِم لاءِ پرجوش-سپورٽ ٿيل ٻولي پابند. libfpta لاءِ، صرف API وضاحت عوامي طور تي C/C++ هيڊر فائل جي صورت ۾ موجود آهي.

9 مئي تي پوئين خبرن کان وٺي مکيه جدت، سڌارا ۽ سڌارا شامل ڪيا ويا:

  • ٻيهر پيدا ٿيندڙ تعميرات کي فعال ڪري ٿو.
  • هڪ بگ کي درست ڪيو جنهن جي ڪري، تمام ناياب حالتن ۾، هڪ لوپ / منجمد ٿي سگهي ٿو ٽرانزيڪشن ڪمٽ دوران. مسئلي جي نشاندهي ڪئي وئي مثبت ٽيڪنالاجي ماهرن پاران انهن جي پنهنجي مصنوعات جي اندروني جاچ دوران.
  • ٽيسٽ کي بهتر ڪيو ويو آهي ۽ ٽيسٽ جي منظرنامي کي وڌايو ويو آهي سڀني پهچندڙ غير آئسومورفڪ رياستن کي چيڪ ڪرڻ لاءِ پيج ٽري ۽ ڊيٽابيس اندر GC مواد.
  • C++ API ۾، هڪ اضافي “noexcept” مقرر ڪيو ويو آهي، “cursor::erase()” طريقي لاءِ اضافي اوورلوڊ شامل ڪيا ويا آهن، بفرز تي عمل درآمد کي ”std::string“ جي استعمال کان بچايو ويو آهي ترتيب کي يقيني بڻائڻ لاءِ. (CLANG libstdc++ لاءِ لاڳاپيل).
  • گندي صفحي جي اسپيلنگ الگورٿم ۾ هڪ رجعت (تبديل ٿيل ڊيٽابيس صفحن جو چونڊيل خارج ٿيڻ) جيڪو هڪ نادر غير متوقع غلطي MDBX_PROBLEM پاران ظاهر ڪيو ويو جڏهن وڏي ٽرانزيڪشن ۾ ڊيٽا کي تبديل ڪيو ويو آهي.
  • ڊيٽابيس کي عمدي نقصان جي صورت ۾ استحڪام کي يقيني بڻائڻ لاءِ ڪيترن ئي چيڪن جي اضافي سان گڏ هڪ مرحلو ٽيسٽ ڪيو ويو.
  • مقرر ٿيل معمولي ڊيڄاريندڙ Undefined Behavior Sanitizer ۽ Coverity Scan مسئلا.
  • لائبريري جي پراڻن ورزن پاران ٺاهيل ڊيٽابيس تصويرن جي اندر نيسٽ ٿيل صفحن ۾ پراڻي ۽ هاڻي استعمال نه ٿيل اندروني پرچم ”P_DIRTY“ جي چڪاس ڪئي وئي آهي.
  • CMake اسڪرپٽ ۾، LTO (لنڪ-وقت جي اصلاح) لاءِ گھربل ڪمپلر اجزاء جي ڳولا کي بھتر ڪيو ويو آھي.
  • سمايل پڙهندڙن جو وڌ ۾ وڌ تعداد 32767 ڪيو ويو آهي.
  • بهتر ڪارڪردگي جڏهن Valgrind ۽ Address Sanitizer استعمال ڪندي.
  • ونڊوز تي، SDBX_NOTLS موڊ ۾ ڪم ڪرڻ دوران SRW-lock جو بار بار استعمال (ٿريڊ لوڪل اسٽوريج استعمال ڪرڻ کان سواءِ) ختم ڪيو ويو آهي، بوٽائڊ جنريشن کي مقرر ڪيو ويو آهي جيڪڏهن سسٽم جو وقت بدلجي ويو آهي، WSL1 ۽ WSL2 جي چڪاس کي بهتر ڪيو ويو آهي، ۽ DrvFS ذريعي نصب ڪيل پلان 9 تي ڊيٽابيس کوليو شامل ڪيو ويو آهي.
  • مجموعي طور، 160 فائلن ۾ 57 کان وڌيڪ تبديليون ڪيون ويون، ~ 5000 لائينون شامل ڪيون ويون، ~ 2500 ڊهي ويون.

مان خاص طور تي ايريگون پروجيڪٽ ٽيم (Ethereum ecosystem) جو شڪريو ادا ڪرڻ چاهيان ٿو انهن جي مدد لاءِ انهن جي انتهائي استعمال واري منظرنامي ۾ جانچ ڪرڻ ۾. اهو اهم آهي ته پنجن مهينن ۾ libmdbx v0.10.0 جي ڇڏڻ کان وٺي، هر ايريگون تنصيب ۾ 1-2 TB جي ڊيٽابيس جي مقدار سان (استعمال ٿيل 7٪ Ethereum نوڊس تي)، ڊيٽابيس جي ڪرپشن جي صرف ٽي رپورٽون مليون آهن، سڀئي جيڪو ظاهري سببن جي ڪري ٿيو، ۽ نه سافٽ ويئر جي غلطين جي ڪري: ٻن صورتن ۾ سبب RAM ناڪامي هئي، ٽئين ۾ BTRFS استعمال ڪندي اسٽوريج سب سسٽم جي مخصوص ترتيب ۾ ڊيٽا کي ري سيٽ ڪرڻ ۾ غلطي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو