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”.

Michał Szafrański
Programista - Architekt - Projektant Oprogramowania. Zainteresowania: Cloud Computing - Architectural Design Patterns - Google Cloud Platform. Miłośnik sprzętu i oprogramowania firmy Apple.

Comments are closed.