በPostgreSQL DBMS ላይ የተመሰረተ የFerretDB 0.1፣ MongoDB ትግበራ መልቀቅ

የFerretDB 0.1 ፕሮጀክት መለቀቅ (የቀድሞው ማንጎዲቢ) ታትሟል፣ ይህም በሰነድ ላይ ያተኮረ DBMS MongoDB በማመልከቻው ኮድ ላይ ለውጦችን ሳያደርጉ በ PostgreSQL እንዲቀይሩ ያስችልዎታል። FerretDB ወደ ማንጎዲቢ የሚደረጉ ጥሪዎችን ወደ SQL መጠይቆች ወደ PostgreSQL የሚተረጉም እንደ ተኪ አገልጋይ ነው፣ ይህም PostgreSQL እንደ ትክክለኛው ማከማቻ ጥቅም ላይ እንዲውል ያስችለዋል። ኮዱ በGo ውስጥ ተጽፎ በApache 2.0 ፈቃድ ስር ተሰራጭቷል።

የፍልሰት አስፈላጊነት MongoDB ወደ የባለቤትነት SSPL ፈቃድ በመሸጋገሩ ምክንያት ሊነሳ ይችላል ፣ ይህም በ AGPLv3 ፈቃድ ላይ የተመሠረተ ፣ ግን ክፍት አይደለም ፣ ምክንያቱም በ SSPL ፈቃድ በራሱ የማመልከቻ ኮድ ብቻ ሳይሆን ፣ እንዲሁም ለማድረስ አድሎአዊ መስፈርት ስላለው በአቅርቦት የደመና አገልግሎት ውስጥ የተሳተፉ የሁሉም አካላት ምንጭ ኮድ።

የFerretDB ዒላማ ታዳሚዎች የሞንጎዲቢን የላቀ ችሎታዎች በአፕሊኬሽናቸው ውስጥ የማይጠቀሙ፣ ነገር ግን ሙሉ ለሙሉ ክፍት የሆነ የሶፍትዌር ቁልል መጠቀም የሚፈልጉ ተጠቃሚዎች ናቸው። አሁን ባለው የዕድገት ደረጃ፣ FerretDB አሁንም በተለመዱ መተግበሪያዎች ውስጥ በብዛት ጥቅም ላይ የሚውሉትን የMongoDB ችሎታዎች በከፊል ብቻ ይደግፋል። ለወደፊት፣ ለMongoDB ከአሽከርካሪዎች ጋር ሙሉ ተኳሃኝነትን ለማግኘት እና FerretDBን እንደ MongoDB ግልፅ ምትክ የመጠቀም ችሎታን ለመስጠት አቅደዋል።

MongoDB በቁልፍ/በዋጋ ቅርፀት እና በመረጃ ላይ በሚሰሩ ፈጣን እና ሊሰሉ የሚችሉ ስርዓቶች እና በተዛማጅ ዲቢኤምኤስ ፣ተግባራዊ እና መጠይቆችን ለማመንጨት በሚመች መካከል ያለውን ቦታ መያዙን አስታውስ። ሞንጎዲቢ ሰነዶችን በJSON በሚመስል ቅርፀት ማከማቸትን ይደግፋል፣ መጠይቆችን ለማመንጨት የሚያስችል ምቹ ቋንቋ አለው፣ ለተለያዩ የተከማቹ ባህሪያት ኢንዴክሶችን መፍጠር ይችላል፣ ትላልቅ ሁለትዮሽ ነገሮችን በብቃት ማከማቸት፣ ለውጦችን እና ውሂብን ወደ ዳታቤዝ ለመጨመር ስራዎችን መመዝገብን ይደግፋል። በፓራዳይም ካርታ/መቀነስ መሠረት መሥራት፣ ማባዛትን ይደግፋል እና ስህተትን የሚቋቋሙ ውቅሮችን መገንባት።

የFerretDB 0.1.0 መለቀቅ ከPostgreSQL መረጃን የማውጣት ዘዴን ሙሉ ለሙሉ ቀይሯል። ከዚህ ቀደም፣ ለእያንዳንዱ ገቢ MongoDB ጥያቄ፣ አንድ የSQL ጥያቄ ወደ PostgreSQL ተፈጥሯል፣ ከJSON ቅርጸት ጋር አብሮ ለመስራት እና ውጤቱን በPostgreSQL በኩል ለማጣራት ተግባራትን በመጠቀም። በ PostgreSQL እና MongoDB json ተግባራት የትርጓሜ ልዩነት ምክንያት፣ የተለያዩ አይነቶችን ሲያወዳድሩ እና ሲደረደሩ የባህሪ ልዩነት ነበር። ይህንን ችግር ለመፍታት፣ አሁን ያለማቋረጥ መረጃ ከ PostgreSQL እየመጣ ነው፣ እና ውጤቱ በ FerretDB በኩል ተጣርቷል፣ ይህም በአብዛኛዎቹ ሁኔታዎች የሞንጎዲቢን ባህሪ ለመድገም አስችሏል።

የጨመረው የተኳኋኝነት ዋጋ የአፈጻጸም መቀነስ ነበር፣ ይህም ወደፊት በሚለቀቁት ልቀቶች ላይ የባህሪ ልዩነት ያለባቸውን ጥያቄዎችን ብቻ በ FerretDB በኩል በማጣራት ማካካሻ ይሆናሉ ብለው ይጠብቃሉ። ለምሳሌ፣ "db.collection.find({_id: 'some-id-value'})" የሚለው ጥያቄ ሙሉ በሙሉ በPostgreSQL ውስጥ ሊሰራ ይችላል። በዚህ የዕድገት ደረጃ ላይ ያለው የፕሮጀክቱ ዋና ግብ ከMongoDB ጋር ተኳሃኝነትን ማሳካት ነው፣ እና አፈጻጸሙ አሁን ወደ ዳራ ወርዷል። በአዲሱ ስሪት ውስጥ ካሉት ተግባራዊ ለውጦች መካከል ለሁሉም ቢት ኦፕሬተሮች ድጋፍ ፣የ$eq ንፅፅር ኦፕሬተር ፣እንዲሁም “$elemMatch” እና “$bitsAllClear” ኦፕሬተሮች ተዘርዝረዋል።

ምንጭ: opennet.ru

አስተያየት ያክሉ