உயர் செயல்திறன் உட்பொதிக்கப்பட்ட DBMS 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, வலுவான மாற்ற வரிசைப்படுத்தல் மற்றும் CPU கோர்கள் முழுவதும் லீனியர் ஸ்கேலிங் மூலம் தடுக்காத வாசிப்புகளை வழங்குகிறது. தானியங்குச் சுருக்கம், தானியங்கி தரவுத்தள அளவு மேலாண்மை மற்றும் வரம்பு வினவல் மதிப்பீடு ஆகியவை ஆதரிக்கப்படுகின்றன. 2016 முதல், திட்டங்கள் பாசிட்டிவ் டெக்னாலஜிஸ் மூலம் நிதியளிக்கப்பட்டு, 2017 முதல் அதன் தயாரிப்புகளில் பயன்படுத்தப்படுகின்றன.

libmdbx ஆனது C++ API மற்றும் ரஸ்ட், ஹாஸ்கெல், பைதான், நோட்ஜேஎஸ், ரூபி, கோ மற்றும் நிம் ஆகியவற்றிற்கான ஆர்வலர்-ஆதரவு மொழி பிணைப்புகளை வழங்குகிறது. libfpta க்கு, API விளக்கம் மட்டுமே C/C++ தலைப்புக் கோப்பு வடிவத்தில் பொதுவில் கிடைக்கும்.

மே 9 அன்று முந்தைய செய்தியிலிருந்து முக்கிய கண்டுபிடிப்புகள், மேம்பாடுகள் மற்றும் திருத்தங்கள் சேர்க்கப்பட்டன:

  • மீண்டும் உருவாக்கக்கூடிய கட்டமைப்பை செயல்படுத்துகிறது.
  • ஒரு பிழை சரி செய்யப்பட்டது, இதன் காரணமாக, மிகவும் அரிதான சூழ்நிலைகளில், பரிவர்த்தனையின் போது ஒரு வளையம்/முடக்கம் ஏற்படலாம். பாசிட்டிவ் டெக்னாலஜிஸ் நிபுணர்கள் தங்கள் சொந்த தயாரிப்புகளின் உள் சோதனையின் போது சிக்கலைக் கண்டறிந்தனர்.
  • சோதனைகள் மேம்படுத்தப்பட்டு, தரவுத்தளத்தில் உள்ள பக்க மரத்தின் அனைத்து ஐசோமார்பிக் அல்லாத நிலைகளையும் மற்றும் GC உள்ளடக்கங்களையும் சரிபார்க்க சோதனை காட்சிகள் விரிவாக்கப்பட்டுள்ளன.
  • C++ API இல், ஒரு கூடுதல் "noexcept" சரி செய்யப்பட்டது, "கர்சர்:: erase()" முறைக்கு கூடுதல் சுமைகள் சேர்க்கப்பட்டுள்ளன, சீரமைப்பை உறுதிசெய்ய "std:: string" ஐப் பயன்படுத்தாமல் பஃபர்களை செயல்படுத்துவது தவிர்க்கப்பட்டது. (CLANG libstdc++ க்கு தொடர்புடையது).
  • பெரிய பரிவர்த்தனைகளில் தரவை மாற்றும் போது MDBX_PROBLEM என்ற அரிதான எதிர்பாராத பிழையால் வெளிப்படுத்தப்பட்ட அழுக்கு பக்க ஸ்பில்லிங் அல்காரிதம் (மாற்றப்பட்ட தரவுத்தள பக்கங்களின் தேர்ந்தெடுக்கப்பட்ட வெளியேற்றம்) ஒரு பின்னடைவு நீக்கப்பட்டது.
  • தரவுத்தளத்திற்கு வேண்டுமென்றே சேதம் ஏற்பட்டால் நிலைத்தன்மையை உறுதிப்படுத்த பல காசோலைகளைச் சேர்த்து ஒரு கட்ட சோதனை மேற்கொள்ளப்பட்டது.
  • நிலையான சிறு எச்சரிக்கைகள் வரையறுக்கப்படாத நடத்தை சானிடைசர் மற்றும் கவர்ட்டி ஸ்கேன் சிக்கல்கள்.
  • நூலகத்தின் பழைய பதிப்புகளால் உருவாக்கப்பட்ட தரவுத்தளப் படங்களுக்குள் உள்ள உள்ளமைக்கப்பட்ட பக்கங்களில் காலாவதியான மற்றும் இனி பயன்படுத்தப்படாத "P_DIRTY" அகக் கொடியை சரிபார்ப்பது சரி செய்யப்பட்டது.
  • CMake ஸ்கிரிப்ட்களில், LTO (இணைப்பு நேர உகப்பாக்கம்) க்கு தேவையான கம்பைலர் கூறுகளுக்கான தேடல் மேம்படுத்தப்பட்டுள்ளது.
  • ஒரே நேரத்தில் படிப்பவர்களின் அதிகபட்ச எண்ணிக்கை 32767 ஆக அதிகரிக்கப்பட்டுள்ளது.
  • Valgrind மற்றும் AddressSanitizer ஐப் பயன்படுத்தும் போது மேம்படுத்தப்பட்ட செயல்திறன்.
  • விண்டோஸில், MDBX_NOTLS பயன்முறையில் (த்ரெட் லோக்கல் ஸ்டோரேஜைப் பயன்படுத்தாமல்) பணிபுரியும் போது SRW-lock இன் தொடர்ச்சியான பயன்பாடு நீக்கப்பட்டது, கணினி நேரம் மாறியிருந்தால் பூட்டிட் உருவாக்கம் சரி செய்யப்பட்டது, WSL1 மற்றும் WSL2 கண்டறியும் திறன் மேம்படுத்தப்பட்டுள்ளது. DrvFS வழியாக ஏற்றப்பட்ட திட்டம் 9 இல் ஒரு தரவுத்தளத்தைத் திறக்கவும் சேர்க்கப்பட்டது.
  • மொத்தத்தில், 160 கோப்புகளில் 57க்கும் மேற்பட்ட மாற்றங்கள் செய்யப்பட்டன, ~5000 வரிகள் சேர்க்கப்பட்டன, ~2500 நீக்கப்பட்டன.

தீவிர பயன்பாட்டுக் காட்சிகளில் சோதனை செய்வதில் உதவிய எரிகோன் திட்டக் குழுவிற்கு (Ethereum ecosystem) நன்றி தெரிவிக்க விரும்புகிறேன். libmdbx v0.10.0 வெளியான ஐந்து மாதங்களில், ஒவ்வொரு Erigon நிறுவலிலும் 1-2 TB தரவுத்தள அளவுடன் (7% Ethereum நோட்களில் பயன்படுத்தப்பட்டது), தரவுத்தள சிதைவு பற்றிய மூன்று அறிக்கைகள் மட்டுமே பெறப்பட்டன என்பது குறிப்பிடத்தக்கது. இதில் வெளிப்புற காரணங்களால் ஏற்பட்டது, மென்பொருள் பிழைகள் அல்ல: இரண்டு சந்தர்ப்பங்களில் காரணம் ரேம் தோல்விகள், மூன்றாவது BTRFS ஐப் பயன்படுத்தி சேமிப்பக துணை அமைப்பில் தரவை மீட்டமைப்பதில் பிழை.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்