ከፍተኛ አፈጻጸም የተካተተ DBMS libmdbx 0.10 መልቀቅ

ከሶስት ወራት እድገት በኋላ libmdbx 0.10.0 (MDBX) ተለቀቀ፣ ከፍተኛ አፈጻጸም ያለው፣ የታመቀ የተካተተ ቁልፍ እሴት ዳታቤዝ። የlibmdbx ኮድ በOpenLDAP የህዝብ ፍቃድ ስር ፍቃድ ተሰጥቶታል። libmdbx የኤልኤምዲቢ ዲቢኤምኤስ ጥልቅ ዳግም ሥራ ነው እና እንደ ገንቢዎቹ ገለጻ፣ በአስተማማኝነቱ፣ በችሎታው እና በአፈጻጸም ከቅድመ አያቱ የላቀ ነው። በCRUD ሁኔታዎች ውስጥ libmdbx ከ LMDB እስከ 20% ፈጣን እና libmdbx በሚገነባበት ጊዜ የውስጥ ቁጥጥር ከተሰናከለ እስከ 30% ፈጣን እንደሆነ ተገልጿል።

Libmdbx በሲፒዩ ኮሮች ላይ በመስመር የሚለካ ACID፣ ጠንካራ የለውጥ ተከታታይነት እና የማያግድ ንባቦችን ያቀርባል። በlibmdbx ውስጥ ለኮድ ጥራት፣ የተረጋጋ የኤፒአይ ስራ፣ ለሙከራ እና አውቶማቲክ ፍተሻዎች ብዙ ትኩረት ተሰጥቷል። ራስ-መጠቅለልን ይደግፋል፣ አውቶማቲክ የውሂብ ጎታ መጠን አስተዳደር፣ ነጠላ የውሂብ ጎታ ለ 32-ቢት እና 64-ቢት ትላልቅ ስብሰባዎች እና የክልል መጠይቅ ግምትን ይደግፋል። የውሂብ ጎታ አወቃቀሩን ትክክለኛነት ከአንዳንድ የመልሶ ማግኛ ችሎታዎች ጋር ለመፈተሽ መገልገያ ቀርቧል። እ.ኤ.አ. ከ2016 ጀምሮ ፕሮጀክቱ በአዎንታዊ ቴክኖሎጂዎች የተደገፈ እና ከ 2017 ጀምሮ በምርቶቹ ውስጥ ጥቅም ላይ ይውላል ፣ እና የአሜሪካ መንግስት በአዎንታዊ ቴክኖሎጂዎች ላይ የጣለው ማዕቀብ ምንም የሚታይ ተፅእኖ የለውም።

ከመጨረሻው ልቀት በኋላ የታከሉ ዋና ዋና ፈጠራዎች፣ ማሻሻያዎች እና ጥገናዎች፡-

  • በማህሎን ኢ ስሚዝ የሩቢ ማሰሪያ እና የፓይዘን ማሰሪያ የሙከራ ስሪት በኖኤል ኩንትዜ ይገኛሉ፣ እና የ GoLang ማሰሪያዎች በአሌክሲ ሻሮቭ ተዘምነዋል።
  • ለ "MDBX_WRITEMAP" ሁነታ፣ የውሂብ ጎታ ዳታ በቀጥታ በ RAM ውስጥ ሲቀየር፣ የተቀየሩ የውሂብ ጎታ ገፆች ወደ ዲስክ "ግልጽ መፍሰስ" ተግባራዊ ይሆናል። አሁን እያንዳንዱ ክዋኔ ከተጠናቀቀ በኋላ እንደዚህ ያሉ ገጾች ወዲያውኑ ወደ ዲስክ ለመፃፍ ሙሉ በሙሉ ዝግጁ ናቸው እና የስርዓተ ክወናው ከርነል በተናጥል የተለወጡ ገጾችን ወደ ዲስክ ማጠብ ይችላል ፣ እና ግብይት መፈፀም የእነሱን ማሻሻያ አያስፈልገውም። በውጤቱም ፣ በቂ ያልሆነ RAM በተጨናነቀ ሁኔታ ውስጥ ፣ የዲስክ ኦፕሬሽኖች መጠን እስከ 2 ጊዜ ሊቀንስ ይችላል።
  • የተሻሻሉ ገፆች ለረጅም ጊዜ ጥቅም ላይ ያልዋሉ የጥላ ቅጅዎችን ማባረር፣ ትልቅ/ረጅም ዋጋ ያላቸውን ገፆች ማስወጣት ተመራጭ ሲሆን ይህም በአብዛኛዎቹ ሁኔታዎች በአንድ ግብይት አንድ ጊዜ ብቻ የሚሻሻሉ ናቸው። ውጤቱ የዲስክ ትራፊክ ቀንሷል እና በጣም ትልቅ ግብይቶች ባሉባቸው ሁኔታዎች ውስጥ የተሻሻለ አፈፃፀም ነው።
  • ቁልፎችን በሚያስገቡበት ጊዜ ገጾችን ለመከፋፈል "ብልጥ" ሁነታን ተተግብሯል. አሁን, የታዘዙ ቅደም ተከተሎችን በሚያስገቡበት ጊዜ, ገጾቹ በራስ-ሰር ሙሉ በሙሉ ይሞላሉ, እና በሌሎች ሁኔታዎች, ዛፉ በተሻለ ሁኔታ ሚዛናዊ ነው. በውጤቱም, በአማካይ, የውሂብ ጎታ ገፆች በተሻለ ሁኔታ ይሞላሉ እና የቢ-ዛፉ የበለጠ ሚዛናዊ ነው, ይህም በአፈፃፀም ላይ በጎ ተጽእኖ ይኖረዋል.
  • ከገጾች ጋር ​​የተከናወኑ ስራዎች ስታቲስቲክስ ተጨምሯል, ይህም ከመረጃ ቋቱ ጋር የመቀየር ወጪን በትክክል ለመገመት ያስችልዎታል.
  • ከደርዘን በላይ ሳንካዎች እና ሳንካዎች ተስተካክለዋል፣ ከእነዚህም መካከል፡ MinGWን በመጠቀም የመገንባት ችግሮች፣ በiOS <= 13.0 ውስጥ `std:: filesystem:: path`ን በመጠቀም፣ የቆዩ የዊንዶውስ ስሪቶችን መገንባት፣ ወዘተ.
  • በጠቅላላው ከ 200 በላይ ለውጦች በ 66 ፋይሎች ላይ ተደርገዋል, ~ 6500 መስመሮች ተጨምረዋል, ~ 4500 ተሰርዘዋል.

በተናጥል የቱርቦ-ጌዝ ፕሮጀክት (ቱርቦ ሹካ የ Go-Ethereum) libmdbx እንደ አዲስ የማጠራቀሚያ ድጋፍ ፣ እና የፕሮጀክት ቡድኑን (በተለይም Alexey Sharov ፣ Artyom Vorotnikov እና Alexey Akhunov) ስላደረጉላቸው አመሰግናለሁ በከባድ የአጠቃቀም ሁኔታ ሁኔታዎች ውስጥ ለመሞከር ጥሩ እገዛ። በተለይም በቅድመ-ንባብ/መሸጎጫ መቆጣጠሪያ ላይ ጉድለት ተገኘ እና ተሰርዟል፣ይህም ትልቅ ዳታቤዝ ካላቸው ለማባዛት አስቸጋሪ በሆኑ ሁኔታዎች ውስጥ የአፈጻጸም ውድቀት አስከትሏል።

ምንጭ: opennet.ru

አስተያየት ያክሉ