Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,533
On Slideshare
1,285
From Embeds
248
Number of Embeds
6

Actions

Shares
Downloads
14
Comments
0
Likes
1

Embeds 248

http://itevent.if.ua 221
http://slesarenkotatyana.blogspot.com 10
https://www.blogger.com 10
http://it6.local 5
http://www.itevent.if.ua 1
https://slesarenkotatyana.blogspot.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Нереляційні бази даних, або NoSQL
  • 2. План
    • Історія
    • 3. А навіщо?
    • 4. Трохи теорії
    • 5. Типи NoSQL
    • 6. Де використати
  • 7. Історія 2006 – Google BigTable 2007 – Amazon Dynamo 2008 – Facebook Cassandra І почалось...
  • 8. NoSQL? Нереляційні бази даних А до чого тут SQL? NoREL – не звучить З 2009 - розподілені бази даних (Not only SQL)
  • 9. А навіщо? Чим погані реляційні бази даних Чим поганий ACID
    • Atomicity (Атомарність) - операції в окремій транзакції або виконаються всі, або жодна;
    • 10. Consistency (Консистентність) - база даних буде в узгодженому/цілісному стані до початку транзакції і після її завершення;
    • 11. Isolation (Ізоляція) - кожна операція виконується незалежно одна від одної;
    • 12. Durability (Довговічність) - зроблені зміни залишаються в системі, незалежно від зовнішніх факторів, аж до подальших змін.
  • 13. ACID не масштабується Майже не масштабується Читання – додати кешування Запис - ?????
    • Вертикальне
    • 14. Горизонтальне
  • 15. Вертикальне Або купити комп “пакручє” Але
    • Або не стає грошей
    • 16. Або підсідаєш на конкретне “залізо”
  • 17. Горизонтальне Розпаралелити роботу/дані між кількома машинами Клієнти 0 Клієнти 1 Прод. 0 Клієнти 0 Транзакції 0 Транзакції 1
  • 18. Two phase commit 1. Приготоватись до транзакції
  • 19. Two phase commit 2. Завершити транзакцію
  • 20. Two phase commit А якщо транзакція неможлива? Або один з серверів не доступний? Все відміняється (Consistency)
  • 21. BASE В 1997/99 рр. Ерік Брюер (Eric Brewer)
    • Basically Available – переважно/завжди доступна
    • 22. Soft-state – гнучка структура
    • 23. Eventually consystent – випадкова консистентність, або консистентність при певних умовах
  • 24. BASE vs. ACID ACID BASE Сильна консистентність Ізоляція Консервативність/песимістичість Складна еволюція Доступність? Слабка консистентність (дозпускається застаріння даних) Доступність перш за все Дозволяються приблизні відповіді Агресивність/оптимістичність Простіші Швидші Легша еволюція
  • 25. Теорема CAP В розподіленій системі не можливо добитись одночасного виконання наступних умов: консистентності (C), доступності (A), стійкості до збоїв (P)
  • 26. Теорема CAP У 2002 році Сет Ґілберт (Seth Gilbert) та Ненсі Лінч (Nancy Lynch) з MIT формально/математично довели правильність припущення Брюера. Atomic Consistency DNS!!
  • 27. Типи NoSQL
    • Tabular / Wide Column Store / Column Families (Напівструктуровані)
    • 28. Key Value / Tuple Store (Ключ-Значення / Ключ-Набір значень)
    • 29. Document Store (Документо-орієнтовані)
    • 30. Graph Databases (Граф-орієнтовані)
  • 31. Напівструктуровані
  • 35. 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
  • 36. BigTable Невизначена кількість колонок [email_address] Homer Simpson 1234567890 [email_address] Bart Сім'ї колонок (Column family) Клітинка (cell)– перетин рядка і стовпця Декілька версій (timestamp) Id рядка, назва колонки, timestamp
  • 37. BigTable Послідовний запис (LogFile,Memtable) Об'єднане читання (Merged read) Фільтр Блума (Bloom filter) SSTable Періодичне ущільнення (compaction)
  • 38. BigTable MapReduce Map circle circle circle square circle square [circle, 3] [square, 1] [circle, 1] [square, 1] Reduce [circle, 4] [square, 2]
  • 39. !!!!! Google : “півсекундна затримка зменшує трафік на 20%” Apache Hadoop
  • 40. Ключ-Значення (Key/Value)
  • 50. AmazonDynamo
  • 51. AmazonDynamo
  • 52. AmazonDynamo
  • 53. AmazonDynamo
    • Розподілені хеш-таблиці (DHT)
    • 54. Consistent hashing
    • 55. Versioning
    • 56. Vector clocks
    • 57. Quorum
    • 58. Anti-entropy based recovery (gossip)
    • 59. Hinted handoff
  • 60. Революція Ті хто слідує дизайну Amazon Dynamo та інші
  • 63. !!!!!! Amazon: “затримка на 1/10 секунди коштує 1% продаж.” Amazon: “хвилина простою коштує 30,000 долларів” (2008 р.) Amazon Dynamo розроблялось тільки для однієї фічі: “додати в корзину” Google BigTable + Amazon Dynamo = Cassandra (Avinash Lakshman)
  • 64. Документо-орієнтовані Теж що і Key/Value, але... значення зберігаються в форматі, який система “розуміє” - JSON, XML { "name": "homer", "email": "homer.simpson@gmail.com", "projects": [ "BigTable", "HBase", "Cassamdra" ] }
  • 65. Документо-орієнтовані
  • 69. Документо-орієнтовані
    • Адресна/телефонна книга
    • 70. Форум
    • 71. Bug Tracking
    • 72. Списки витрат
    • 73. Звітування часу
    • 74. Списки справ (To-Do lists)
  • 75. Граф-орієнтовані
  • 76. Граф-орієнтовані
  • 81. Граф-орієнтовані Соціальні менежі Маршрут
  • 82. Недоліки Нова (нестабільна) технологія Нова (нестабільна) технологія Більша відповідальність There is no silver bullet
  • 83. Можливі варіанти Таблиця як нескінченне дерево Динамічне створення таблиць Надто багато JOIN-ів Таблиця як кеш/черга/лог
  • 84. Запитання