Ang MangoDB ay na-moderno at ngayon ay nagbabago sa FerretDB

Kamakailan lamangs araw ang balita ng paglulunsad ng proyekto ay inihayag FerretDB, (dating MangoDB), na nagbibigay-daan sa iyong palitan ang DBMS na nakatuon sa dokumento ng MongoDB ng PostgreSQL nang hindi gumagawa ng anumang mga pagbabago sa iyong application code.

Ang FerretDB ay ipinatupad bilang isang proxy server na nagsasalin ng mga tawag sa MongoDB sa mga SQL query sa PostgreSQL, na nagbibigay-daan sa iyong gamitin ang PostgreSQL bilang ang aktwal na storage.

Ang FerretDB (dating MangoDB) ay itinatag upang maging de facto na open source na kapalit para sa MongoDB. Ang FerretDB ay isang open source proxy na nagko-convert ng mga query sa MongoDB wire protocol sa SQL, gamit ang PostgreSQL bilang database engine.

Ang pangangailangan para sa paglipat ay maaaring lumitaw dahil sa paglipat ng MongoDB sa isang hindi-libreng SSPL na lisensya, na nakabatay sa lisensya ng AGPLv3, ngunit hindi open source, dahil naglalaman ito ng diskriminasyong kinakailangan upang ibigay sa ilalim ng lisensya ng SSPL hindi lamang sa aplikasyon. ng mismong code, kundi pati na rin ang mga source code ng lahat ng bahaging kasangkot sa pagbibigay ng serbisyo sa cloud.

Ang target na audience para sa FerretDB ay mga user na hindi gumagamit ng mga advanced na feature ng MongoDB sa kanilang mga aplikasyon, ngunit gustong gumamit ng ganap na bukas na software stack.

Sa kasalukuyang yugto ng pag-unlad, ang FerretDB sinusuportahan pa rin nito ang bahagi lamang ng mga tampok ng MongoDB na kadalasang ginagamit sa karaniwang mga aplikasyon. Sa hinaharap, plano nilang makamit ang buong suporta sa driver para sa MongoDB at magbigay ng kakayahang gamitin ang FerretDB bilang isang transparent na kapalit para sa MongoDB.

Dapat itong alalahanin na Sinasakop ng MongoDB ang isang angkop na lugar sa mga mabilis at nasusukat na sistema na gumagana sa data sa key/value format, at relational DBMS, gumagana at maginhawa sa pagbuo ng mga query.

Karamihan sa mga gumagamit ng MongoDB ay hindi nangangailangan ng marami sa mga advanced na tampok na inaalok ng MongoDB; gayunpaman, kailangan nila ng isang madaling gamitin na solusyon sa open source database. Kinikilala ito, narito ang FerretDB upang punan ang puwang na iyon.

MongoDB sumusuporta sa pag-iimbak ng mga dokumento sa isang format na tulad ng JSON, ay may medyo nababaluktot na wika para sa pagbuo ng mga query, maaaring lumikha ng mga index para sa iba't ibang mga naka-imbak na katangian, nagbibigay ng mahusay na binary na malaking imbakan ng bagay, suportahan ang pag-log ng mga operasyon upang baguhin at magdagdag ng data sa database, maaari itong gumana ayon sa paradigm ng Map/Reduce, sinusuportahan nito ang pagtitiklop at ang pagbuo ng mga pagsasaayos na hindi mapagparaya sa kasalanan.

Sa paglabas ng FerretDB 0.1.0 nabanggit na ganap na muling idisenyo ang paraan ng pagkuha ng data ng PostgreSQL. Dati, para sa bawat papasok na kahilingan sa MongoDB, nabuo ang isang SQL sa PostgreSQL query, gamit ang mga function upang gumana sa JSON format at pag-filter ng mga resulta sa PostgreSQL side.

Dahil sa mga pagkakaiba sa semantics ng PostgreSQL at MongoDB json function, nagkaroon ng pagkakaiba sa pag-uugali kapag naghahambing at nag-uutos ng iba't ibang uri. Upang malutas ang problemang ito, ang isang sample ng kalabisan na data ay nakuha na ngayon mula sa PostgreSQL at ang pag-filter ng resulta ay ginagawa sa panig ng FerretDB, na naging posible na ulitin ang pag-uugali ng MongoDB sa karamihan ng mga sitwasyon.

Ang presyo ng tumaas na compatibility ay isang parusa sa pagganap, na sa mga susunod na release ay inaasahang ma-offset sa pamamagitan ng selective filtering sa gilid ng FerretDB ng mga query lang kung saan mayroong behavioral divergence.

Halimbawa, ang query na "db.collection.find({_id: 'some-id-value'})" ay maaaring ganap na maproseso sa PostgreSQL. Ang pangunahing layunin ng proyekto sa yugtong ito ng pag-unlad ay upang makamit ang pagiging tugma sa MongoDB, at ang pagganap ay nai-relegate pa rin sa background.

Sa mga functional na pagbabago sa bagong bersyon, mayroong suporta para sa lahat ng bitwise operator, ang "$e" comparison operator, gayundin ang "$elemMatch" at "$bitsAllClear" na mga operator.

Sa wakas para sa mga interesadong malaman ang tungkol dito, dapat nilang malaman na ang code ay nakasulat sa Go at ipinamamahagi sa ilalim ng lisensya ng Apache 2.0 at maaari mong suriin ang code nito sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.