Dragonfly ፕሮጀክት ለRedis እና Memcached ፈጣን ምትክ ያዘጋጃል።

የመጀመሪያው የDragonfly ውስጠ-ማህደረ ትውስታ መሸጎጫ ስርዓት ለሜምካሼድ እና ሬዲስ ፕሮቶኮሎች ድጋፍ ይሰጣል ነገር ግን መጠይቆችን በከፍተኛ አፈጻጸም እና ባነሰ የማህደረ ትውስታ ፍጆታ እንዲፈፀም ያስችላል። ስርዓቱ መረጃን በቁልፍ/በዋጋ ቅርፀት ያስተካክላል እና ከፍተኛ ጭነት የሚጫኑ ጣቢያዎችን ስራ ለማፋጠን፣ ቀርፋፋ መጠይቆችን ወደ ዲቢኤምኤስ እና በ RAM ውስጥ መካከለኛ ውሂብን በመሸጎጥ እንደ ቀላል ክብደት መፍትሄ ሊያገለግል ይችላል። የድራጎንፍሊ ኮድ በC/C++ የተፃፈ ሲሆን በBSL (የንግድ ምንጭ ፍቃድ) ስር ተሰራጭቷል።

የBSL ፍቃድ በ MySQL መስራቾች ከOpen Core ሞዴል እንደ አማራጭ ቀርቧል። የBSL ፍሬ ነገር የላቁ የተግባር ኮድ መጀመሪያ ላይ ለመሻሻያ መገኘቱ ነው፣ ነገር ግን ለተወሰነ ጊዜ በነጻ ጥቅም ላይ ሊውል የሚችለው ተጨማሪ ሁኔታዎች ከተሟሉ ብቻ ነው፣ ይህም ለማስቀረት የንግድ ፍቃድ መግዛትን ይጠይቃል። የድራጎንፍሊ ፕሮጀክት ተጨማሪ የፍቃድ ውሎች ኮዱ ወደ Apache 2.0 ፍቃድ በጁን 1፣ 2027 ብቻ እንዲተላለፍ ይፈልጋሉ። እስከዚህ ጊዜ ድረስ ፈቃዱ ኮድን መጠቀም የሚፈቅደው የአገልግሎቶቹን እና የምርቶቹን አሠራር ለማረጋገጥ ብቻ ነው፣ነገር ግን የሚከፈልባቸው የደመና አገልግሎቶችን ለመፍጠር መጠቀምን ይከለክላል Dragonfly እንደ ተጨማሪ።

እንደ ገንቢዎቹ እና የታዩ ሙከራዎች፣ Dragonfly ፈጣኑ የማህደረ ትውስታ ማከማቻ ስርዓት እንደሆነ ይናገራል። ከሬዲስ ጋር ሲነጻጸር ድራጎንፍሊ በ25 እጥፍ የስራ አፈጻጸም እና ለተለመደ የስራ ጫናዎች የማስታወስ ፍጆታን በሶስት እጥፍ ቀንሷል። አንድ የድራጎንፍሊ አገልጋይ በሰከንድ በሚሊዮኖች የሚቆጠሩ ጥያቄዎችን ማስተናገድ ይችላል፣ ለምሳሌ በአማዞን EC2 c6gn.16xlarge አካባቢ በሰከንድ 3.8 ሚሊዮን ጥያቄዎችን አፈጻጸም ማሳካት ተችሏል።

Dragonfly ፕሮጀክት ለRedis እና Memcached ፈጣን ምትክ ያዘጋጃል።

5 ጂቢ ውሂብ ለማከማቸት በተደረገው ሙከራ፣ Dragonfly ከሬዲስ 30% ያነሰ ማህደረ ትውስታን ይፈልጋል። ቅጽበተ-ፎቶዎችን በ "bgsave" ትዕዛዝ ሲፈጥሩ የማስታወሻ ፍጆታ ይጨምራል, ነገር ግን በከፍታ ጊዜያት በሬዲስ ውስጥ ከሦስት እጥፍ ያነሰ ነው, እና ቅጽበተ-ፎቶ ቅጂው ራሱ በጣም ፈጣን ነው (በሙከራው ውስጥ, በ Dragonfly ውስጥ ያለው ቅጽበታዊ ገጽ እይታ በ 30 ውስጥ ተጽፏል). ሰከንዶች, Redis - በ 42 ሰከንዶች ውስጥ).

Dragonfly ፕሮጀክት ለRedis እና Memcached ፈጣን ምትክ ያዘጋጃል።

ከፍተኛ አፈጻጸም የተገኘው ባለ ብዙ ባለ ክር አርክቴክቸር ሃብትን ሳያካፍል (የተጋራ-ምንም) ነው፣ ይህ ማለት እያንዳንዱ ክር የራሱ የሆነ የውሂብ ክፍል ያለው የተለየ ፕሮሰሰር ይመደብለታል፣ ያለ mutexes እና ስፒን መቆለፊያዎች ይሰራል። ከበርካታ ቁልፎች ጋር በሚሰሩበት ጊዜ አቶሚክነትን ለማረጋገጥ, ቀላል ክብደት ያላቸው VLL መቆለፊያዎች ጥቅም ላይ ይውላሉ. መረጃን በማህደረ ትውስታ ውስጥ በብቃት ለማከማቸት ፣ የተከፋፈለ የሃሽ ሠንጠረዥ አይነት የሚተገበረው የዳሽቦርድ መዋቅር ጥቅም ላይ ይውላል።

በመጀመሪያው ልቀት ውስጥ ከሚገኙት ባህሪያት መካከል ለ RESP2 ፕሮቶኮል እና 130 Redis ትዕዛዞች ድጋፍ ተስተውሏል፣ ይህም በግምት ከRedis 2.8 ልቀት ተግባር ጋር ይዛመዳል። በተጨማሪም Dragonfly ከ CAS (Check-and-set) በስተቀር ሁሉንም የተሸጎጡ ትዕዛዞችን ይደግፋል፣ ቅጽበተ-ፎቶዎችን ለመፍጠር ለተመሳሰሉ ስራዎች ድጋፍ ይሰጣል፣ ሊተነበይ የሚችል የማህደረ ትውስታ ፍጆታ ያቀርባል፣ አብሮ የተሰራ Lua 5.4 አስተርጓሚ እና እንደ ሃሽ ያሉ ውስብስብ የውሂብ አይነቶችን ይደግፋል። ስብስቦች፣ እና ዝርዝሮች (ZSET፣ HSET፣ LIST፣ SETS እና STRING)።

የመሸጎጫ ሞድ ለብቻው ይገኛል፣ ነፃው ማህደረ ትውስታ ካለቀ በኋላ የድሮውን ውሂብ በራስ-ሰር በአዲስ ውሂብ ይተካል። ውሂቡ ጠቃሚ ነው ተብሎ በሚታሰብበት ጊዜ የህይወት ዘመንን ከውሂቡ ጋር ማያያዝ ይቻላል። የማከማቻ ሁኔታ እንደገና ከተጀመረ በኋላ ለማገገም ከበስተጀርባ ወደ ዲስክ ሊታጠብ ይችላል። ስርዓቱን ለማስተዳደር የኤችቲቲፒ ኮንሶል (ከTCP ወደብ 6379 ጋር የተያያዘ) እና ከፕሮሜቲየስ ጋር ተኳሃኝ የሆኑ መለኪያዎችን ለመመለስ ኤፒአይ ቀርቧል። ወደፊት ስሪቶች ውስጥ, እኛ Redis ትዕዛዞች ድጋፍ ለማስፋት እና ስህተት መቻቻል እና ጭነት ማመጣጠን ለማቅረብ ማከማቻ የመድገም ችሎታ ተግባራዊ ለማድረግ አቅደናል.

ምንጭ: opennet.ru

አስተያየት ያክሉ