Prvo stabilno izdanje FerretDB-a, implementacija MongoDB bazirana na PostgreSQL DBMS-u

Objavljeno je izdanje FerretDB 1.0 projekta, koji vam omogućava da zamenite dokumentno orijentisani DBMS MongoDB sa PostgreSQL bez promene koda aplikacije. FerretDB je implementiran kao proxy server koji prevodi pozive MongoDB u SQL upite za PostgreSQL, što vam omogućava da koristite PostgreSQL kao stvarnu pohranu. Verzija 1.0 je označena kao prvo stabilno izdanje spremno za opću upotrebu. Kod je napisan u Go i distribuiran pod licencom Apache 2.0.

Glavna ciljna publika za FerretDB su korisnici koji ne koriste MongoDB napredne funkcije u svojim aplikacijama, ali žele da koriste potpuno otvoren softverski stog. U svojoj trenutnoj fazi razvoja, FerretDB podržava podskup MongoDB karakteristika koje se najčešće koriste u tipičnim aplikacijama. Potreba za implementacijom FerretDB-a može se pojaviti u vezi sa prelaskom MongoDB-a na neslobodnu SSPL licencu, koja je zasnovana na AGPLv3 licenci, ali nije otvorena, budući da sadrži diskriminatorni zahtjev za isporuku pod SSPL licencom ne samo sam kod aplikacije, ali i izvorni kodovi svih komponenti uključenih u pružanje usluga u oblaku.

MongoDB zauzima nišu između brzih i skalabilnih sistema koji rade na podacima ključ/vrijednost i relacionih DBMS-ova koji su funkcionalni i laki za upite. MongoDB podržava pohranjivanje dokumenata u JSON formatu, ima prilično fleksibilan jezik za generiranje upita, može kreirati indekse za različite pohranjene atribute, efikasno obezbjeđuje skladištenje velikih binarnih objekata, podržava evidentiranje operacija za promjenu i dodavanje podataka u bazu podataka, može radi u skladu sa paradigmom Map/Reduce, podržava replikaciju i izgradnju konfiguracija otpornih na greške.

Među promjenama u FerretDB 1.0:

  • Implementirane naredbe createIndexes i dropIndexes za kreiranje i ispuštanje jednog ili više indeksa u kolekciju.
  • GetMore komanda je implementirana da prikaže novi dio rezultata dobivenog izvođenjem naredbi koje vraćaju kursor, kao što su find i aggregate.
  • Dodata podrška za operator agregacije $sum za izračunavanje zbira vrijednosti grupe.
  • Dodata podrška za $limit i $skip operatore za ograničavanje broja i preskakanje dokumenata prilikom agregiranja.
  • Dodata podrška za operator $count za brojanje dokumenata prilikom agregiranja.
  • Dodata podrška za $unwind operator za raščlanjivanje polja niza u dolaznim dokumentima i formiranje liste sa zasebnim dokumentom za svaki element niza.
  • Dodata je djelomična podrška za komande collStats, dbStats i dataSize za dobivanje statistike prikupljanja i baze podataka i veličine podataka.

izvor: opennet.ru

Dodajte komentar