የድራጎንፍሊ 1.0 መልቀቅ፣ የማህደረ ትውስታ ውሂብ መሸጎጫ ስርዓት

የDragonfly ውስጠ ትውስታ መሸጎጫ እና ማከማቻ ስርዓት ተለቋል፣ መረጃን በቁልፍ/በዋጋ ቅርፀት የሚቆጣጠር እና በጣም የተጫኑ ድረ-ገጾችን ስራ ለማፋጠን ቀላል ክብደት ያለው መፍትሄ ሆኖ ሊያገለግል የሚችል፣ ዘገምተኛ መጠይቆችን ወደ ዲቢኤምኤስ እና በ RAM ውስጥ መካከለኛ ውሂብን መሸጎጥ። Dragonfly ያሉትን የደንበኛ ቤተ-መጻሕፍት እንድትጠቀሙ እና ፕሮጄክቶችን በሜምካችድ እና ሬዲስ ወደ ድራጎንፍly በመጠቀም ኮዱን እንደገና ሳታደርጉት የምትችለውን የሜምካቸድ እና የሬዲስ ፕሮቶኮሎችን ይደግፋል።

ከሬዲስ ጋር ሲነጻጸር፣ Dragonfly በአማዞን EC2 c6gn.16xlarge አካባቢ ለተለመደ የስራ ጫና በ25 እጥፍ የአፈፃፀም (በሴኮንድ 3.8 ሚሊዮን ጥያቄዎች) አሳክቷል። በAWS c6gn.16xlarge አካባቢ ውስጥ ካለው Memcached ጋር ሲነጻጸር፣ Dragonfly በሰከንድ 4.7 ጊዜ ተጨማሪ የመፃፍ ጥያቄዎችን (3.8 ሚሊዮን ከ 806 ሺህ) እና 1.77 ጊዜ ተጨማሪ የንባብ ጥያቄዎችን በሰከንድ ማከናወን ችሏል (3.7 ሚሊዮን ከ2.1 ሚሊዮን)።

የድራጎንፍሊ 1.0 መልቀቅ፣ የማህደረ ትውስታ ውሂብ መሸጎጫ ስርዓት

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

የድራጎንፍሊ 1.0 መልቀቅ፣ የማህደረ ትውስታ ውሂብ መሸጎጫ ስርዓት

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

የDragonfly አንዳንድ ባህሪያት፡-

  • ነፃው ማህደረ ትውስታ ካለቀ በኋላ የድሮውን ውሂብ በራስ-ሰር በአዲስ ውሂብ የሚተካ መሸጎጫ ሁነታ።
  • ውሂቡ ጠቃሚ ነው ተብሎ በሚታሰብበት ዕድሜ ልክ ከውሂብ ጋር ለማያያዝ ድጋፍ።
  • ዳግም ከተጀመረ በኋላ ለማገገም የማከማቻ ሁኔታን ከበስተጀርባ ወደ ዲስክ ለማፍሰስ ድጋፍ።
  • ለስርዓት አስተዳደር የኤችቲቲፒ ኮንሶል መኖር (ከTCP ወደብ 6379 ጋር የተያያዘ) እና ከፕሮሜቲየስ ጋር ተኳሃኝ የመመለሻ መለኪያዎች።
  • ለ 185 Redis ትዕዛዞችን ይደግፉ፣ ይህም ከRedis 5 መለቀቅ ተግባር ጋር በግምት እኩል ነው።
  • ከ CAS (ቼክ-እና-ማዘጋጀት) በስተቀር ሁሉንም Memcached ትዕዛዞችን ይደግፋል።
  • ቅጽበተ-ፎቶዎችን ለመፍጠር ለተመሳሰሉ ስራዎች ድጋፍ።
  • ሊገመት የሚችል የማህደረ ትውስታ ፍጆታ.
  • አብሮ የተሰራ Lua 5.4 አስተርጓሚ።
  • እንደ ሃሽ፣ ስብስቦች፣ ዝርዝሮች (ZSET፣ HSET፣ LIST፣ SETS እና STRING) እና JSON ውሂብ ያሉ ውስብስብ የውሂብ አይነቶችን ይደግፋል።
  • ለስህተት መቻቻል እና ጭነት ማመጣጠን የማከማቻ ማባዛትን ይደግፋል።

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

Dragonfly 1.0 ስሪት ከዋናው አገልጋይ ወደ ሁለተኛ ደረጃ ለመረጃ ማባዛት ድጋፍን በመተግበሩ ታዋቂ ነው። ሆኖም፣ Dragonfly ከዋና አገልጋይ በDragonfly ላይ በመመስረት ወይም በሬዲስ ላይ በመመስረት እንደ ሁለተኛ ደረጃ ማከማቻ ሆኖ ሊዋቀር ይችላል። የማባዛት አስተዳደር ኤፒአይ ከRedis ጋር ተኳሃኝ ነው እና በROLE እና REPLICAOF (SLAVEOF) ትዕዛዞች አጠቃቀም ላይ የተመሰረተ ነው።

ምንጭ: opennet.ru

አስተያየት ያክሉ