Kutolewa kwa FerretDB 0.1, utekelezaji wa MongoDB kulingana na PostgreSQL DBMS

FerretDB 0.1 (zamani MangoDB) imetolewa. Inaruhusu watumiaji kubadilisha hifadhidata ya MongoDB inayolenga hati na PostgreSQL bila kubadilisha msimbo wa programu. FerretDB inatekelezwa kama seva mbadala inayotafsiri maombi ya MangoDB kuwa hoja za SQL kwa PostgreSQL, ikiruhusu PostgreSQL kutumika kama injini halisi ya kuhifadhi. Msimbo umeandikwa katika Go na kupewa leseni chini ya leseni ya Apache 2.0.

Haja ya uhamiaji inaweza kutokea kutokana na mpito wa MongoDB hadi leseni ya SSPL ya umiliki, ambayo inategemea leseni ya AGPLv3 lakini si chanzo huria, kwani ina sharti la kibaguzi la kutoa chini ya SSPL si tu msimbo wa programu yenyewe, bali pia msimbo chanzo wa vipengele vyote vinavyohusika katika kutoa huduma ya wingu.

Hadhira lengwa ya FerretDB ni watumiaji ambao hawatumii vipengele vya hali ya juu vya MongoDB katika programu zao lakini wanataka programu chanzo huria kikamilifu. Katika hatua hii ya uundaji, FerretDB kwa sasa inasaidia sehemu ndogo tu ya vipengele vya MongoDB vinavyotumika sana katika programu za kawaida. Katika siku zijazo, mipango ni kufikia utangamano kamili na viendeshi vya MongoDB na kuifanya FerretDB kuwa mbadala usio na mshono wa MongoDB.

Tukumbuke kwamba MongoDB inachukua nafasi kati ya mifumo ya haraka na inayoweza kusambazwa ambayo huendesha data katika umbizo la ufunguo/thamani, na DBMS za uhusiano ambazo zinafanya kazi na rahisi kutunga hoja. MongoDB inasaidia kuhifadhi hati katika umbizo linalofanana na JSON, ina lugha inayoweza kunyumbulika kwa urahisi kwa ajili ya kuzalisha maswali, inaweza kuunda faharisi za sifa mbalimbali zilizohifadhiwa, kwa ufanisi hutoa uhifadhi wa vitu vikubwa vya binary, inasaidia ukataji wa shughuli za kubadilisha na kuongeza data kwenye hifadhidata, inaweza. fanya kazi kwa mujibu wa ramani ya dhana/Punguza, inasaidia urudufishaji na ujenzi wa usanidi unaostahimili makosa.

FerretDB 0.1.0 ilibadilisha kabisa mbinu ya kupata data kutoka PostgreSQL. Hapo awali, kwa kila ombi linaloingia la MongoDB, swali moja la SQL lilizalishwa kwa PostgreSQL, kwa kutumia vitendakazi vya kufanya kazi na umbizo la JSON na kuchuja matokeo upande wa PostgreSQL. Kutokana na tofauti katika semantiki ya vitendakazi vya JSON katika PostgreSQL na MongoDB, kutolingana kwa tabia kulionekana wakati wa kulinganisha na kupanga aina tofauti. Ili kushughulikia suala hili, sampuli ya data isiyohitajika sasa inapatikana kutoka PostgreSQL, na kuchuja matokeo hufanywa upande wa FerretDB, ambayo inaruhusu tabia sawa na MongoDB katika hali nyingi.

Bei ya ongezeko la utangamano imekuwa adhabu ya utendaji, ambayo inatarajiwa kupunguzwa katika matoleo yajayo kwa kuchuja FerretDB kwa hiari kwa maswali yale tu ambayo yanaonyesha tofauti ya kitabia. Kwa mfano, swali "db.collection.find({_id: 'some-id-value'})" linaweza kusindika kikamilifu katika PostgreSQL. Lengo kuu la mradi katika hatua hii ya maendeleo ni kufikia utangamano na MongoDB, huku utendaji ukiwa kipaumbele cha pili kwa sasa. Miongoni mwa mabadiliko ya kiutendaji katika toleo jipya ni usaidizi kwa waendeshaji wote wa bitwise, mwendeshaji wa kulinganisha wa "$eq", pamoja na waendeshaji wa "$elemMatch" na "$bitsAllClear".

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster