Spanner — географічно розподілена масштабована багатоваріантна база даних з підтримкою розподілених транзакцій. Сховище було розроблено інженерами Google для внутрішніх сервісів корпорації. Spanner є еволюційним розвитком NoSQL-попередника — Google Bigtable. Сам же c Spanner відносять до сімейства NewSQL-рішень. У research paper заявляється, що дизайн Spanner дозволяє системі масштабуватись на мільйони обчислювальних вузлів через сотні дата-центрів і працювати з трильйонами рядків даних. Spanner використовується в соціальній мережі та в поштовому сервісі GMail
Базові принципи
Spanner є новим типом БД (NewSQL), який об'єднує в собі два світи SQL та NoSQL. Крім наявності NoSQL можливостей, Spanner також володіє складно реалізованими в розподілених системах властивостями :
- підтримка розподілених транзакцій;
- глобальна узгодженість операцій читання між географічно розподіленими ДЦ, таким чином дані, які повертають операції читання з різних ДЦ, завжди узгоджені і несуперечливі;
- не заблокованого читання даних «з минулого» (in past);
- відсутність блокувань для read-only транзакцій;
- атомарне змінення схеми таблиць даних;
- синхронна реплікація;
- автоматична обробка відмов як обчислювальних вузлів, так і ДЦ;
- автоматична міграція даних як між обчислювальними вузлами, так і між ДЦ.
Недоліки
- Ключі таблиці не можуть змінюватися. Не можна додавати key column до існуючої таблиці або видалити з існуючої таблиці. Це означає, що якщо потрібно змінити PK таблиці, то доведеться видалити та створити заново цю таблицю;
- Рекомендується використовувати interleaved table для каскадного оновлення та видалення.
Переваги
- Надається можливість для обробки величезної кількості транзакцій;
- Гарантується цілісність даних з можливістю їх розподілення по всьому світі без обмежень розміром сховища.
Об'єкти для зберігання даних в Cloud Spanner
Для роботи з даними в Spanner існує два типи об'єктів: ключ таблиці і індекси. Призначення даних типів схоже з аналогами в традиційних реляційних базах. Приклад визначення таблиці:
CREATE TABLE Persons ( PersonId INT64 NOT NULL; FirstName STRING (32); LastName STRING (32), PRIMARY KEY (PersonId)).
Порівняння з реляційними і не реляційними БД
В якості керованої реляційної хмарної бази даних Google Cloud Spanner є альтернативою іншим базам даних
Google Cloud Spanner | Реляційні БД | Не реляційні БД | |
---|---|---|---|
Схема | + | + | - |
SQL | + | + | - |
Узгодженість | сильна | сильна | кінцева |
Доступність | висока | відмовостійкість | висока |
Масштабованість | горизонтальна | вертикальна | горизонтальна |
Реплікація | автоматична | налаштована | налаштована |
Примітки
- James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, et al.
- . Архів оригіналу за 8 серпня 2019. Процитовано 29 квітня 2019.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Джерела
- https://ru.bmstu.wiki/Google_Cloud_Spanner [ 5 березня 2021 у Wayback Machine.]
- http://molodyvcheny.in.ua/files/journal/2018/10/65.pdf [ 23 січня 2022 у Wayback Machine.]
- https://habr.com/ru/post/207082/
- https://dou.ua/lenta/articles/google-cloud-spanner-review/ [ 26 листопада 2020 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Spanner geografichno rozpodilena masshtabovana bagatovariantna baza danih z pidtrimkoyu rozpodilenih tranzakcij Shovishe bulo rozrobleno inzhenerami Google dlya vnutrishnih servisiv korporaciyi Spanner ye evolyucijnim rozvitkom NoSQL poperednika Google Bigtable Sam zhe c Spanner vidnosyat do simejstva NewSQL rishen U research paper zayavlyayetsya sho dizajn Spanner dozvolyaye sistemi masshtabuvatis na miljoni obchislyuvalnih vuzliv cherez sotni data centriv i pracyuvati z triljonami ryadkiv danih Spanner vikoristovuyetsya v socialnij merezhi Google ta v poshtovomu servisi GMailBazovi principiSpanner ye novim tipom BD NewSQL yakij ob yednuye v sobi dva sviti SQL ta NoSQL Krim nayavnosti NoSQL mozhlivostej Spanner takozh volodiye skladno realizovanimi v rozpodilenih sistemah vlastivostyami pidtrimka rozpodilenih tranzakcij globalna uzgodzhenist operacij chitannya mizh geografichno rozpodilenimi DC takim chinom dani yaki povertayut operaciyi chitannya z riznih DC zavzhdi uzgodzheni i nesuperechlivi ne zablokovanogo chitannya danih z minulogo in past vidsutnist blokuvan dlya read only tranzakcij atomarne zminennya shemi tablic danih sinhronna replikaciya avtomatichna obrobka vidmov yak obchislyuvalnih vuzliv tak i DC avtomatichna migraciya danih yak mizh obchislyuvalnimi vuzlami tak i mizh DC Nedoliki Klyuchi tablici ne mozhut zminyuvatisya Ne mozhna dodavati key column do isnuyuchoyi tablici abo vidaliti z isnuyuchoyi tablici Ce oznachaye sho yaksho potribno zminiti PK tablici to dovedetsya vidaliti ta stvoriti zanovo cyu tablicyu Rekomenduyetsya vikoristovuvati interleaved table dlya kaskadnogo onovlennya ta vidalennya Perevagi Nadayetsya mozhlivist dlya obrobki velicheznoyi kilkosti tranzakcij Garantuyetsya cilisnist danih z mozhlivistyu yih rozpodilennya po vsomu sviti bez obmezhen rozmirom shovisha Ob yekti dlya zberigannya danih v Cloud SpannerDlya roboti z danimi v Spanner isnuye dva tipi ob yektiv klyuch tablici i indeksi Priznachennya danih tipiv shozhe z analogami v tradicijnih relyacijnih bazah Priklad viznachennya tablici CREATE TABLE Persons PersonId INT64 NOT NULL FirstName STRING 32 LastName STRING 32 PRIMARY KEY PersonId Porivnyannya z relyacijnimi i ne relyacijnimi BDV yakosti kerovanoyi relyacijnoyi hmarnoyi bazi danih Google Cloud Spanner ye alternativoyu inshim bazam danih Google Cloud Spanner Relyacijni BD Ne relyacijni BDShema SQL Uzgodzhenist silna silna kincevaDostupnist visoka vidmovostijkist visokaMasshtabovanist gorizontalna vertikalna gorizontalnaReplikaciya avtomatichna nalashtovana nalashtovanaPrimitkiJames C Corbett Jeffrey Dean Michael Epstein Andrew Fikes Christopher Frost JJ Furman et al Arhiv originalu za 8 serpnya 2019 Procitovano 29 kvitnya 2019 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Dzherelahttps ru bmstu wiki Google Cloud Spanner 5 bereznya 2021 u Wayback Machine http molodyvcheny in ua files journal 2018 10 65 pdf 23 sichnya 2022 u Wayback Machine https habr com ru post 207082 https dou ua lenta articles google cloud spanner review 26 listopada 2020 u Wayback Machine