FerretDB 0.3 już został wydany, dowiedz się, co nowego w tej modernizacji MangoDB

Kilka tygodni temu dzielimy się tutaj na blogu nowościami zmiana nazwy projektu MangoDB co pozwala zastąpić zorientowany na dokumenty DBMS MongoDB na PostgreSQL bez wprowadzania jakichkolwiek zmian w kodzie aplikacji.

Nowa nazwa projektu to FerretDB a niedawno wydano wersję 0.3 projektu. Wersja FerretDB 0.3 wprowadza polecenie findAndModify, które modyfikuje dokument, ale zwraca jego oryginalną wersję, a także między innymi operatory aktualizacji pól.

Dla tych, którzy wciąż nie wiedzą o FerretDB, powinniście o tym wiedzieć jest to zaimplementowane jako serwer proxy, który tłumaczy wywołania do MongoDB na zapytania SQL do PostgreSQL, co pozwala na używanie PostgreSQL jako prawdziwej pamięci masowej.

Konieczność migracji może zaistnieć w związku z przejściem MongoDB na niewolną licencję SSPL, która jest oparta na licencji AGPLv3, ale nie jest otwarta, gdyż zawiera dyskryminujący wymóg udostępniania w ramach licencji SSPL nie tylko aplikacji sam kod, ale także kody źródłowe wszystkich komponentów zaangażowanych w świadczenie usługi w chmurze.

Główną grupą docelową dla 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 nadal obsługuje tylko część funkcji MongoDB które są najczęściej używane w typowych zastosowaniach. W przyszłości planują osiągnąć pełną obsługę sterowników dla MongoDB i zapewnić możliwość korzystania z FerretDB jako przezroczystego zamiennika dla MongoDB.

MongoDB zajmuje niszę między szybkimi i skalowalnymi systemami, które działają na danych typu klucz/wartość, a relacyjnymi systemami DBMS, które są funkcjonalne i łatwe do wyszukiwania.

MongoDB obsługuje przechowywanie dokumentów w formacie podobnym do JSON, ma dość elastyczny język generowania zapytań, może tworzyć indeksy dla różnych przechowywanych atrybutów, zapewnia wydajne przechowywanie dużych obiektów binarnych, obsługuje rejestrowanie operacji w celu zmiany i dodania danych do bazy danych, może pracować zgodnie z paradygmatem Map/Reduce, obsługuje replikację i budowę konfiguracji odpornych na błędy.

Ze względu na różnice w semantyce funkcji json PostgreSQL i MongoDB, była rozbieżność w zachowaniu podczas porównywania i zamawiania różnych typów. Aby rozwiązać ten problem, próbka nadmiarowych danych jest teraz wyodrębniana z PostgreSQL, a filtrowanie wyników odbywa się po stronie FerretDB, co umożliwiło powtórzenie zachowania MongoDB w większości sytuacji.

Główne nowości FerretDB 0.3

Jak wspomniano na początku, nowa wersja FerretDB 0.3 wyróżnia się wprowadzeniem polecenie findAndModify, który modyfikuje dokument, ale zwraca jego oryginalną wersję.

Inne zmiany, które się wyróżniają, to: poprawiono obsługę ujemnego zera, dodano także obsługę porządkowania skalarnych typów danych.

Podkreślone są również zaimplementowano nowe operatory aktualizacji pól: $inc i $set, plus dodano obsługę porządkowania skalarnych typów danych.

Z drugiej strony wspomniano, że wprowadzono różne ulepszenia dotyczące obsługi wersji PostgreSQL i MongoDB.

Poza tym, zauważono również, że błędny test dla operatora $mod został naprawiony, ponadto, że test został wydany we wszystkich systemach operacyjnych ARM64 i że dodano większą widoczność poziomów rejestrowania błędów routera/proxy.

Z innych zmian które wyróżniają się na tle nowej wersji:

  • Zaktualizuj WŁAŚCICIELI KODÓW
  • Synchronizuj kontrolery atrapy i pg
  • Zmień nazwę stałych OP_* na stałe OpCode*
  • Ulepsz gopkg.in/yaml.v3
  • Wrzuć gopkg.in/yaml.v3 w narzędziach
  • Utwórz ścieżkę tekstu
  • Panika w nieoczekiwanej kolejności wartości
  • Dodaj kilka komentarzy do funkcji i zmiennych
  • Usuń martwy kod

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


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.