Unua stabila eldono de FerretDB, MongoDB-efektivigo bazita sur PostgreSQL DBMS

La eldono de la projekto FerretDB 1.0 estis publikigita, kiu ebligas al vi anstataŭigi la dokument-orientitan DBMS MongoDB per PostgreSQL sen fari ŝanĝojn al la aplika kodo. FerretDB estas efektivigita kiel prokura servilo, kiu tradukas vokojn al MongoDB en SQL-demandojn al PostgreSQL, kio ebligas al vi uzi PostgreSQL kiel la realan stokadon. Versio 1.0 estas markita kiel la unua stabila eldono preta por ĝenerala uzo. La kodo estas skribita en Go kaj distribuita sub la licenco Apache 2.0.

La ĉefa celgrupo por FerretDB estas uzantoj, kiuj ne uzas altnivelajn funkciojn de MongoDB en siaj aplikoj, sed volas uzi tute malfermitan programaron stakon. En ĝia nuna stadio de evoluo, FerretDB subtenas subaron de la MongoDB-ecoj plej ofte uzataj en tipaj aplikoj. La bezono efektivigi FerretDB povas ekesti lige kun la transiro de MongoDB al ne-libera SSPL-licenco, kiu baziĝas sur la AGPLv3-licenco, sed ne estas malfermita, ĉar ĝi enhavas diskriminacian postulon provizi sub la SSPL-licenco ne nur la aplika kodo mem, sed ankaŭ la fontkodoj de ĉiuj komponantoj implikitaj en provizado de nubaj servoj.

MongoDB okupas niĉon inter rapidaj kaj skaleblaj sistemoj, kiuj funkcias per ŝlosilaj/valoraj datumoj kaj interrilataj DBMS-oj, kiuj estas funkciaj kaj facile pridemandi. MongoDB subtenas stokadon de dokumentoj en JSON-simila formato, havas sufiĉe flekseblan lingvon por generi demandojn, povas krei indeksojn por diversaj stokitaj atributoj, efike provizas stokadon de grandaj binaraj objektoj, subtenas registradon de operacioj por ŝanĝi kaj aldoni datumojn al la datumbazo, povas labori laŭ la paradigmo Map/Reduce, subtenas reproduktadon kaj konstruadon de misfunkciaj agordoj.

Inter la ŝanĝoj en FerretDB 1.0:

  • Efektivigis komandojn createIndexes kaj dropIndexes por krei kaj faligi unu aŭ plurajn indeksojn al kolekto.
  • La komando getMore estis efektivigita por montri novan parton de la rezulto akirita de la ekzekuto de komandoj, kiuj resendas kursoron, kiel trovi kaj aldoni.
  • Aldonita subteno por la $sum agregacia operatoro por kalkuli la sumon de grupvaloroj.
  • Aldonita subteno por la $limit kaj $skip funkciigistoj por limigi la nombron kaj salti dokumentojn dum agregado.
  • Aldonita subteno por la $count operatoro por nombrado de dokumentoj dum agregado.
  • Aldonita subteno por la operatoro $unwind por analizi tabelkampojn en envenantaj dokumentoj kaj formi liston kun aparta dokumento por ĉiu tabelelemento.
  • Aldonita parta subteno por collStats, dbStats kaj dataSize-komandoj por akiri kolekton kaj datumbazan statistikon kaj datumgrandecon.

fonto: opennet.ru

Aldoni komenton