5. А навіщо?
Чим погані реляційні бази даних
Чим поганий ACID
● Atomicity (Атомарність) - операції в окремій транзакції або
виконаються всі, або жодна;
● Consistency (Консистентність) - база даних буде в
узгодженому/цілісному стані до початку транзакції і після її завершення;
● Isolation (Ізоляція) - кожна операція виконується незалежно одна від
одної;
● Durability (Довговічність) - зроблені зміни залишаються в системі,
незалежно від зовнішніх факторів, аж до подальших змін.
6. ACID не масштабується
Майже не масштабується
Читання – додати кешування
Запис - ?????
● Вертикальне
● Горизонтальне
11. Two phase commit
А якщо транзакція неможлива?
Або один з серверів не доступний?
Все відміняється (Consistency)
12. BASE
В 1997/99 рр. Ерік Брюер (Eric Brewer)
● Basically Available – переважно/завжди
доступна
● Soft-state – гнучка структура
● Eventually consystent – випадкова
консистентність, або консистентність при
певних умовах
13. BASE vs. ACID
ACID BASE
Сильна консистентність
Ізоляція
Консервативність/песимістичість
Складна еволюція
Доступність?
Слабка консистентність
(дозпускається застаріння
даних)
Доступність перш за все
Дозволяються приблизні відповіді
Агресивність/оптимістичність
Простіші
Швидші
Легша еволюція
14. Теорема CAP
В розподіленій системі не можливо добитись
одночасного виконання наступних умов:
консистентності (C), доступності (A), стійкості до
збоїв (P)
15. Теорема CAP
У 2002 році Сет Ґілберт (Seth Gilbert) та
Ненсі Лінч (Nancy Lynch) з MIT
формально/математично довели
правильність припущення Брюера.
Atomic Consistency
DNS!!
16. Типи NoSQL
● Tabular / Wide Column Store / Column Families
(Напівструктуровані)
● Key Value / Tuple Store (Ключ-Значення /
Ключ-Набір значень)
● Document Store (Документо-орієнтовані)
● Graph Databases (Граф-орієнтовані)
18. BigTable
Column oriented
ID Name Age Interests
1 Homer 40 Beer, food, sleep
2 Bart play
3 Kenny 9
ID Name
1 Homer
2 Bart
3 Kenny
ID Age
1 40
3 9
ID Interests
1 beer
1 food
1 sleep
2 play
29. !!!!!!
Amazon: “затримка на 1/10 секунди коштує 1%
продаж.”
Amazon: “хвилина простою коштує 30,000
долларів” (2008 р.)
Amazon Dynamo розроблялось тільки для
однієї фічі: “додати в корзину”
Google BigTable + Amazon Dynamo = Cassandra
(Avinash Lakshman)
30. Документо-орієнтовані
Теж що і Key/Value, але...
значення зберігаються в форматі, який
система “розуміє” - JSON, XML
{
"name": "homer",
"email": "homer.simpson@gmail.com",
"projects": [
"BigTable",
"HBase",
"Cassamdra"
]
}