Dla tych, którzy szukają brozproszona baza danych SQL, artykuł, o którym dzisiaj porozmawiamy, może Cię zainteresować, ponieważ będziemy rozmawiać ŻDB, która jest bazą danych, która ostatnio Yandex wydał swój kod źródłowy.
YDB było zaprojektowany od podstaw w odpowiedzi na rosnące zapotrzebowanie na interaktywne usługi internetowe skalowalny. Skalowalność, ścisła spójność i wydajne transakcje między zakresami były niezbędne dla obciążenia podobnego do OLTP.
YDB tworzą ludzie z dużym doświadczeniem w bazach danych i systemach rozproszonych, którzy opracowali bazę danych No-SQL i system Map-Reduce dla jednej z największych wyszukiwarek na świecie.
W ramach licencji Apache 2.0 YDB działa na 86-bitowych platformach x64 z minimum 8 GB pamięci RAM.
„Mamy duże doświadczenie w obsłudze systemów produkcyjnych na 86-bitowych maszynach x64 z systemem Ubuntu Linux. Odkryliśmy, że elastyczny projekt YDB pozwala nam budować na nim więcej usług, w tym trwałe kolejki i wirtualne urządzenia blokowe”, mówi zespół programistów.
„Dla celów programistycznych regularnie sprawdzamy, czy bazę danych YDB można zbudować i uruchomić na najnowszych wersjach MacOS i Microsoft Windows. »
YDB można wdrożyć w trzech strefach dostępności. Klaster zachowuje możliwość odczytu i zapisu w przypadku całkowitej awarii pojedynczej strefy. Strefa Dostępności to izolowane centrum danych lub jego segment o minimalnej fizycznej odległości między węzłami i minimalnym ryzyku awarii w połączeniu z innymi Strefami Dostępności.
Duży region geograficzny to obszar, na którym odległość między Strefami Dostępności wynosi 500 km lub mniej. Rozłożony geograficznie klaster YDB zawiera węzły zlokalizowane w różnych strefach dostępności w dużym regionie geograficznym. YDB dokonuje synchronicznego zapisu danych w każdej ze Stref Dostępności, zapewniając nieprzerwaną wydajność w przypadku awarii Strefy Dostępności.
W klastrach rozproszonych geograficznie możliwy jest wybór polityki dystrybucji zasobów obliczeniowych pomiędzy centrami danych. Pozwala to na zachowanie właściwej równowagi między minimalnym czasem pracy bez przestojów a minimalnym przestojem w przypadku awarii centrum danych.
W przeciwieństwie do tradycyjnych relacyjnych baz danych, YDB jest skalowalny, co pozwala programistom po prostu rozszerzyć klaster o zasoby obliczeniowe lub magazynowe, aby poradzić sobie ze zwiększonym obciążeniem. YDB ma zdezagregowane warstwy obliczeniowe i magazynowe które umożliwiają niezależne skalowanie zasobów obliczeniowych i pamięci masowej.
Obecne zakłady produkcyjne mają ponad 10 000 węzłów, przechowują petabajty danych i obsługują miliony rozproszonych transakcji na sekundę.
Plik umiejętność tworzenia konfiguracji odpornych na awarie które nadal działają, gdy dyski, węzły, stojaki, a nawet pojedyncze centra danych ulegną awarii. YDB obsługuje synchroniczne wdrażanie i replikację w trzech strefach dostępności, utrzymując stan klastra w przypadku awarii jednej ze stref.
I to również ma wsparcie dostępu do danych za pomocą zapytań skanowania, zaprojektowanych do wykonywania zapytań analitycznych ad-hoc w bazie danych, wykonywanych w trybie tylko do odczytu i zwracających strumień grpc.
Ponadto obsługuje konfiguracje bezserwerowe i wielodostępne. Użytkownik może obsługiwać klaster YDB i tworzyć wiele baz danych, które współdzielą pulę pamięci i mają różne węzły obliczeniowe. Użytkownik może również uruchomić wiele bezserwerowych baz danych, które współdzielą pulę zasobów obliczeniowych, aby efektywnie z nich korzystać.
YDB łączy w sobie silną spójność, transakcje ACID, wysokowydajne zapytania, szybkie pozyskiwanie danych ze znanym dialektem SQL i obsługą interfejsu API JSON. Działa ze wszystkimi nowoczesnymi obciążeniami: klucz-wartość, relacyjne, JSON.
Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w następujący link.