Czy to Oracle, MySQL, czy coś, co sami zbudowali?
Czy to Oracle, MySQL, czy coś, co sami zbudowali?
Odpowiedzi:
Rozproszony system przechowywania danych strukturalnych
Bigtable to rozproszony system pamięci masowej (zbudowany przez Google) do zarządzania danymi strukturalnymi, zaprojektowany do skalowania do bardzo dużego rozmiaru: petabajtów danych na tysiącach serwerów towarowych.
Wiele projektów w Google przechowuje dane w Bigtable, w tym indeksowanie stron internetowych, Google Earth i Google Finance. Aplikacje te nakładają na Bigtable bardzo różne wymagania, zarówno pod względem wielkości danych (od adresów URL, stron internetowych po zdjęcia satelitarne), jak i wymagań dotyczących opóźnień (od masowego przetwarzania zaplecza do udostępniania danych w czasie rzeczywistym).
Pomimo tych zróżnicowanych wymagań, Bigtable z powodzeniem dostarczył elastyczne, wysokowydajne rozwiązanie dla wszystkich tych produktów Google.
Niektóre funkcje
Architektura
BigTable nie jest relacyjną bazą danych. Nie obsługuje złączeń ani nie obsługuje bogatych zapytań podobnych do SQL. Każda tabela jest wielowymiarową rzadką mapą. Tabele składają się z wierszy i kolumn, a każda komórka ma znacznik czasu. Może istnieć wiele wersji komórki z różnymi znacznikami czasu. Znacznik czasu pozwala na takie operacje, jak „wybieranie wersji n tej strony” lub „usuwanie komórek starszych niż określona data / godzina”.
Aby zarządzać ogromnymi tabelami, Bigtable dzieli tabele na granicach wierszy i zapisuje je jako tablety. Tablet ma około 200 MB, a każde urządzenie zapisuje około 100 tabletek. Ta konfiguracja umożliwia rozłożenie tabletów z jednego stołu na wiele serwerów. Pozwala także na precyzyjne równoważenie obciążenia. Jeśli jeden stół odbiera wiele zapytań, może zrzucić inne tablety lub przenieść zajęty stół na inny komputer, który nie jest tak zajęty. Ponadto w przypadku awarii komputera tablet może zostać rozłożony na wiele innych serwerów, dzięki czemu wpływ na wydajność danego komputera jest minimalny.
Tabele są przechowywane jako niezmienne tabele SST i ogon dzienników (jeden dziennik na maszynę). Gdy w urządzeniu zabraknie pamięci systemowej, kompresuje niektóre tablety przy użyciu zastrzeżonych przez Google technik kompresji (BMDiff i Zippy). Niewielkie zagęszczenia obejmują tylko kilka tabletów, a główne zagęszczania dotyczą całego systemu tabel i odzyskiwania miejsca na dysku twardym.
Lokalizacje tabletów Bigtable są przechowywane w komórkach. Wyszukiwanie każdego konkretnego tabletu jest obsługiwane przez trójwarstwowy system. Klienci otrzymują punkt do tabeli META0, której jest tylko jedna. Tabela META0 śledzi wiele tabletów META1, które zawierają lokalizacje badanych tabletów. Zarówno META0, jak i META1 intensywnie korzystają z pobierania wstępnego i buforowania, aby zminimalizować wąskie gardła w systemie.
Realizacja
BigTable jest oparty na systemie plików Google (GFS), który jest używany jako magazyn kopii zapasowych plików dziennika i danych. GFS zapewnia niezawodne miejsce do przechowywania SSTables, zastrzeżonego przez Google formatu plików służącego do przechowywania danych w tabeli.
Inną usługą, z której korzysta BigTable, jest Chubby , wysoce dostępna, niezawodna usługa rozproszonej blokady. Chubby pozwala klientom na blokadę, prawdopodobnie kojarząc ją z niektórymi metadanymi, które może odnowić, wysyłając z powrotem wiadomości Chubby. Blokady są przechowywane w hierarchicznej strukturze nazewnictwa podobnej do systemu plików.
W systemie Bigtable istnieją trzy podstawowe typy serwerów :
Przykład z artykułu badawczego Google:
Fragment przykładowej tabeli przechowującej strony internetowe. Nazwa wiersza to odwrócony adres URL . Rodzina kolumn zawartości zawiera zawartość strony , a rodzina kolumn kotwicy zawiera tekst wszystkich kotwic, które odwołują się do strony. Strona główna CNN jest przywoływana zarówno przez stronę główną Sports Illustrated, jak i MY-look, więc wiersz zawiera kolumny o nazwach
anchor:cnnsi.com
ianchor:my.look.ca
. Każda komórka kotwicząca ma jedną wersję ; kolumna zawartość ma trzy wersje , na znaczniki czasut3
,t5
it6
.
API
Typowe operacje na BigTable to tworzenie i usuwanie tabel i rodzin kolumn, zapisywanie danych i usuwanie kolumn z wiersza. BigTable udostępnia te funkcje programistom aplikacji w interfejsie API. Transakcje są obsługiwane na poziomie wiersza, ale nie dla kilku kluczy wierszy.
Oto link do pliku PDF pracy badawczej .
I tutaj możesz znaleźć wideo przedstawiające Jeffa Deana z Google'a podczas wykładu na Uniwersytecie Waszyngtońskim , omawiającego system przechowywania treści Bigtable używany w backendie Google.
To coś, co sami zbudowali - nazywa się Bigtable.
http://en.wikipedia.org/wiki/BigTable
W bazie danych znajduje się artykuł Google:
Spanner to globalnie dystrybuowany przez Google system zarządzania relacyjnymi bazami danych (RDBMS), następca BigTable . Google twierdzi, że nie jest to czysty system relacyjny, ponieważ każda tabela musi mieć klucz podstawowy.
Oto link do artykułu.
Spanner to skalowalna, wieloplikowa, dystrybuowana globalnie i synchronicznie replikowana baza danych Google. Jest to pierwszy system, który dystrybuuje dane w skali globalnej i obsługuje zewnętrznie spójne transakcje rozproszone. Ten artykuł opisuje strukturę Spannera, jego zestaw funkcji, uzasadnienie różnych decyzji projektowych oraz nowatorski interfejs API czasu, który ujawnia niepewność zegara. Ten interfejs API i jego implementacja mają kluczowe znaczenie dla wspierania zewnętrznej spójności i szeregu zaawansowanych funkcji: nieblokujących odczytów w przeszłości, bezblokowych transakcji tylko do odczytu i zmian schematu atomowego w całym programie Spanner.
Inną bazą danych wymyśloną przez Google jest Megastore . Oto streszczenie:
Megastore to system pamięci masowej opracowany w celu spełnienia wymagań dzisiejszych interaktywnych usług online. Megastore łączy skalowalność magazynu danych NoSQL z wygodą tradycyjnego RDBMS w nowatorski sposób i zapewnia zarówno silne gwarancje spójności, jak i wysoką dostępność. Zapewniamy w pełni szeregowalną semantykę ACID w ramach drobnoziarnistych partycji danych. Partycjonowanie pozwala nam synchronicznie replikować każdy zapis w sieci rozległej z rozsądnym opóźnieniem i zapewnia płynne przełączanie awaryjne między centrami danych. W tym artykule opisano semantykę i algorytm replikacji Megastore. Opisuje także nasze doświadczenie związane z obsługą szerokiej gamy usług produkcyjnych Google zbudowanych w Megastore.
Jak wspomnieli inni, Google korzysta z własnego rozwiązania o nazwie BigTable i opublikowało kilka artykułów opisujących to w prawdziwym świecie.
Apaczowie mają implementację pomysłów przedstawionych w tych artykułach zwanych HBase . HBase jest częścią większego projektu Hadoop, który według ich strony „jest platformą programową, która pozwala łatwo pisać i uruchamiać aplikacje przetwarzające ogromne ilości danych”. Niektóre testy porównawcze są imponujące. Ich miejsce jest w http://hadoop.apache.org .
Chociaż Google używa BigTable do wszystkich swoich głównych aplikacji, używają również MySQL do innych (być może mniejszych) aplikacji.
Być może warto również wiedzieć, że BigTable nie jest relacyjną bazą danych (jak MySQL), ale ogromną (rozproszoną) tabelą skrótów, która ma bardzo różne cechy. Możesz bawić się z (ograniczoną wersją) BigTable na platformie Google AppEngine .
Oprócz wspomnianego powyżej Hadoop istnieje wiele innych implementacji, które próbują rozwiązać te same problemy, co BigTable (skalowalność, dostępność). Widziałem wczoraj fajny wpis na blogu, w którym wymieniono większość z nich tutaj .
Google używa głównie Bigtable.
Bigtable to rozproszony system pamięci masowej do zarządzania danymi strukturalnymi, zaprojektowany do skalowania do bardzo dużych rozmiarów.
Aby uzyskać więcej informacji, pobierz dokument stąd .
Google korzysta również z baz danych Oracle i MySQL w niektórych swoich aplikacjach.
Wszelkie dodatkowe informacje, które możesz dodać, są bardzo mile widziane.
Google also use Oracle
- potrzebne odniesienie.
Usługi Google mają architekturę trwałości polyglot. BigTable jest wykorzystywany przez większość swoich usług, takich jak YouTube, wyszukiwarka Google, Google Analytics itp. Usługa wyszukiwania początkowo korzystała z MapReduce ze względu na infrastrukturę indeksującą, ale później przeszła na BigTable podczas wydania Caffeine.
Magazyn danych Google Cloud ma ponad 100 aplikacji produkowanych w Google zarówno dla użytkowników wewnętrznych, jak i zewnętrznych. Aplikacje takie jak Gmail, Picasa, Kalendarz Google, Android Market i App Engine korzystają z Cloud Datastore i Megastore.
Trendy Google używają MillWheel do przetwarzania strumieniowego. Google Ads początkowo używał MySQL, a później migrował do F1 DB - niestandardowej pisemnej rozproszonej relacyjnej bazy danych. Youtube używa MySQL z Vitess. Google przechowuje eksabajty danych na serwerach towarowych za pomocą systemu plików Google.
Źródło: Bazy danych Google: W jaki sposób Google Services przechowują dane w skali Petabyte-Exabyte?
Baza danych YouTube - w jaki sposób przechowuje tak wiele filmów, nie zabraknie miejsca?