NoSQL - взрыв возможностей

2,065 views
1,890 views

Published on

NoSQL - что это? Новомодное словечко или современных подход, который позволяет обслуживать сотни миллионов запросов в день без использования супер-компьютеров? Почему все крупнейшие интернет-проекты используют базы данных, которые не поддерживают операций по связыванию данных, не гарантируют ACID при проведении транзакций и не имеют фиксированных схем хранения данных? В данном докладе будут проанализированы области применения NoSQL, раскрыты основные принципы, которые используются для хранения записей в неряционных БД, а также приведены характеристики по которым можно классифицировать сотни существующих на данный момент NoSQL базы данных.

Published in: Technology
1 Comment
9 Likes
Statistics
Notes
No Downloads
Views
Total views
2,065
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
0
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide
  • В РАСПРЕДЕЛЁННОЙ СИСТЕМЕ НЕВОЗМОЖНО ОБЕСПЕЧИТЬ ОДНОВРЕМЕННОЕ ВЫПОЛНЕНИЕ ВСЕХ ТРЁХ УСЛОВИЙ: КОРРЕКТНОСТИ, ДОСТУПНОСТИ, УСТОЙЧИВОСТИ К СБОЯМ УЗЛОВ.
  • NoSQL - взрыв возможностей

    1. 1. NoSQL – взрыв возможностейАлексей Солнцев, iForum, 17 апреля 2012
    2. 2. О себе  10 лет в индустрии информационных технологий  Solution Architect в компании Infopulse Украина  Agile волонтёр  Организатор и координатор краудсорсинг-переводов книг на русский языкАлексей  Тренер в центре XP InjectionСолнцев @a_solntsev
    3. 3. Scrum и XP: заметки с передовой @a_solntsev
    4. 4. Scrum и Kanban: выжимаем максимум @a_solntsev
    5. 5. Этимология термина  NoSQL  No значит Not Only  SQL значит RDBMS  NoSQL значит NotOnlyRDMBSЭрик Эванс @a_solntsev
    6. 6. Троллинг off Это не движение Это не противостояние РСУБД Это не серебряная пуля Пока что без стандартов
    7. 7. Что изменилось с 70-ых? @a_solntsev
    8. 8. Цифровая вселенная 7910 эксабайт 1227 эксабайт 130 эксабайт 2005 2010 2015
    9. 9. Информация в фактахОбрабатывает Хранит свыше Получает 160 За 20 минут 24 петабайта 2 миллиардов миллионов добавляют 10информации в фотографий твиттов в миллионов день месяц комментариев @a_solntsev
    10. 10. Проблемы цифровой вселенной  Объёмы данных  Связанность данных  Слабая структурируемость данных  Обработка данных при помощи независимых сервисов @a_solntsev
    11. 11. Ограничения реляционных СУБД  Фиксированная структура  Разряженные таблицы  JOIN плохо масштабируется  Блокировки при записи  Работа с медленными дисками @a_solntsev
    12. 12. Масштабирование 25 20 МасштабированиеЦена решения 15 10 5 0 0 1 2 3 Производительность 4 5 @a_solntsev
    13. 13. Типы масштабированияВертикальное Горизонтальное
    14. 14. Стоимость лицензийПорядка $28 000 за ядро
    15. 15. Репликация Master (Ведущий) Клиент Slave (Ведомый)Нагрузка на Masterсервер при записи Slave (Ведомый) @a_solntsev
    16. 16. Репликация Peer (Равноправный узел) Peer Клиент (Равноправный узел) Проблемы Peerсинхронизации (Равноправный узел) обновлений @a_solntsev
    17. 17. Шардинг Peer (A-J) Роутер PeerКлиент запросов (K-S) Slave Как добавить (T-Z) новый узел? @a_solntsev
    18. 18. MySQL Cluster? @a_solntsev
    19. 19. Как грибы после дождя @a_solntsev
    20. 20. Разнообразие типов Key-Value Column Families Объектно-ориентированные Документ-ориентированные Граф-ориентированные
    21. 21. Второе дыхание NoSQL Теорема Брювера Amazon Dynamo Google BigTable
    22. 22. Свойства распределённых систем Согласованность Доступность Устойчивость к сбоям узлов @a_solntsev
    23. 23. Key -Value Ключ – DHT Кэширование Хранение сессий Value – String, Set Хранение логов Примитивные операции In-memory Сохранение на Нет составных запросов диск @a_solntsev
    24. 24. Распределённая хэш-таблица (DHT) @a_solntsev
    25. 25. Amazon Dynamo и Basho Riak  Решение для систем, требующих высокую степень доступности  Децентрализованная, расп ределённая база данных @a_solntsev
    26. 26. Инкрементальная масштабируемость W A (T,W] (W,A] Узлы объединены в кольцо Все знают о всех (L,T] (A, L] T L @a_solntsev
    27. 27. Инкрементальная масштабируемость W A Пересчёт (A, F] k/n ключей F (F L] , T L @a_solntsev
    28. 28. Согласованность «в конечном итоге» Дано N – количество копий R – кворум на чтение W – кворум на запись Если W > N/2 R+W > N Тогда При чтении получите последнюю версию Иначе Получите согласованность в «конечном итоге»
    29. 29. Согласованность и скорость ответа Быстро, но не совсем надёжно R = 1, W = 1, N = 3Надёжно, но медленноR = 2, W = 3, N = 4
    30. 30. Google BigTable и Apache HBase  Хранение огромных объёмов данных  Обработка огромных объёмов данных  Анализ огромных объёмов данных @a_solntsev
    31. 31. Архитектура Big Table
    32. 32. ColumnFamily
    33. 33. Архитектура MapReduce
    34. 34. Cassandra BigTable Dynamo FacebookP2P архитектура Модель данныхУправление кластером Метод хранения данныхDTH MapReduce Cassandra @a_solntsev
    35. 35. Документ-ориентированные
    36. 36. Схемы и запросы Схема Запросы MySQL Фиксированная ДинамическиеCouchDB Динамическая ФиксированныеMongoDB Динамическая Динамические
    37. 37. Формат документов{ "_id" : ObjectId("497ce96f395f2f052a494fd4"), "title" : "Awesome Blog Post", "body" : "Text text text text, text text text ...", "created": "Tue, 3 Jan 2011 11:13:56 GMT", "tags" : [ "css", "javascipt", "jquery" ], "comments" : [ { "name" : "Kelly Glover" "created" : "Tue, 22 Jan 2011 2:22:32 GMT", "text" : "This is a very good ..." }, ], "shortUrl" : "awesome-blog-post"}
    38. 38. API для запросов// найти записи по условиюdb.stat.find({clicks: {$gt: 10} });// найти все записи и отсортироватьdb.users.find({}).sort({name: 1});//найти все записи, пропустить первые 20 записейdb.users.find().skip(20).limit(10);
    39. 39. Граф-ориентированные Нахождение кратчайшего пути Построение социальных графов Работа с информационными потоками @a_solntsev
    40. 40. Neo4jУзел Key-value параметры Связь
    41. 41. Polyglot persistence
    42. 42. Take away Знайте свой продукт Следите за комьюнити Следите за спонсорами проектов Будьте аккуратней с новинками и клонами @a_solntsev
    43. 43. Оставайтесь на связи@a_solntsevaleksey.solntsev@gmail.comlinkedin.com/in/solntsev

    ×