rqlite 7.0 መልቀቅ፣ በSQLite ላይ የተመሰረተ የተከፋፈለ ስህተትን የሚቋቋም DBMS

የተከፋፈለው DBMS rqlite 7.0 ተለቀቀ፣ SQLite እንደ ማከማቻ ሞተር የሚጠቀም እና እርስ በርስ ከተመሳሰሉ ማከማቻዎች የክላስተር ስራን እንዲያደራጁ ያስችልዎታል። የ rqlite አንዱ ባህሪ የተከፋፈለ ስህተትን የሚቋቋም ማከማቻ የመትከል፣ የማሰማራት እና የመጠገን ቀላልነት ነው፣ ከ etcd እና Consul ጋር ተመሳሳይ የሆነ ነገር ግን ከቁልፍ/ዋጋ ቅርጸት ይልቅ ተዛማጅ የመረጃ ሞዴል መጠቀም። የፕሮጀክት ኮድ በ Go ውስጥ ተጽፎ በ MIT ፈቃድ ተሰራጭቷል።

ሁሉንም አንጓዎች በተመሳሰለ ሁኔታ ለማቆየት፣ የራፍት ስምምነት ስልተ-ቀመር ጥቅም ላይ ይውላል። Rqlite የመጀመሪያውን የSQLite ቤተ-መጽሐፍት እና የ go-sqlite3 ሾፌር ይጠቀማል፣ በላዩ ላይ የደንበኛ ጥያቄዎችን የሚያስኬድ፣ ወደ ሌሎች አንጓዎች የሚባዛ እና በመሪ መስቀለኛ መንገድ ምርጫ ላይ የጋራ መግባባትን የሚከታተል ንብርብር ይከፈታል።

በመረጃ ቋቱ ላይ ለውጦች ሊደረጉ የሚችሉት እንደ መሪ በተመረጠው መስቀለኛ መንገድ ብቻ ነው ፣ ግን ከጽሑፍ ስራዎች ጋር ግንኙነቶች እንዲሁ በክላስተር ውስጥ ላሉ ሌሎች አንጓዎች መላክ ይችላሉ ፣ ይህም ጥያቄውን ለመድገም የመሪውን አድራሻ ይመልሳል (በሚቀጥለው እትም እነሱ ወደ መሪው የጥያቄዎችን አውቶማቲክ ማስተላለፍ ለመጨመር ቃል ገብቷል)። ዋናው አጽንዖት ስህተትን መቻቻል ላይ ነው, ስለዚህ የዲቢኤምኤስ ሚዛኖች በንባብ ስራዎች ብቻ እና የፅሁፍ ስራዎች ማነቆዎች ናቸው. የ rqlite ክላስተርን ከአንድ መስቀለኛ መንገድ ማሄድ ይቻላል እና ይህ መፍትሄ የስህተት መቻቻልን ሳያቀርቡ የ SQLite በ HTTP ላይ ለመድረስ ሊያገለግል ይችላል።

በእያንዳንዱ መስቀለኛ መንገድ ላይ ያለው የ SQLite ውሂብ በፋይል ውስጥ አልተቀመጠም, ነገር ግን በማህደረ ትውስታ ውስጥ. ከ Raft ፕሮቶኮል ትግበራ ጋር በንብርብር ደረጃ ፣ ወደ የውሂብ ጎታው ለውጦች የሚመሩ የሁሉም የ SQLite ትዕዛዞች መዝገብ ተቀምጧል። ይህ ምዝግብ ማስታወሻ በማባዛት ጊዜ (በሌሎች አንጓዎች ላይ ጥያቄዎችን በማባዛት ደረጃ) አዲስ መስቀለኛ መንገድ ሲጀምር ወይም ከግንኙነት ማጣት ለማገገም ጥቅም ላይ ይውላል። የምዝግብ ማስታወሻውን መጠን ለመቀነስ አውቶማቲክ ማሸግ ጥቅም ላይ ይውላል ፣ ይህም ከተወሰኑ ለውጦች በኋላ ይጀምራል እና ወደ ቅጽበታዊ ገጽ እይታ ይመራዋል ፣ ከዚህ ጋር በተያያዘ አዲስ ምዝግብ ማስታወሻ መያዝ ይጀምራል (በማህደረ ትውስታ ውስጥ ያለው የውሂብ ጎታ ሁኔታ ከቅጽበተ-ፎቶው + ከተጠራቀመው የለውጥ መዝገብ ጋር ተመሳሳይ)።

የ rqlite ባህሪዎች

  • የተለየ SQLite መጫን ሳያስፈልግ ክላስተር ለማሰማራት ቀላል።
  • የተደገመ SQL ማከማቻ በፍጥነት የማግኘት ችሎታ።
  • በምርት ፕሮጄክቶች ውስጥ ለመጠቀም ዝግጁ (የምርት-ደረጃ).
  • መረጃን በቡድን ሁነታ ለማዘመን እና የክላስተር መሪ መስቀለኛ መንገድን ለመወሰን የሚያስችል የኤችቲቲፒ(ኤስ) ኤፒአይ መኖር። ለተለያዩ የፕሮግራም አወጣጥ ቋንቋዎች የትእዛዝ መስመር በይነገጽ እና የደንበኛ ቤተ-መጽሐፍት እንዲሁ ቀርቧል።
  • በተለዋዋጭ ስብስቦችን ለመፍጠር የሚያስችልዎ ሌሎች አንጓዎችን ለመለየት አገልግሎት መገኘት።
  • በአንጓዎች መካከል የመረጃ ልውውጥን ለማመስጠር ድጋፍ።
  • በሚያነቡበት ጊዜ የመረጃውን ተዛማጅነት እና ወጥነት የመፈተሽ ደረጃን የማዋቀር ችሎታ።
  • የጋራ መግባባትን በመወሰን ላይ የማይሳተፉ እና ለንባብ ስራዎች የክላስተርን ሚዛን ለመጨመር ጥቅም ላይ የሚውሉ አንጓዎችን በንባብ-ብቻ ሁነታ የማገናኘት አማራጭ ችሎታ።
  • በአንድ ጥያቄ ውስጥ ትዕዛዞችን በማጣመር ላይ በመመስረት የራስዎን የግብይቶች አይነት መደገፍ (በ BEGIN ፣ COMMIT ፣ ROLLBACK ፣ SAVEPOINT እና መልቀቅ ላይ የተመሰረቱ ግብይቶች አይደገፉም)።
  • ትኩስ ምትኬዎችን ለመፍጠር ድጋፍ.

በአዲሱ እትም፡-

  • በቆንስላ እና ወዘተ የተከፋፈለ ማከማቻ ላይ ሊሰራ የሚችል አዲስ የመስቀለኛ መንገድ ማወቂያ አገልግሎትን በመጠቀም ለራስ-ሰር rqlite ክላስተር ድጋፍ ታክሏል። አገልግሎቱ የ rqlite nodes በራስ-ሰር እንዲገናኙ ያስችላቸዋል - አስተዳዳሪው የጋራ ቆንስላ ወይም ወዘተ ክላስተር አድራሻን (ለምሳሌ “example.com:8500”) በመግለጽ በተለያዩ አገልጋዮች ላይ ብዙ ኖዶችን ማስጀመር ብቻ ነው የሚያስፈልገው። ወደ ክላስተር ተጣምሯል. መሪው መስቀለኛ መንገድ በየጊዜው በቆንስላ ወይም ወዘተ ማከማቻ ውስጥ ስላለው አድራሻው መረጃን ያሻሽላል ፣ ይህም በመቀጠል ሌሎች ኖዶችን እንደገና ማዋቀር ሳያስፈልግ መሪውን እንዲቀይሩ ያስችልዎታል ፣ እንዲሁም መሪውን ከቀየሩ በኋላም አዲስ አንጓዎችን ይጨምሩ። በAWS Lambda ላይ የሚሰራው የቆየ የግኝት ሁነታ አገልግሎት ተቋርጧል።
  • የCLI በይነገጽ ብዙ አስተናጋጆችን በአንድ ጊዜ እንዲገልጹ ይፈቅዳል - የመጀመሪያው መስቀለኛ መንገድ ከሌለ ቀጣዮቹ አስተናጋጆች ይገናኛሉ።
  • rqlited የትዕዛዝ መስመር ነጋሪ እሴቶችን የሚተነተን ኮድ እንደገና ተሠርቷል።
  • የተቋረጠው የፕሮቶቡፍ ጥቅል ተቋርጧል።
  • በራፍት ፕሮቶኮል አተገባበር ውስጥ ጥቅም ላይ የዋለው የቦልትዲቢ ማከማቻ በቦልት ተተክቷል፣ ከ ወዘተ ፕሮጀክቱ ሹካ።

ምንጭ: opennet.ru

አስተያየት ያክሉ