ஐந்து வருட வளர்ச்சிக்குப் பிறகு libmdbx v1.0க்கான இரண்டாவது வெளியீடு வேட்பாளர்.

நூலகம் libmdbx எல்எம்டிபியின் குறிப்பிடத்தக்க வகையில் மறுவடிவமைப்பு செய்யப்பட்ட சந்ததியாகும் - மிக உயர்ந்த செயல்திறன் கொண்ட, கச்சிதமான உட்பொதிக்கப்பட்ட முக்கிய மதிப்பு தரவுத்தளமாகும்.
தற்போதைய பதிப்பு v0.5 ஒரு தொழில்நுட்ப வெளியீடாகும், இது எந்த மேம்பாடுகளையும் நிறைவு செய்ததையும், பொது இறுதி சோதனை மற்றும் நிலைப்படுத்துதலின் கட்டத்திற்கு மாறுவதையும் குறிக்கிறது.

எல்எம்டிபி அடிப்படையில் நன்கு அறியப்பட்ட பரிவர்த்தனை உட்பொதிக்கப்பட்ட முக்கிய மதிப்பு DBMS ஆகும் மரம் B+ இல்லாமல் செயலில் பதிவு செய்தல்உள்ளூரில் பகிரப்பட்ட (நெட்வொர்க் அல்ல) தரவுத்தளத்துடன் போட்டித்தன்மையுடனும் மிகவும் திறமையாகவும் செயல்பட பல-திரிக்கப்பட்ட செயல்முறைகளை இது அனுமதிக்கிறது. இதையொட்டி, MDBX LMDB ஐ விட வேகமானது மற்றும் நம்பகமானது, அதே நேரத்தில் libmdbx அதன் மூதாதையரின் அனைத்து முக்கிய அம்சங்களையும் தக்க வைத்துக் கொண்டுள்ளது. ACID மற்றும் CPU கோர்கள் முழுவதும் லீனியர் ஸ்கேலிங் மூலம் தடுக்காத வாசிப்புகள், மேலும் பல புதியவற்றையும் சேர்க்கிறது.

LMDB உடன் ஒப்பிடும்போது libmdbx இன் வேறுபாடுகள் மற்றும் மேம்பாடுகள் பற்றிய விளக்கம் ஒரு தனி கட்டுரைக்கு தகுதியானது (ஹப்ரே மற்றும் மீடியத்தில் வெளியிட திட்டமிடப்பட்டுள்ளது). இங்கே மிக முக்கியமான மற்றும் குறிப்பிடத்தக்கவற்றைக் குறிப்பிடுவது பொருத்தமானது:

  • அடிப்படையில், குறியீட்டின் தரம், சோதனை மற்றும் தானியங்கி சோதனைகள் ஆகியவற்றில் அதிக கவனம் செலுத்தப்படுகிறது.
  • செயல்பாட்டின் போது குறிப்பிடத்தக்க அளவு கட்டுப்பாடு, அளவுருக்களை சரிபார்ப்பது முதல் தரவுத்தள கட்டமைப்புகளின் உள் தணிக்கை வரை.
  • தானியங்கு சுருக்கம் மற்றும் தானியங்கி தரவுத்தள அளவு மேலாண்மை.
  • 32-பிட் மற்றும் 64-பிட் அசெம்பிளிகளுக்கான ஒற்றை தரவுத்தள வடிவம்.
  • வரம்புகள் மூலம் மாதிரி அளவை மதிப்பீடு செய்தல் (வரம்பு வினவல் மதிப்பீடு).
  • பான்கேக்குகளை விட இரண்டு மடங்கு பெரிய விசைகளுக்கான ஆதரவு மற்றும் பயனர் தேர்ந்தெடுக்கும் தரவுத்தள பக்க அளவு.

ஆகஸ்ட் 2019 இல் MDBX மற்றும் MithrilDB திட்டங்களைப் பிரிப்பதற்கான முடிவின் (கீழே காண்க) libmdbx வெளியீட்டு வேட்பாளர். அதே நேரத்தில், libmdbx (பகுத்தறிவு) அதிகபட்ச தொழில்நுட்பக் கடனை நீக்கி நூலகத்தை நிலைப்படுத்த முடிவு செய்தது. உண்மையில், ஆரம்பத்தில் மதிப்பிடப்பட்ட மற்றும் திட்டமிடப்பட்டதை விட நியமிக்கப்பட்ட திசையில் 2-3 மடங்கு அதிகமாக செய்யப்பட்டுள்ளது:

  • Mac OS மற்றும் இரண்டாம் அடுக்கு இயங்குதளங்களுக்கான ஆதரவு செயல்படுத்தப்பட்டுள்ளது: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX மற்றும் HP-UX ஆதரவு தேவைக்கேற்ப சேர்க்கப்படும்.
  • வரையறுக்கப்படாத நடத்தை சானிடைசர் மற்றும் அட்ரஸ் சானிடைசர் ஆகியவற்றைப் பயன்படுத்தி குறியீடு சுத்திகரிக்கப்பட்டது, -Wpedantic உடன் கட்டும் போது அனைத்து எச்சரிக்கைகள், அனைத்து கவர்ட்டி ஸ்டேடிக் அனலைசர் எச்சரிக்கைகள் போன்றவை நீக்கப்பட்டன.
  • புதுப்பிக்கவும் API விளக்கங்கள்.
  • உட்பொதிக்க வசதிக்காக மூலக் குறியீட்டின் ஒருங்கிணைப்பு.
  • சிஎம் ஆதரவு.
  • உள்ளமை பரிவர்த்தனைகளுக்கான ஆதரவு.
  • OS மறுதொடக்கம் செய்யப்பட்டதா என்பதைத் தீர்மானிக்க bootid ஐப் பயன்படுத்துதல் (அழுக்கு தரவுத்தள நிறுத்தம்).
  • புதுப்பிக்கப்பட்ட/பழைய பக்கங்கள் மற்றும் நீட்டிக்கப்பட்ட பரிவர்த்தனை தகவல்களின் எண்ட்-டு-எண்ட்.
  • இணக்கமான பயன்முறையில் ஏற்கனவே திறந்திருக்கும் தரவுத்தளத்துடன் இணைப்பதற்கான விருப்பம் MDBX_ACCEDE.
  • பயன்படுத்த OFD தடுப்பு கிடைக்கும் போது.
  • குழாயில் சூடான காப்புப்பிரதி.
  • சிறப்பு உகந்த உள் வரிசையாக்க அல்காரிதம் (qsort() ஐ விட 2-3 மடங்கு வேகமாகவும், std ::sort() ஐ விட 30% வேகமாகவும் இருக்கும்.
  • அதிகபட்ச விசை நீளம் அதிகரிக்கப்பட்டுள்ளது.
  • முன்னோக்கி வாசிப்பதற்கான தானியங்கி கட்டுப்பாடு (நினைவகத்தில் தரவுத்தள கோப்பு கேச்சிங் உத்தி).
  • அதிக ஆக்ரோஷமான மற்றும் வேகமான தானியங்கு சுருக்கம்.
  • B+ ட்ரீ பக்கங்களை இணைப்பதற்கான மிகவும் உகந்த உத்தி.
  • தவறாகப் பயன்படுத்தினால் தரவுத்தள சேதத்தைத் தடுக்க உள்ளூர் அல்லாத கோப்பு முறைமைகளின் (NFS, Samba, முதலியன) கட்டுப்பாடு.
  • சோதனைகளின் தொகுப்பு விரிவாக்கப்பட்டுள்ளது.

libmdbx இன் "அடுத்த" பதிப்பின் உருவாக்கம் ஒரு தனி திட்டமாக தொடரும் மித்ரில்டிபி, MDBX இன் "தற்போதைய" பதிப்பின் டெவலப்மெண்ட் வெக்டார் அம்சத் தொகுப்பை முடக்கி அதை நிலைப்படுத்துவதை நோக்கமாகக் கொண்டுள்ளது. இந்த முடிவு மூன்று காரணங்களுக்காக எடுக்கப்பட்டது:

  • முற்றிலும் பொருந்தாதது: MithrilDB க்கு வேறுபட்ட (பொருந்தாத) தரவுத்தள கோப்பு வடிவம் மற்றும் திட்டமிட்ட அனைத்து அம்சங்களையும் செயல்படுத்த வேறுபட்ட (பொருந்தாத) API தேவைப்படுகிறது.
  • புதிய மூலக் குறியீடு: MithrilDB மூலக் குறியீடு LMDB இலிருந்து சுயாதீனமாக உரிமம் பெற்றது, மேலும் திட்டமே வேறு உரிமத்தின் கீழ் வெளியிட திட்டமிடப்பட்டுள்ளது (அங்கீகரித்தது அல்லது ஒருவேளை உரிமம் அப்பாச்சி XXமற்றும் இல்லை OpenLDAP அறக்கட்டளை).
  • பிரித்தல் சாத்தியமான குழப்பத்தைத் தவிர்க்கிறது, மேலும் உறுதியை அளிக்கிறது, மேலும் திட்டங்களுக்கு முன்னோக்கி ஒரு சுயாதீனமான பாதை இருப்பதை உறுதி செய்கிறது.

MDBX போன்ற MithrilDB ஐ அடிப்படையாகக் கொண்டது மரம் B+ மேலும் MDBX மற்றும் LMDB இன் பல அடிப்படைக் குறைபாடுகளை நீக்கும் அதே வேளையில், மிக உயர்ந்த செயல்திறனைக் கொண்டிருக்கும். குறிப்பாக, நீண்ட வாசிப்பு பரிவர்த்தனைகளால் குப்பை செயலாக்கம் தடுக்கப்படுவதால் தரவுத்தளத்தின் "வீக்கமாக" வெளிப்படும் "நீண்ட வாசிப்பு" சிக்கல் நீக்கப்படும். புதிய MithrilDB அம்சங்கள் பின்வருமாறு:

  • பல பன்முக ஊடகங்களில் தரவுத்தளத்தை வைப்பதற்கான ஆதரவு: HDD, SSD மற்றும் நிலையற்ற நினைவகம்.
  • "மதிப்பு" மற்றும் "குறைந்த மதிப்பு", "சூடான", "சூடான" மற்றும் "குளிர்" தரவுகளுக்கான உகந்த உத்திகள்.
  • தரவுத்தள ஒருமைப்பாட்டைக் கண்காணிக்க Merkle மரத்தைப் பயன்படுத்துகிறது.
  • WAL இன் விருப்பத்தேர்வு பயன்பாடு மற்றும் எழுத-தீவிரமான காட்சிகள் மற்றும் தரவு ஒருமைப்பாடு உத்தரவாதங்களில் குறிப்பிடத்தக்க அதிக செயல்திறன்.
  • வட்டுகளில் டேட்டாவை சோம்பேறியாகப் பிடிக்கவும்.

ஆதாரம்: linux.org.ru

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