Lëshimi i FerretDB 0.1, implementimi i MongoDB mbi DBMS PostgreSQL

Ështe publikuar njĂ« lĂ«shim i projektit FerretDB 0.1 (ish MangoDB), qĂ« lejon zĂ«vendĂ«simin e bazĂ«s sĂ« tĂ« dhĂ«nave document-oriented MongoDB me PostgreSQL pa bĂ«rĂ« ndryshime nĂ« kodin e aplikacioneve. FerretDB Ă«shtĂ« e realizuar si njĂ« server proxy, qĂ« transmeton kĂ«rkesat nga MangoDB nĂ« pyetje SQL pĂ«r PostgreSQL, duke lejuar pĂ«rdorimin e PostgreSQL si depo tĂ« vĂ«rtetĂ«. 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 për dorëzimin nën licencën SSPL jo vetëm të kodit të aplikacionit, por edhe të burimeve të të gjitha komponenteve që janë të involvuara në ofrimin e shërbimit në cloud.

Si audiencë e synuar, FerretDB përfshin përdoruesit që nuk përdorin në aplikacionet e tyre funksionalitetet e avancuara të MongoDB, por duan të përdorin një grumbull të plotë të softuerit të hapur. Në këtë fazë të zhvillimit, FerretDB mbështet vetëm një pjesë të mundësive të MongoDB, më së shpeshti të përdorura në aplikacionet tipike. Në të ardhmen planifikojnë të arrijnë përputhshmëri të plotë me drejtuesit për MongoDB dhe të ofrojnë mundësinë për të përdorur FerretDB si një zëvendësim të tejdukshëm të MongoDB.

TĂ« kujtojmĂ« se MongoDB zĂ« njĂ« niĆŸĂ« midis sistemeve tĂ« shpejta dhe tĂ« shkallĂ«zueshme, qĂ« operojnĂ« me tĂ« dhĂ«na nĂ« formatin çelĂ«s/vlerĂ«, dhe bazave tĂ« tĂ« dhĂ«nave relacionale, funksionale dhe tĂ« lehta pĂ«r formimin e kĂ«rkesave. MongoDB mbĂ«shtet ruajtjen e dokumenteve nĂ« formatin e ngjashĂ«m me JSON, ka njĂ« gjuhĂ« mjaft fleksibĂ«l pĂ«r formimin e kĂ«rkesave, mund tĂ« krijojĂ« indekse pĂ«r atribute tĂ« ndryshme tĂ« ruajtura, e siguron ruajtjen efikase tĂ« objekteve tĂ« mĂ«dha binarĂ«, mbĂ«shtet regjistrimin e operacioneve pĂ«r ndryshimin dhe shtimin e tĂ« dhĂ«nave nĂ« BD, mund tĂ« funksionojĂ« nĂ« pĂ«rputhje me paradigmĂ«n Map/Reduce, mbĂ«shtet replikimin dhe ndĂ«rtimin e konfigurimeve tĂ« qĂ«ndrueshme.

Në lëshimin FerretDB 0.1.0, metoda e nxjerrjes së të dhënave nga PostgreSQL është rishtazi rishikuar. Më parë për çdo kërkesë në MongoDB formohej një pyetje SQL në PostgreSQL, që përdorte funksione për të punuar me formatin JSON dhe që bënte filtrimin e rezultateve në anën e PostgreSQL. Për shkak të ndryshimeve në semantikën e funksioneve json të PostgreSQL dhe MongoDB, kishte mos përputhje në sjellje kur krahasohej dhe renditej lloje të ndryshme. Për të zgjidhur këtë problem, tani nga PostgreSQL nxirret një mostër më e madhe e të dhënave, ndërsa filtrimi i rezultatit bëhet në anën e FerretDB, që ka lejuar përsëritjen e sjelljes së MongoDB në shumicën e situatave.

Çmimi pĂ«r rritjen e pĂ«rputhshmĂ«risĂ« ka qenĂ« ulja e performancĂ«s, qĂ« nĂ« lĂ«shimet e ardhshme pritet tĂ« kompensohet pĂ«rmes filtrimit selektiv nĂ« anĂ«n e FerretDB vetĂ«m pĂ«r kĂ«rkesat, pĂ«r tĂ« cilat ka pasur mos pĂ«rputhje tĂ« sjelljes. PĂ«r shembull, kĂ«rkesa "db.collection.find({_id: ‘some-id-value’})" mund tĂ« pĂ«rpunohen plotĂ«sisht nĂ« PostgreSQL. Objektivi primar i projektit nĂ« kĂ«tĂ« fazĂ« zhvillimi Ă«shtĂ« arritja e pĂ«rputhshmĂ«risĂ« me MongoDB, ndĂ«rsa performanca pĂ«r momentin Ă«shtĂ« lĂ«nĂ« nĂ« plan tĂ« dytĂ«. NdĂ«r ndryshimet funksionale nĂ« versionin e ri, pĂ«rmendet mbĂ«shtetje pĂ«r tĂ« gjithĂ« operatorĂ«t bit, operatorin e krahasimit "$eq", si dhe operatorĂ«t "$elemMatch" dhe "$bitsAllClear".

Burimi: opennet.ru

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