Gefa út FerretDB 0.1, útfærslu á MongoDB byggt á PostgreSQL DBMS

Útgáfa FerretDB 0.1 verkefnisins (áður MangoDB) hefur verið birt, sem gerir þér kleift að skipta um skjalamiðaða DBMS MongoDB fyrir PostgreSQL án þess að gera breytingar á forritskóðanum. FerretDB er útfært sem proxy-þjónn sem þýðir símtöl í MangoDB yfir í SQL fyrirspurnir í PostgreSQL, sem gerir PostgreSQL kleift að nota sem raunverulega geymslu. Kóðinn er skrifaður í Go og dreift undir Apache 2.0 leyfinu.

Þörfin fyrir flutning getur skapast vegna breytinga MongoDB yfir í sérstakt SSPL leyfi, sem er byggt á AGPLv3 leyfinu, en er ekki opið, þar sem það inniheldur mismununarkröfu um að afhenda samkvæmt SSPL leyfinu, ekki aðeins forritskóðann sjálfan, heldur einnig frumkóða allra íhluta sem taka þátt í skýjaþjónustunni.

Markhópur FerretDB er notendur sem nota ekki háþróaða möguleika MongoDB í forritum sínum, en vilja nota algjörlega opinn hugbúnaðarstafla. Á núverandi þróunarstigi styður FerretDB enn aðeins hluta af MongoDB getu sem oftast er notaður í dæmigerðum forritum. Í framtíðinni ætla þeir að ná fullri eindrægni við ökumenn fyrir MongoDB og veita möguleika á að nota FerretDB sem gagnsæ skipti fyrir MongoDB.

Við skulum minnast þess að MongoDB á sér sess á milli hraðvirkra og stigstærðra kerfa sem reka gögn á lykil-/gildissniði og vensla DBMS sem eru hagnýt og auðvelt að móta fyrirspurnir. MongoDB styður vistun skjala á JSON-líku sniði, hefur nokkuð sveigjanlegt tungumál til að búa til fyrirspurnir, getur búið til vísitölur fyrir ýmsa geymda eiginleika, veitir á skilvirkan hátt geymslu stórra tvíundarhluta, styður skráningu á aðgerðum til að breyta og bæta gögnum við gagnagrunninn, getur vinna í samræmi við hugmyndafræðina Map/Reduce, styður afritun og smíði á villuþolnum stillingum.

Útgáfa FerretDB 0.1.0 endurhannaði algjörlega aðferðina við að sækja gögn frá PostgreSQL. Áður, fyrir hverja innkomna MongoDB beiðni, var ein SQL fyrirspurn búin til í PostgreSQL, með aðgerðum til að vinna með JSON sniðinu og sía niðurstöðurnar á PostgreSQL hliðinni. Vegna mismunandi merkingarfræði PostgreSQL og MongoDB json aðgerða, var misræmi í hegðun við samanburð og flokkun á mismunandi gerðum. Til að leysa þetta vandamál eru gögn nú óþörf sótt frá PostgreSQL og niðurstaðan síuð á FerretDB hlið, sem gerði það mögulegt að endurtaka hegðun MongoDB í flestum aðstæðum.

Verð aukins eindrægni var lækkun á frammistöðu, sem í framtíðarútgáfum búast þeir við að bæti upp með því að sía sértækt á FerretDB hliðinni eingöngu fyrirspurnum þar sem misræmi er í hegðun. Til dæmis er hægt að vinna fyrirspurnina "db.collection.find({_id: 'some-id-value'})" algjörlega í PostgreSQL. Meginmarkmið verkefnisins á þessu stigi þróunar er að ná fram samhæfni við MongoDB og frammistaða er færð í bakgrunninn í bili. Meðal hagnýtra breytinga í nýju útgáfunni er bent á stuðning fyrir alla bita rekstraraðila, „$eq“ samanburðaraðgerðina, sem og „$elemMatch“ og „$bitsAllClear“ rekstraraðila.

Heimild: opennet.ru

Bæta við athugasemd