MangoDB është modernizuar dhe tani ndryshon në FerretDB

kohët e fundits ditë u bë e ditur lajmi për nisjen e projektit FerretDB, (dikur MangoDB), i cili ju lejon të zëvendësoni DBMS të orientuar drejt dokumenteve të MongoDB me PostgreSQL pa bërë asnjë ndryshim në kodin e aplikacionit tuaj.

FerretDB zbatohet si një server proxy që përkthen thirrjet në MongoDB në pyetje SQL në PostgreSQL, duke ju lejuar të përdorni PostgreSQL si ruajtje aktuale.

FerretDB (ish MangoDB) u themelua për t'u bërë zëvendësuesi de facto me burim të hapur për MongoDB. FerretDB është një përfaqësues me burim të hapur që konverton pyetjet e protokollit të telit MongoDB në SQL, duke përdorur PostgreSQL si motorin e bazës së të dhënave.

Nevoja për migrim mund të lindë për shkak të kalimit të MongoDB në një licencë SSPL jo të lirë, e cila bazohet në licencën AGPLv3, por nuk është me burim të hapur, pasi përmban një kërkesë diskriminuese për të ofruar nën licencën SSPL jo vetëm aplikacionin të vetë kodit, por edhe kodet burimore të të gjithë komponentëve të përfshirë në ofrimin e shërbimit cloud.

Audienca e synuar për FerretDB janë përdoruesit që nuk përdorin veçoritë e përparuara të MongoDB në aplikacionet e tyre, por duan të përdorin një pirg softuerësh plotësisht të hapur.

Në fazën aktuale të zhvillimit, FerretDB ai ende mbështet vetëm një pjesë të veçorive të MongoDB që përdoren më shpesh në aplikacione tipike. Në të ardhmen, ata planifikojnë të arrijnë mbështetje të plotë të shoferit për MongoDB dhe të ofrojnë aftësinë për të përdorur FerretDB si një zëvendësim transparent për MongoDB.

Duhet të mbahet mend se MongoDB zë një vend midis sistemeve të shpejta dhe të shkallëzueshme që funksionojnë në të dhëna në formatin kyç/vlerë, dhe DBMS relacionale, funksionale dhe të përshtatshme në gjenerimin e pyetjeve.

Shumica e përdoruesve të MongoDB nuk kanë nevojë për shumë nga veçoritë e avancuara që ofron MongoDB; megjithatë, ata kanë nevojë për një zgjidhje të lehtë për t'u përdorur bazën e të dhënave me burim të hapur. Duke e njohur këtë, FerretDB është këtu për të mbushur atë boshllëk.

MongoDB mbështet ruajtjen e dokumenteve në një format të ngjashëm me JSON, ka një gjuhë mjaft fleksibël për gjenerimin e pyetjeve, mund të krijojë indekse për atribute të ndryshme të ruajtura, siguron ruajtje efikase binar të objekteve të mëdha, mbështesin regjistrimin e operacioneve për të ndryshuar dhe shtuar të dhëna në bazën e të dhënave, mund të funksionojë sipas paradigmës Harta/Redukto, mbështet replikimin dhe ndërtimin e konfigurimeve tolerante ndaj gabimeve.

Në lëshimin e FerretDB 0.1.0 vihet re se ridizajnuar plotësisht mënyrën se si merren të dhënat e PostgreSQL. Më parë, për çdo kërkesë hyrëse MongoDB, u krijua një pyetje SQL në PostgreSQL, duke përdorur funksione për të punuar me formatin JSON dhe duke filtruar rezultatet në anën PostgreSQL.

Për shkak të dallimeve në semantikën e funksioneve PostgreSQL dhe MongoDB json, kishte një mospërputhje në sjellje gjatë krahasimit dhe renditjes së llojeve të ndryshme. Për të zgjidhur këtë problem, një mostër e të dhënave të tepërta është nxjerrë tani nga PostgreSQL dhe filtrimi i rezultatit bëhet në anën FerretDB, gjë që bëri të mundur përsëritjen e sjelljes së MongoDB në shumicën e situatave.

Çmimi i rritjes së përputhshmërisë ishte një dënim i performancës, i cili në publikimet e ardhshme pritet të kompensohet nga filtrimi selektiv në anën FerretDB vetëm të pyetjeve për të cilat ka një divergjencë të sjelljes.

Për shembull, pyetja "db.collection.find({_id: 'some-id-value'})" mund të përpunohet plotësisht në PostgreSQL. Qëllimi kryesor i projektit në këtë fazë të zhvillimit është arritja e përputhshmërisë me MongoDB, dhe performanca është ende në plan të dytë.

Nga ndryshimet funksionale në versionin e ri, ka mbështetje për të gjithë operatorët bitwise, operatorin e krahasimit "$e", si dhe operatorët "$elemMatch" dhe "$bitsAllClear".

Më në fund për ata që janë të interesuar të dinë më shumë për të, ata duhet të dinë se kodi është shkruar në Go dhe shpërndahet nën licencën Apache 2.0 dhe kodin e tij mund ta kontrolloni në linkun e mëposhtëm.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.