YugabyteDB
Oryginalni autorzy | Kannan Muthukkaruppan, Karthik Ranganathan, Michaił Bautin |
---|---|
Deweloperzy | Yugabyte, Inc. |
Pierwsze wydanie | 2016 |
Wersja stabilna | 2,16 (stabilny) 2,17 (rozwój) / 15 grudnia 2022 r 8 grudnia 2022 |
Magazyn | |
Napisane w | C++ |
System operacyjny | Linux RedHat 7.x i pochodne, MacOS |
Platforma | Bare Metal , Virtual Machine , Docker , Kubernetes i różne platformy do zarządzania kontenerami |
Dostępne w | język angielski |
Typ | RDBMS |
Licencja | Apache 2.0 |
Strona internetowa |
|
Typ | Prywatny |
---|---|
Przemysł | Oprogramowanie |
Założony | 2016 |
Założyciel | Kannan Muthukkaruppan, Karthik Ranganathan, Michaił Bautin |
Siedziba | Sunnyvale , Kalifornia , USA |
Kluczowi ludzie |
Kannan Muthukkaruppan (współzałożyciel i prezes ds. rozwoju produktów) Karthik Ranganathan (współzałożyciel i dyrektor techniczny) Mikhail Bautin (współzałożyciel i architekt oprogramowania) Bill Cook (CEO) |
Usługi | Komercyjne systemy zarządzania bazami danych |
Strona internetowa |
YugabyteDB to wysokowydajna transakcyjna rozproszona baza danych SQL dla aplikacji natywnych w chmurze , opracowana przez firmę Yugabyte.
Historia
Yugabyte zostało założone przez byłych inżynierów Facebooka , Kannana Muthukkaruppana, Karthika Ranganathana i Michaiła Bautina. Na Facebooku byli częścią zespołu, który zbudował i obsługiwał Cassandrę i HBase w okresie znacznego wzrostu obciążeń, takich jak Facebook Messenger i Operational Data Store Facebooka .
Założyciele spotkali się w lutym 2016 r., aby zbudować YugabyteDB, wierząc, że trendy, których doświadczyli na Facebooku – mikrousługi , konteneryzacja , wysoka dostępność , dystrybucja geograficzna, interfejsy API i oprogramowanie typu open source – są istotne dla wszystkich firm, zwłaszcza gdy przechodzą z on- przesłanki do operacji natywnych w chmurze.
YugabyteDB był początkowo dostępny w dwóch wersjach: community i enterprise. W lipcu 2019 roku firma Yugabyte pozyskała wcześniej komercyjne funkcje typu open source i uruchomiła YugabyteDB jako oprogramowanie typu open source na Apache 2.0.
Szybka ewolucja produktu doprowadziła do zdobycia tytułu Gartner Cool Vendor 2020 w dziedzinie zarządzania danymi.
Yugabyte uruchomił Yugabyte Cloud, teraz przemianowaną na YugabyteDB Managed, w pełni zarządzaną ofertę YugabyteDB typu baza danych jako usługa , we wrześniu 2021 r.
Finansowanie
Sześć lat po powstaniu firmy, Yugabyte zamknął rundę finansowania serii C o wartości 188 milionów dolarów, aby stać się start-upem Unicorn z wyceną 1,3 miliarda dolarów
Seria | Data ogłoszona | Kwota | Inwestorzy |
---|---|---|---|
A | 10 lutego 2016 r | 8 milionów dolarów | Partnerzy Lightspeed Venture , Jeff Rothschild |
A | 12 czerwca 2018 r | 16 milionów dolarów | Partnerzy Lightspeed Venture, kapitał technologiczny firmy Dell |
B | 09 czerwca 2020 r | 30 milionów dolarów | Wipro Ventures, partnerzy Lightspeed Venture. Kapitał technologiczny firmy Dell. 8VC |
B | 03 marca 2021 r | 48 milionów dolarów | Wipro Ventures. Partnerzy Lightspeed Venture. Współpracownicy Greenspring, Dell Technology Capital, 8VC |
C | 28 października 2021 r | 188 milionów dolarów | Wells Fargo Strategic Capital, Sapphire Ventures , Meritech Capital Partners , Lightspeed Venture Partners, Dell Technology Capital, 8VC |
Architektura
YugabyteDB to rozproszona baza danych SQL, której celem jest zapewnienie dużej spójności transakcyjnej w strefach awarii (tj. zgodność z ACID ). Testy Jepsen, de facto branżowy standard weryfikacji poprawności, nigdy nie zostały w pełni spełnione, głównie ze względu na warunki wyścigu podczas zmian schematu. W CAP Warunki twierdzenia YugabyteDB jest bazą danych spójną/odporną na partycje (CP).
YugabyteDB ma dwie warstwy, silnik pamięci masowej znany jako DocDB i Yugabyte Query Layer.
DocDB
Silnik pamięci masowej składa się z dostosowanej bazy danych RocksDB połączonej z algorytmami dzielenia na części i równoważenia obciążenia dla danych. Ponadto algorytm konsensusu Raft kontroluje replikację danych między węzłami. Dostępny jest również transakcji rozproszonych i kontrola współbieżności wielu wersji (MVCC) do obsługi transakcji rozproszonych.
Silnik wykorzystuje również hybrydowy zegar logiczny, który łączy zgrubnie zsynchronizowane zegary fizyczne z zegarami Lamporta w celu śledzenia związków przyczynowych.
Warstwa DocDB nie jest bezpośrednio dostępna dla użytkowników.
Warstwa zapytań YugabyteDB
Yugabyte ma podłączaną warstwę zapytań, która wyodrębnia warstwę zapytań z warstwy przechowywania poniżej. Obecnie istnieją dwa interfejsy API, które mogą uzyskiwać dostęp do bazy danych:
YSQL to interfejs API zgodny z kodem PostgreSQL, oparty na wersji 11.2. Dostęp do YSQL uzyskuje się za pośrednictwem standardowych sterowników PostgreSQL przy użyciu natywnych protokołów. Wykorzystuje natywny kod PostgreSQL dla warstwy zapytań i zastępuje silnik pamięci wywołaniami podłączanej warstwy zapytań. To ponowne użycie oznacza, że Yugabyte obsługuje wiele funkcji, w tym:
- Wyzwalacze i procedury składowane
- Rozszerzenia PostgreSQL działające w warstwie zapytań
- Natywna obsługa JSONB
YCQL to podobny do Cassandry interfejs API oparty na wersji 3.10 i ponownie napisany w C++. Dostęp do YCQL uzyskuje się za pośrednictwem standardowych sterowników Cassandry przy użyciu natywnego portu protokołu 9042. Oprócz „waniliowych” komponentów Cassandry, YCQL jest rozszerzony o następujące funkcje:
- Spójność transakcyjna - w przeciwieństwie do Cassandry, Yugabyte YCQL jest transakcyjny.
- Typy danych JSON obsługiwane natywnie
- Tabele mogą mieć indeksy pomocnicze
Obecnie dane zapisane w żadnym interfejsie API nie są dostępne za pośrednictwem drugiego interfejsu API, jednak YSQL może uzyskiwać dostęp do YCQL za pomocą funkcji opakowywania danych obcych PostgreSQL.
Model bezpieczeństwa dostępu do systemu jest dziedziczony z interfejsu API, więc kontrola dostępu dla YSQL wygląda jak PostgreSQL, a YCQL wygląda jak kontrola dostępu Cassandra.
Replikacja między klastrami
Oprócz podstawowej funkcjonalności dystrybucji pojedynczej bazy danych, YugabyteDB ma możliwość replikacji między instancjami bazy danych. Replikacja może być jednokierunkowa lub dwukierunkowa i jest asynchroniczna. Replikacja jednokierunkowa jest używana do tworzenia kopii tylko do odczytu w celu odciążenia lub w trybie do odczytu i zapisu w celu utworzenia aktywnego-pasywnego trybu gotowości. Replikacja dwukierunkowa jest zwykle używana w konfiguracjach do odczytu i zapisu oraz w konfiguracjach aktywny-aktywny, aplikacjach rozproszonych geograficznie itp.
Narzędzia do migracji
Yugabyte zapewnia również YugabyteDB Voyager, narzędzia ułatwiające migrację Oracle i innych podobnych baz danych do YugabyteDB. To narzędzie wspiera migrację schematów, kodu proceduralnego i danych z platformy źródłowej do YugabyteDB.
Zobacz też
- Baza danych w chmurze
- Rozproszony SQL
- Porównanie systemów zarządzania relacyjnymi bazami danych
- Porównanie systemów zarządzania obiektowo-relacyjnymi bazami danych
- Przetwarzanie natywne w chmurze
- System zarządzania bazą danych
- Lista baz danych korzystających z MVCC
- Lista systemów zarządzania relacyjnymi bazami danych
- KaraluchDB
- TiDB