Lëshimi i FerretDB 0.1, implementimi i MongoDB mbi bazën e SGBD PostgreSQL.

ËshtĂ« publikuar lĂ«shimi i projektit FerretDB 0.1 (i mĂ«parshmi MangoDB), e cila lejon zĂ«vendĂ«simin e bazĂ«s sĂ« tĂ« dhĂ«nave dokumentare MongoDB me PostgreSQL pa bĂ«rĂ« ndryshime nĂ« kodin e aplikacioneve. FerretDB implementohet si njĂ« server proxy, qĂ« pĂ«rkthen kĂ«rkesat pĂ«r MangoDB nĂ« kĂ«rkesa SQL pĂ«r PostgreSQL, duke mundĂ«suar pĂ«rdorimin e PostgreSQL si depo reale tĂ« tĂ« dhĂ«nave. Kodi Ă«shtĂ« shkruar nĂ« gjuhĂ«n Go dhe shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0.

Kërkesa për migrim mund të lindë për shkak të kalimit të MongoDB në një licencë jo të lirë SSPL, e cila është e bazuar në licencën AGPLv3, por nuk është e hapur, pasi përmban një kërkesë diskriminuese që imponon fournizim nën licencën SSPL jo vetëm për kodin e vetë aplikacionit, por edhe për tekstet burimore të të gjithë komponenteve të përfshirë në ofrimin e shërbimit cloud.

Si audiencë e synuar, FerretDB ka të përmendur përdoruesit që nuk përdorin në aplikacionet e tyre funksionalitetet e avancuara të MongoDB, por dëshirojnë të përdorin një stak të plotë të hapur programor. Në fazën aktuale të zhvillimit, FerretDB mbështet vetëm një pjesë të mundësive të MongoDB që përdoren më shpesh në aplikacionet tipike. Në të ardhmen, planifikojnë të arrijnë përputhshmëri të plotë me shoferët për MongoDB dhe të ofrojnë mundësinë e përdorimit të FerretDB si një zëvendësim transparent për MongoDB.

Kujtojmë se MongoDB zë një vend ndërmjet sistemeve të shpejta dhe të shkallëzueshme që punojnë me të dhëna në formatin çelës/vlerë dhe SGBD-ve relacionale, të pasura me funksionalitete dhe të përshtatshme për ndërtimin e pyetjeve. MongoDB mbështet ruajtjen e dokumenteve në një format të ngjashëm me JSON, ka një gjuhë mjaft fleksibile për ndërtimin e pyetjeve, mund të krijojë indekse për atribute të ndryshme të ruajtura, siguron në mënyrë efikase ruajtjen e objekteve të mëdha binare, mbështet regjistrimin e operacioneve për ndryshimin dhe shtimin e të dhënave në BD, mund të funksionojë sipas paradigmës Map/Reduce, si dhe mbështet replikimin dhe ndërtimin e konfigurimeve me tolerancë ndaj dështimeve.

Në lëshimin FerretDB 0.1.0, metoda e nxjerrjes së të dhënave nga PostgreSQL është riformatuar krejtësisht. Më parë, për çdo kërkesë hyrëse MongoDB formohej një kërkesë SQL për PostgreSQL, që përdorte funksione për të punuar me formatin JSON dhe kryente filtrimin e rezultateve në anën e PostgreSQL. Për shkak të ndryshimeve në semantikën e funksioneve json të PostgreSQL dhe MongoDB, kishte mosfunksionime në krahasim dhe renditje të llojeve të ndryshme. Për të zgjidhur këtë problem, tani nxirret një sasi e tepërt e të dhënave nga PostgreSQL, ndërsa filtrimi i rezultatit bëhet në anën e FerretDB, duke lejuar përsëritjen e sjelljes së MongoDB në shumicën e situatave.

Kostoja e rritjes sĂ« kompatibilitetit ishte ulja e performancĂ«s, e cila nĂ« versionet e ardhshme pritet tĂ« kompensohet pĂ«rmes filtrimit selektiv nĂ« anĂ«n e FerretDB vetĂ«m pĂ«r kĂ«rkesat, pĂ«r tĂ« cilat vĂ«rehet njĂ« pĂ«rputhje tĂ« ndryshme tĂ« sjelljes. PĂ«r shembull, kĂ«rkesa «db.collection.find({_id: ‘some-id-value’})» mund tĂ« pĂ«rpunojĂ« plotĂ«sisht nĂ« PostgreSQL. QĂ«llimi kryesor i projektit nĂ« kĂ«tĂ« fazĂ« zhvillimi Ă«shtĂ« arritja e kompatibilitetit me MongoDB, ndĂ«rsa performanca aktualisht Ă«shtĂ« e dyta nĂ« renditjen e prioriteteve. NdĂ«r ndryshimet funksionale nĂ« versionin e ri, pĂ«rmendet mbĂ«shtetje pĂ«r tĂ« gjitha operatorĂ«t bitorĂ«, operatorin e krahasimit «$eq», si dhe operatorĂ«t «$elemMatch» dhe «$bitsAllClear».

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster