FerretDB 1.0 został już wydany i to są jego nowości

FerretDB

FerretDB został założony, aby stać się de facto zamiennikiem open source dla MongoDB.

Uruchomienie nowa wersja projektu FerretDB 1.0, co pozwala zastąpić zorientowany na dokumenty DBMS MongoDB PostgreSQL bez wprowadzania jakichkolwiek zmian w kodzie aplikacji. FerretDB jest zaimplementowany jako serwer proxy, który tłumaczy wywołania MongoDB w zapytaniach SQL na PostgreSQL, umożliwiając używanie PostgreSQL jako rzeczywistej pamięci masowej.

Wersja 1.0 jest oznaczona jako pierwsza stabilna wersja gotowa do ogólnego użytku. Podstawową grupą docelową FerretDB są użytkownicy, którzy nie korzystają z zaawansowanych funkcji MongoDB w swoich aplikacjach, ale chcą korzystać z całkowicie otwartego stosu oprogramowania.

Na obecnym etapie rozwoju, FerretDB obsługuje podzbiór funkcji MongoDB które są najczęściej używane w typowych zastosowaniach. Konieczność wdrożenia FerretDB może powstać w związku z przejściem MongoDB na niewolną licencję SSPL, która bazuje na licencji AGPLv3, ale nie jest open source, gdyż zawiera dyskryminujący wymóg dostarczania w ramach licencji SSPL nie tylko sam kod aplikacji, ale także kody źródłowe wszystkich komponentów zaangażowanych w świadczenie usług w chmurze.

MongoDB zajmuje niszę pomiędzy szybkimi i skalowalnymi systemami, które działają na danych klucz/wartość i systemach DBMS relacyjnych baz danych, które są funkcjonalne i łatwe do przeszukiwania. MongoDB obsługuje przechowywanie dokumentów w formacie zbliżonym do JSON, posiada dość elastyczny język do budowania zapytań, potrafi tworzyć indeksy dla różnych przechowywanych atrybutów, zapewnia wydajne przechowywanie binarnych dużych obiektów, obsługuje operacje logowania do zmian i dodawania danych do bazy danych, może pracować zgodnie z paradygmatem Map/Reduce, obsługuje replikację i budowanie konfiguracji odpornych na uszkodzenia.

Główne nowości FerretDB 1.0

W tej nowej wersji, która jest prezentowana, podkreślono, że zaimplementowano komendy createIndexes i dropIndexes aby utworzyć i umieścić jeden lub więcej indeksów w kolekcji, oprócz polecenia getMore został zaimplementowany, aby wyświetlić nowy wycinek pobranego wyniku od wykonywania poleceń zwracających kursor, takich jak znajdowanie i dodawanie.

Kolejna ze zmian, która wyróżnia się na tle nowej wersji dodano obsługę operatora agregacji $sum aby obliczyć sumę wartości grupy, a także to, co zostało dodane obsługa operatorów $limit i $skip aby ograniczyć liczbę i pomijać dokumenty podczas dodawania oraz że dodano obsługę operatora $count do liczenia dokumentów podczas dodawania.

Oprócz tego należy również zauważyć, że dodano obsługę operatora $unwind w celu analizowania pól tablicy w dokumentach przychodzących i tworzenia listy z osobnym dokumentem dla każdego elementu tablicy, a także dodano częściową obsługę poleceń collStats , dbStats i dataSize, aby uzyskać statystyki kolekcji i bazy danych oraz rozmiar danych.

z inne zmiany, które się wyróżniają nowej wersji:

  • Iteratory są teraz używane do `sortowania`, `limit`, `skip` i `projection`
  • wypukłe zależności
  • Ulepszenia śledzenia zasobów
  • Dodano testy dla argumentu `skip` dla `find` i `count
  • Zamknij poprawnie iterator
  • Ulepszenia inicjowania dużych liczb w danych testowych

W końcu jeśli chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły W poniższym linku.

Osoby zainteresowane kodem powinny wiedzieć, że jest on napisany w Go i rozpowszechniany na licencji Apache 2.0.

I powinni to wiedzieć najlepszym sposobem na przetestowanie FerretDB jest zmodyfikowanie go i uruchomienie na hoście (Linux, macOS lub Windows) z PostgreSQL i innymi zależnościami działającymi w kontenerach Docker za pośrednictwem Docker Compose.

W systemie Linux docker musi być zainstalowany na hoście. W systemach macOS i Windows należy używać Docker Desktop, natomiast w systemie Windows należy go skonfigurować do korzystania z WSL 2 bez żadnej dystrybucji; wszystkie polecenia muszą być wykonywane na hoście.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.