SlideShare a Scribd company logo
1 of 18
Всеволод Дёмкин [email_address] Новые нереляционные системы хранения данных
Зачем всё это нужно? ->  оно в облаке ->  обещание масштабируемости ->  много интересных идей ->  как ни странно, это работает :)
Ландшафт средств хранения до Web Текстовые файлы Иерархические БД навигационные Реляционные БД Сетевые БД Объектные БД BerkleyDB
(с) artlebedev.ru NOSQL постоянные хеш-таблицы колонко- ориентированные документо- ориентированные БД для графов
Наш случай ->  4 млн. пользователей ->  20 тыс. API / час ->  1 API запрос ~ … сек ->  40 сек чтобы дать ответ пользователю БД   КЕШ: ->  волатильность ->  списки рекомендации DB
Постоянные ХТ ->  BerkleyDB ->  memcached -> memcachedb  ->  Tokyo Cabinet + Tyrant ->  Redis ->  Voldemort ->  Amazon SimpleDB
Redis ->  списки, множества, сортированные множества, … ->  волатильность (EXPIRE, TTL) ->  очень быстрый (110k SET/sec, 81k GET/sec) но ->  жрет много памяти ->  не дружит с остальными ->  очень быстро развивается
Документо-ориентированные БД ->  не очень быстро ->  простое взаимод. ->  только MapReduce ->  стабильная! ->  так себе админ. ->  хорошая док. ->  очень быстро ->  взаимод. — сложнее ->  MapReduce + Dynamic ->  есть баги ->  удобная админ. ->  так себе док.
API для взаимодействия ->  raw sockets ->  JSON HTTP REST  ->  Thrift (binary protocols)
Действительно  распределенные CAP -теорема Брюэра Consistency Availability Partition tolerance
Колонко-ориентированные БД ->  Google BigTable ->  Facebook Cassandra ->  HBase
Cassandra ->  BigTable-база ->  Dynamo-архитектура ->  супер-колонки ->  уровни Consistency ->  P2P-распределенный: Gossip   но ->  Thrift
Сложность — фичастость plain-text memcached Tokyo Redis Berkley Couch Mongo Voldemort Cassandra HBase
За счет чего масштабируются? ->  HT — non-blocking IO (iolib)  ->  DODB ,[object Object]
MapReduce ->  СODB — архитектура
Take-away самое главное (как по мне):
Плюсы + некоторые действительно масштабируются + а другие быстро работают :) + есть специфические решения  для некоторых задач + есть хорошие архитектурные решения
Минусы - незрелые - хайп - не до конца понятно - библиотеки, инструменты еще недоразвиты

More Related Content

What's hot

С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
Badoo Development
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
Ontico
 
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Ontico
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
Roman Pavlushko
 

What's hot (16)

Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
 
High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)
 
Александр Гусак — Путь к Rich Content API. Контент «по-богатому»
Александр Гусак — Путь к Rich Content API. Контент «по-богатому»Александр Гусак — Путь к Rich Content API. Контент «по-богатому»
Александр Гусак — Путь к Rich Content API. Контент «по-богатому»
 
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
 
Загрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитикиЗагрузка больших объемов данных для бизнес-аналитики
Загрузка больших объемов данных для бизнес-аналитики
 
2015.02.06 PostgreSQL в Яндексе: история успеха №2
2015.02.06 PostgreSQL в Яндексе: история успеха №22015.02.06 PostgreSQL в Яндексе: история успеха №2
2015.02.06 PostgreSQL в Яндексе: история успеха №2
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
 
МойСклад, облачный сервис ERP
МойСклад, облачный сервис ERPМойСклад, облачный сервис ERP
МойСклад, облачный сервис ERP
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
Redis (Dump 2015)
Redis (Dump 2015)Redis (Dump 2015)
Redis (Dump 2015)
 
Graphite@Scale: Как сохранять миллионы точек в секунду
Graphite@Scale: Как сохранять миллионы точек в секундуGraphite@Scale: Как сохранять миллионы точек в секунду
Graphite@Scale: Как сохранять миллионы точек в секунду
 

Viewers also liked

Tedxkyiv communication guidelines
Tedxkyiv communication guidelinesTedxkyiv communication guidelines
Tedxkyiv communication guidelines
Vsevolod Dyomkin
 
Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?
Vsevolod Dyomkin
 
Lisp как универсальная обертка
Lisp как универсальная оберткаLisp как универсальная обертка
Lisp как универсальная обертка
Vsevolod Dyomkin
 
Lisp for Python Programmers
Lisp for Python ProgrammersLisp for Python Programmers
Lisp for Python Programmers
Vsevolod Dyomkin
 
Natural Language Processing in Practice
Natural Language Processing in PracticeNatural Language Processing in Practice
Natural Language Processing in Practice
Vsevolod Dyomkin
 

Viewers also liked (16)

Lisp Machine Prunciples
Lisp Machine PrunciplesLisp Machine Prunciples
Lisp Machine Prunciples
 
Aspects of NLP Practice
Aspects of NLP PracticeAspects of NLP Practice
Aspects of NLP Practice
 
Tedxkyiv communication guidelines
Tedxkyiv communication guidelinesTedxkyiv communication guidelines
Tedxkyiv communication guidelines
 
Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?Чему мы можем научиться у Lisp'а?
Чему мы можем научиться у Lisp'а?
 
Lisp как универсальная обертка
Lisp как универсальная оберткаLisp как универсальная обертка
Lisp как универсальная обертка
 
CL-NLP
CL-NLPCL-NLP
CL-NLP
 
Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?
 
NLP in the WILD or Building a System for Text Language Identification
NLP in the WILD or Building a System for Text Language IdentificationNLP in the WILD or Building a System for Text Language Identification
NLP in the WILD or Building a System for Text Language Identification
 
Practical NLP with Lisp
Practical NLP with LispPractical NLP with Lisp
Practical NLP with Lisp
 
Lisp for Python Programmers
Lisp for Python ProgrammersLisp for Python Programmers
Lisp for Python Programmers
 
Экосистема Common Lisp
Экосистема Common LispЭкосистема Common Lisp
Экосистема Common Lisp
 
NLP Project Full Cycle
NLP Project Full CycleNLP Project Full Cycle
NLP Project Full Cycle
 
Sugaring Lisp for the 21st Century
Sugaring Lisp for the 21st CenturySugaring Lisp for the 21st Century
Sugaring Lisp for the 21st Century
 
Crash-course in Natural Language Processing
Crash-course in Natural Language ProcessingCrash-course in Natural Language Processing
Crash-course in Natural Language Processing
 
Crash Course in Natural Language Processing (2016)
Crash Course in Natural Language Processing (2016)Crash Course in Natural Language Processing (2016)
Crash Course in Natural Language Processing (2016)
 
Natural Language Processing in Practice
Natural Language Processing in PracticeNatural Language Processing in Practice
Natural Language Processing in Practice
 

Similar to Новые нереляционные системы хранения данных

Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Nikolay Samokhvalov
 
Web весна 2012 лекция 10
Web весна 2012 лекция 10Web весна 2012 лекция 10
Web весна 2012 лекция 10
Technopark
 
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задачCоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задач
DevDay
 
Geo2Tag LBS Platform Architecture Overview
Geo2Tag LBS Platform Architecture OverviewGeo2Tag LBS Platform Architecture Overview
Geo2Tag LBS Platform Architecture Overview
OSLL
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов Avito
Anastasia Goryacheva
 

Similar to Новые нереляционные системы хранения данных (20)

Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
Redis in live
Redis in liveRedis in live
Redis in live
 
Технологии больших веб проектов завтра и послезавтра
Технологии больших веб проектов завтра и послезавтраТехнологии больших веб проектов завтра и послезавтра
Технологии больших веб проектов завтра и послезавтра
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
SDCH, или новые подходы к увеличению производительности, Дмитрий Маркович (Li...
SDCH, или новые подходы к увеличению производительности, Дмитрий Маркович (Li...SDCH, или новые подходы к увеличению производительности, Дмитрий Маркович (Li...
SDCH, или новые подходы к увеличению производительности, Дмитрий Маркович (Li...
 
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 
Web весна 2012 лекция 10
Web весна 2012 лекция 10Web весна 2012 лекция 10
Web весна 2012 лекция 10
 
Сергей Чистович "Подходы к кешированию на UGC-сервисе"
Сергей Чистович "Подходы к кешированию на UGC-сервисе"Сергей Чистович "Подходы к кешированию на UGC-сервисе"
Сергей Чистович "Подходы к кешированию на UGC-сервисе"
 
Nosql and Mongodb
Nosql and MongodbNosql and Mongodb
Nosql and Mongodb
 
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задачCоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задач
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
Geo2Tag LBS Platform Architecture Overview
Geo2Tag LBS Platform Architecture OverviewGeo2Tag LBS Platform Architecture Overview
Geo2Tag LBS Platform Architecture Overview
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов Avito
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
 

Новые нереляционные системы хранения данных

  • 1. Всеволод Дёмкин [email_address] Новые нереляционные системы хранения данных
  • 2. Зачем всё это нужно? -> оно в облаке -> обещание масштабируемости -> много интересных идей -> как ни странно, это работает :)
  • 3. Ландшафт средств хранения до Web Текстовые файлы Иерархические БД навигационные Реляционные БД Сетевые БД Объектные БД BerkleyDB
  • 4. (с) artlebedev.ru NOSQL постоянные хеш-таблицы колонко- ориентированные документо- ориентированные БД для графов
  • 5. Наш случай -> 4 млн. пользователей -> 20 тыс. API / час -> 1 API запрос ~ … сек -> 40 сек чтобы дать ответ пользователю БД КЕШ: -> волатильность -> списки рекомендации DB
  • 6. Постоянные ХТ -> BerkleyDB -> memcached -> memcachedb -> Tokyo Cabinet + Tyrant -> Redis -> Voldemort -> Amazon SimpleDB
  • 7. Redis -> списки, множества, сортированные множества, … -> волатильность (EXPIRE, TTL) -> очень быстрый (110k SET/sec, 81k GET/sec) но -> жрет много памяти -> не дружит с остальными -> очень быстро развивается
  • 8. Документо-ориентированные БД -> не очень быстро -> простое взаимод. -> только MapReduce -> стабильная! -> так себе админ. -> хорошая док. -> очень быстро -> взаимод. — сложнее -> MapReduce + Dynamic -> есть баги -> удобная админ. -> так себе док.
  • 9. API для взаимодействия -> raw sockets -> JSON HTTP REST -> Thrift (binary protocols)
  • 10. Действительно распределенные CAP -теорема Брюэра Consistency Availability Partition tolerance
  • 11. Колонко-ориентированные БД -> Google BigTable -> Facebook Cassandra -> HBase
  • 12. Cassandra -> BigTable-база -> Dynamo-архитектура -> супер-колонки -> уровни Consistency -> P2P-распределенный: Gossip но -> Thrift
  • 13. Сложность — фичастость plain-text memcached Tokyo Redis Berkley Couch Mongo Voldemort Cassandra HBase
  • 14.
  • 15. MapReduce -> СODB — архитектура
  • 16. Take-away самое главное (как по мне):
  • 17. Плюсы + некоторые действительно масштабируются + а другие быстро работают :) + есть специфические решения для некоторых задач + есть хорошие архитектурные решения
  • 18. Минусы - незрелые - хайп - не до конца понятно - библиотеки, инструменты еще недоразвиты
  • 19. «Литература» -> http://en.wikipedia.org/wiki/NoSQL -> http://nosql-database.org/ -> http://habrahabr.ru/blogs/hi/77909/ -> http://bjclark.me/2009/08/04/ nosql-if-only-it-was-that-easy/ -> http://www.eflorenzano.com/blog/post/ my-thoughts-nosql/ -> http://ria101.wordpress.com/2010/02/24/ hbase-vs-cassandra-why-we-moved/ -> http://www.yafla.com/dforbes/ Getting_Real_about_NoSQL_and_the_SQL_ Isnt_Scalable_Lie/