L-ewwel rilaxx stabbli ta 'FerretDB, implimentazzjoni ta' MongoDB ibbażata fuq DBMS PostgreSQL

Ġie ppubblikat ir-rilaxx tal-proġett FerretDB 1.0, li jippermettilek tissostitwixxi d-DBMS MongoDB orjentat lejn id-dokument ma 'PostgreSQL mingħajr ma tagħmel bidliet fil-kodiċi tal-applikazzjoni. FerretDB huwa implimentat bħala proxy server li jittraduċi sejħiet lil MongoDB fi mistoqsijiet SQL lil PostgreSQL, li jippermettilek tuża PostgreSQL bħala l-ħażna attwali. Verżjoni 1.0 hija mmarkata bħala l-ewwel rilaxx stabbli lest għall-użu ġenerali. Il-kodiċi huwa miktub f'Go u mqassam taħt il-liċenzja Apache 2.0.

L-udjenza fil-mira primarja ta 'FerretDB hija utenti li ma jużawx il-kapaċitajiet avvanzati ta' MongoDB fl-applikazzjonijiet tagħhom, iżda jridu jużaw munzell ta 'softwer kompletament miftuħ. Fl-istadju attwali ta 'żvilupp tiegħu, FerretDB jappoġġja subsett ta' kapaċitajiet MongoDB li huma l-aktar komunement użati f'applikazzjonijiet tipiċi. Il-ħtieġa li tiġi implimentata FerretDB tista' tinħoloq b'rabta mat-tranżizzjoni ta' MongoDB għal-liċenzja SSPL proprjetarja, li hija bbażata fuq il-liċenzja AGPLv3, iżda mhix miftuħa, peress li fiha rekwiżit diskriminatorju li jagħti taħt il-liċenzja SSPL mhux biss il-kodiċi tal-applikazzjoni. innifsu, iżda wkoll il-kodiċijiet tas-sors tal-komponenti kollha involuti fil-provvista tas-servizz cloud.

MongoDB jokkupa niċċa bejn sistemi veloċi u skalabbli li joperaw fuq data f'format ta 'ċavetta/valur, u DBMSs relazzjonali li huma funzjonali u faċli biex jiġu fformulati mistoqsijiet. MongoDB jappoġġa l-ħażna ta 'dokumenti f'format bħal JSON, għandu lingwa pjuttost flessibbli għall-ġenerazzjoni ta' mistoqsijiet, jista 'joħloq indiċi għal diversi attributi maħżuna, jipprovdi b'mod effiċjenti ħażna ta' oġġetti binarji kbar, jappoġġja l-illoggjar ta 'operazzjonijiet għall-bidla u żżid id-data fid-database, jista' taħdem skond il-paradigma Mappa/Tnaqqas, tappoġġja r-replikazzjoni u l-kostruzzjoni ta 'konfigurazzjonijiet tolleranti għall-ħsarat.

Fost il-bidliet f'FerretDB 1.0:

  • Il-kmandi createIndexes u dropIndexes ġew implimentati biex joħolqu u jħassru indiċi wieħed jew aktar fuq kollezzjoni.
  • Il-kmand getMore ġie implimentat biex juri porzjon ġdid tar-riżultat miksub mill-eżekuzzjoni ta' kmandi li jirritorna cursor, bħal find and aggregate.
  • Appoġġ miżjud għall-operatur aggregazzjoni $sum biex tikkalkula s-somma tal-valuri tal-grupp.
  • Appoġġ miżjud għall-operaturi $limit u $skip biex jillimitaw in-numru u skip ta 'dokumenti waqt l-aggregazzjoni.
  • Appoġġ miżjud għall-operatur $count għall-għadd tad-dokumenti waqt l-aggregazzjoni.
  • Żid l-appoġġ għall-operatur $unwind biex janalizza l-oqsma tal-firxa fid-dokumenti li jkunu deħlin u jiġġenera lista b'dokument separat għal kull element tal-firxa.
  • Żid appoġġ parzjali għall-kmandi collStats, dbStats u dataSize biex tinkiseb statistika dwar il-ġbir u d-database, kif ukoll id-daqs tad-data.

Sors: opennet.ru

Żid kumment