
Migrujmy nasze sqle do chmury.
Dominic Preuss, menadżer produktu w Google, ogłosił 16 maja, że Cloud Spanner jest gotowy do wykorzystania produkcyjnego.
Czyli czas zacząć migrowanie danych do pierwszej, skalowalnej horyzontalnie (ang. horizontally-scalable), bazy SQL.
Spanner jest bazą relacyjną, silnie spójną (ang. strongly-consistent), przeznaczoną do systemów OLTP (Online Transaction Processing).
O co cały ten krzyk?
W odróżnieniu od innych relacyjnych baz danych (SQL Server, MySQL, Oracle), Google Cloud Spanner możemy skalować globalnie, w setkach centrów danych i nadal działa on jak jedna baza danych, pozwalająca utrzymywać spójność danych w czasie rzeczywistym. Nie wymaga replikacji danych w wielu centrach danych, co ułatwia działanie i redukuje koszty działania systemu.
Skalowanie horyzontalne kontra wertykalne.
Do tej pory bazy relacyjne były bardzo trudne do skalowania horyzontalnego, można było tworzyć klastry, dzielić tabele itp. W prosty sposób nie dało się osiągnąć skalowania poprzez zwiększenie liczby serwerów.
Najczęściej skalowało się relacyjne bazy danych wertykalnie, czyli przez dodanie zasobów do serwera, zwiększenie pamięci i liczby procesorów.
Połączenie świata relacyjnego z NoSql.
Do tej pory skalowalność horyzontalną uzyskiwaliśmy wykorzystując bazy NoSQL. Nie gwarantują one takiej spójności transakcji jak bazy relacyjne, ale zapewniają dużą skalowalność i dostępność.
Cloud Spanner łączy zalety obydwu światów, baz relacyjnych z NoSQL.
Z baz relacyjnych Spanner bierze dostępny schemat bazy danych, możliwość używania języka SQL i silną spójność (ACID) transakcji.
Z baz NoSQL bierze dostępność i skalowalność.
Dodatkowo ze swojej strony dodaje automatyczną replikację danych. Do niezawodności i dokładności replikacji danych w całej sieci Google wykorzystuje zegary atomowe i odbiorniki GPS.
Ciekawostki
Stremowanie wyników zapytania do klienta.
Spanner umożliwia efektywne wykorzystanie długotrwałych zapytań zamiast wykorzystywania zapytań stronicowanych. Kod klienta może też przestać pobierać dane przez dłuższy czas, a potem je wznowić, bez blokowania zasobów serwera.
Restartowanie zapytań.
Spanner automatycznie kompensuje błędy (np.: resharding, binary rollouts). Mają one minimalny wpływ na opóźnienia odpowiedzi. Biblioteka klienta wznawia wykonanie zapytania od miejsca, w którym skończyła.
SQL 2011
Spanner używa najnowszego standardu ANSI SQL 2011.
Przekazywanie postępów w przypadku długotrwałych zapytań.
Niektóre zapytania mogą nie kończyć się w rozsądnym czasie. W przypadku długotrwałych zapytań, w których całkowity czas pracy zapytania jest porównywalny ze średnim czasem niepowodzenia, Spanner zwraca informacje o postępie wykonania zapytania do środowiska wykonawczego.
Skup się na aplikacji, a nie na infrastrukturze.
Jednym z haseł przewodnich Google Cloud Spannera jest:
„Korzystaj z zasobów informatycznych, aby skupić się na logice aplikacji, zamiast spędzać cenny czas na zarządzaniu sprzętem i oprogramowaniem. W pełni zarządzana i zbudowana w chmurze automatyczna replikacja i synchronizacja replikacji Cloud Spanner gwarantują wysoką dostępność aplikacji, bez potrzeby instalowania awaryjnej i kompleksowej infrastruktury replikacji”.