SlideShare a Scribd company logo
NoSQL
Опыт применения NoSQL решений в
проектах Thumbtack
Анатолий Никулин
1. О задачах
2. О разновидностях (по структуре)
3. О разновидностях (CAP)
4. Об особенностях (транзакции, агрегаты)
5. Беглый обзор NoSQL решений
6. О проектном использовании
Sharding
Replication
Map-Reduce
О задачах
Конкретное, эффективней чем абстрактное.
Разновидности NoSQL (по типу данных)
● KV
● Колоночные
● Документо-ориентированные
● Графовые
INFO HISTORY
Разновидности NoSQL (CAP)
Consistency
System availability
Partition tolerance
● AC
Гибкие запросы, отличная согласованность, но отсутствие
горизонтального масштабирования: MySQL, MS SQL Server, Oracle DB
● AP
Географическая доступность: Cassandra*, MongoDB*,Couchbase
● CP
Аналитика, распределенные вычисления: HBase, MongoDB*
Назначение
Redis
● Open-source, НЕ распределенное, быстрое Key-Value
хранилище
● In-memory с сохранением на диск (append only log /
dump)
● Master-slave репликация (backup).
● Возможно хранить как простые примитивы, так и
сложные структуры (списки, словари, множества)
● Поддерживает сложные операции (работа с битовыми
масками, счетчики)
Redis
● Встроенный язык Lua
● TTL
● Реализован механизм Pub/Sub
● Транзакции
Aerospike
● Proprietary, распределенное, быстрое Key-Value
хранилище
● In-memory, SSD
● Шардинг
● Возможно хранить как простые примитивы, так и
сложные структуры
● Поддерживает вторичные индексы
Aerospike
● Встроенный язык Lua
● CP в CAP теореме
● Поддерживает репликацию между дата центрами
● Поддерживает сложные операции (compare and set,
set if unmodified, set if unique)
Couchbase
● Open-source, распределенное, документо-
ориентированное хранилище, может использоваться
как быстрое KV (кеш).
● Memcache - совместимое, с сохранением на диск.
● Protocol: memcached + extensions
● Язык запросов N1QL
Couchbase
● Все ноды равноценны (master-master replication)
● Отличный web интерфейс для управления
кластером
● Инкрементальный map/reduce
● Репликация между-дата центрами
● Вторичные индексы
MongoDB
● Open-source, распределенное, документо-
ориентированное хранилище
● Не равнозначные ноды Master/slave replication
● Протокол: Custom, binary (BSON)
● Javascript используется в качестве языка запросов
● Функции на стороне сервера. Инкрементальный
map/reduce
● Вторичные индексы
HBase
● Open-source, распределенная, версионная,
колоночная
● Хранит миллионы колонок, миллиарды записей.
● Работает по верх HDFS
● Используется для аналитики данных
● CP в CAP теореме
● Не поддерживает классический update
HBase
● Поддерживает:
○ Hadoop MapReduce
○ Random, fast read and write access
○ Запросы по диапазонам, с использованием
фильтров
○ Атомарный compare and set
○ Strong consistent reads and writes
● Не поддерживает:
○ ACID транзакции
Cassandra
● Open-source, распределенная, колоночная
● Хранит миллионы колонок, миллиарды записей.
● Самодостаточна (в отличии от HBase которая
работает по верх HDFS)
● AP/CP в CAP теореме
● Очень хороша для репликации данных между дата
центрами
Cassandra
● Поддерживает:
○ Язык CQL (без JION)
○ Конфигурируемая consistency
○ Random, fast read and write access
○ Атомарный compare and set, counters
○ MapReduce (нужен Hadoop)
○ Вторичные индексы*
● Не поддерживает:
○ ACID транзакции
HBase vs Cassandra
Это братья, а не конкуренты
Cassandra - AP (доступность)
HBase - CP (аналитика)
Neo4J
● Open-source, графовое хранилище
● Persistent disk-based storage written in Java
● ACID транзакции
● Миллиарды вершин на одном хосте.
● Индексы и атрибуты связи.
● Мощный поиск по графу через API и язык запросов
по графу Cypher
Транзакции, агрегаты, JOIN
● Транзакции не всегда нужны.
● Когда есть самодостаточные агрегаты.
● Блокировки на уровне агрегатов.
● JOIN -> Map-Reduce
В проектах: Tinkoff digital
● HBase - аналитика (сортированные данные, рандомный доступ, в
сравнении с логами)
● MongoDB - купились на шардинг и индексы (плохая идея)
Tinkoff: Data Management Platform
В проектах: Thumbtack RTB Bidder
● Redis Быстрое KV хранилище для оперативного
доступа к статистике
● HBase аналитика и распределенные вычисления
Thumbtack RTB Bidder
Резюме
Нужен быстрый доступ к данным?
Redis, Aerospoke, Couchbase
BigData?
HBase, Cassandra
Разно-структурированные данные и гибкая
система запросов?
MongoDB
Вопросы?

More Related Content

What's hot

Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)Ontico
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
OSLL
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDAndrew Pantyukhin
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
Михаил Тюрин
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
DotNetConf
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахAlexander Mezhov
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
Alexander Tivelkov
 
Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
OSLL
 
Alexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky HpdsAlexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky Hpdsguest092df8
 
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеАлексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеVolha Banadyseva
 
HPC file systems (160761)
HPC file systems (160761)HPC file systems (160761)
HPC file systems (160761)
Vsevolod Shabad
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Ontico
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Ontico
 
Frontera обход испанского интернета
Frontera обход испанского интернетаFrontera обход испанского интернета
Frontera обход испанского интернета
Alexander Sibiryakov
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recovery
Михаил Тюрин
 
СХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзорСХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзор
Vsevolod Shabad
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013Roman Pavlushko
 
HBase inside
HBase insideHBase inside
HBase inside
Anatoliy Nikulin
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storagerit2010
 
Борьба с GС паузами в JVM
Борьба с GС паузами в JVMБорьба с GС паузами в JVM
Борьба с GС паузами в JVM
aragozin
 

What's hot (20)

Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSD
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системах
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
 
Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
 
Alexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky HpdsAlexander Krizhanovsky Krizhanovsky Hpds
Alexander Krizhanovsky Krizhanovsky Hpds
 
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеАлексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проекте
 
HPC file systems (160761)
HPC file systems (160761)HPC file systems (160761)
HPC file systems (160761)
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
 
Frontera обход испанского интернета
Frontera обход испанского интернетаFrontera обход испанского интернета
Frontera обход испанского интернета
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recovery
 
СХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзорСХД для обработки сейсмики: сравнительный обзор
СХД для обработки сейсмики: сравнительный обзор
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
HBase inside
HBase insideHBase inside
HBase inside
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storage
 
Борьба с GС паузами в JVM
Борьба с GС паузами в JVMБорьба с GС паузами в JVM
Борьба с GС паузами в JVM
 

Viewers also liked

Вадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИСВадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИС
Ontico
 
Преимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBПреимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDB
UNETA
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?Alexey Tokar
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Alexey Zinoviev
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
IT-Portfolio
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
IT-Portfolio
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
IT-Portfolio
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015
Shamim bhuiyan
 
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Ontico
 

Viewers also liked (9)

Вадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИСВадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИС
 
Преимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBПреимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDB
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015
 
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
 

Similar to NoSQL thumbtack experience, Анатолий Никулин

СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Ontico
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
Vyacheslav Nikulin
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
Ontico
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
Омские ИТ-субботники
 
Нереляционный SQL
Нереляционный SQLНереляционный SQL
Нереляционный SQL
Andrei Nikolaenko
 
Нереляционный SQL / Андрей Николаенко (IBS)
Нереляционный SQL / Андрей Николаенко (IBS)Нереляционный SQL / Андрей Николаенко (IBS)
Нереляционный SQL / Андрей Николаенко (IBS)
Ontico
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
CodeFest
 
HBase on HappyDev 2013
HBase on HappyDev 2013HBase on HappyDev 2013
HBase on HappyDev 2013
Alex Chistyakov
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs Hibernate
Alexey Zinoviev
 
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
Омские ИТ-субботники
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
OSLL
 
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
Roman Brovko
 
NoSQL: issues and progress, current status and prospects
NoSQL: issues and progress, current status and prospectsNoSQL: issues and progress, current status and prospects
NoSQL: issues and progress, current status and prospects
Andrei Nikolaenko
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
Maxim Zinal
 
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
Alex Chistyakov
 
Не SQL'ем единым
Не SQL'ем единымНе SQL'ем единым
Не SQL'ем единым
Alexander Byndyu
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
Andrei Nikolaenko
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6Technopark
 

Similar to NoSQL thumbtack experience, Анатолий Никулин (20)

СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
 
Nosql and Mongodb
Nosql and MongodbNosql and Mongodb
Nosql and Mongodb
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Нереляционный SQL
Нереляционный SQLНереляционный SQL
Нереляционный SQL
 
Нереляционный SQL / Андрей Николаенко (IBS)
Нереляционный SQL / Андрей Николаенко (IBS)Нереляционный SQL / Андрей Николаенко (IBS)
Нереляционный SQL / Андрей Николаенко (IBS)
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
HBase on HappyDev 2013
HBase on HappyDev 2013HBase on HappyDev 2013
HBase on HappyDev 2013
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs Hibernate
 
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
 
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
 
NoSQL: issues and progress, current status and prospects
NoSQL: issues and progress, current status and prospectsNoSQL: issues and progress, current status and prospects
NoSQL: issues and progress, current status and prospects
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
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
 
Не SQL'ем единым
Не SQL'ем единымНе SQL'ем единым
Не SQL'ем единым
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
 

More from Anatoliy Nikulin

Конференция Юкон. Процессинг данных на лямбда архитектуре.
Конференция Юкон. Процессинг данных на лямбда архитектуре.Конференция Юкон. Процессинг данных на лямбда архитектуре.
Конференция Юкон. Процессинг данных на лямбда архитектуре.
Anatoliy Nikulin
 
Azkaban
AzkabanAzkaban
Архитектура продукта Thumbtack RTB Bidder
Архитектура продукта Thumbtack RTB BidderАрхитектура продукта Thumbtack RTB Bidder
Архитектура продукта Thumbtack RTB Bidder
Anatoliy Nikulin
 
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Anatoliy Nikulin
 
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли  в пяти минутахКуда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли  в пяти минутах
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Anatoliy Nikulin
 
Hive vs Pig
Hive vs PigHive vs Pig
Hive vs Pig
Anatoliy Nikulin
 
Apache Hive
Apache HiveApache Hive
Apache Hive
Anatoliy Nikulin
 

More from Anatoliy Nikulin (7)

Конференция Юкон. Процессинг данных на лямбда архитектуре.
Конференция Юкон. Процессинг данных на лямбда архитектуре.Конференция Юкон. Процессинг данных на лямбда архитектуре.
Конференция Юкон. Процессинг данных на лямбда архитектуре.
 
Azkaban
AzkabanAzkaban
Azkaban
 
Архитектура продукта Thumbtack RTB Bidder
Архитектура продукта Thumbtack RTB BidderАрхитектура продукта Thumbtack RTB Bidder
Архитектура продукта Thumbtack RTB Bidder
 
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
Vaadin thinking of u and i. Или как писать Rich Internet Applications, в стар...
 
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли  в пяти минутахКуда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли  в пяти минутах
Куда мы катимся. Анализ многолетних наблюдений омской ИТ отрасли в пяти минутах
 
Hive vs Pig
Hive vs PigHive vs Pig
Hive vs Pig
 
Apache Hive
Apache HiveApache Hive
Apache Hive
 

NoSQL thumbtack experience, Анатолий Никулин

  • 1. NoSQL Опыт применения NoSQL решений в проектах Thumbtack Анатолий Никулин
  • 2. 1. О задачах 2. О разновидностях (по структуре) 3. О разновидностях (CAP) 4. Об особенностях (транзакции, агрегаты) 5. Беглый обзор NoSQL решений 6. О проектном использовании
  • 7. Разновидности NoSQL (по типу данных) ● KV ● Колоночные ● Документо-ориентированные ● Графовые
  • 13. ● AC Гибкие запросы, отличная согласованность, но отсутствие горизонтального масштабирования: MySQL, MS SQL Server, Oracle DB ● AP Географическая доступность: Cassandra*, MongoDB*,Couchbase ● CP Аналитика, распределенные вычисления: HBase, MongoDB* Назначение
  • 14. Redis ● Open-source, НЕ распределенное, быстрое Key-Value хранилище ● In-memory с сохранением на диск (append only log / dump) ● Master-slave репликация (backup). ● Возможно хранить как простые примитивы, так и сложные структуры (списки, словари, множества) ● Поддерживает сложные операции (работа с битовыми масками, счетчики)
  • 15. Redis ● Встроенный язык Lua ● TTL ● Реализован механизм Pub/Sub ● Транзакции
  • 16. Aerospike ● Proprietary, распределенное, быстрое Key-Value хранилище ● In-memory, SSD ● Шардинг ● Возможно хранить как простые примитивы, так и сложные структуры ● Поддерживает вторичные индексы
  • 17. Aerospike ● Встроенный язык Lua ● CP в CAP теореме ● Поддерживает репликацию между дата центрами ● Поддерживает сложные операции (compare and set, set if unmodified, set if unique)
  • 18. Couchbase ● Open-source, распределенное, документо- ориентированное хранилище, может использоваться как быстрое KV (кеш). ● Memcache - совместимое, с сохранением на диск. ● Protocol: memcached + extensions ● Язык запросов N1QL
  • 19. Couchbase ● Все ноды равноценны (master-master replication) ● Отличный web интерфейс для управления кластером ● Инкрементальный map/reduce ● Репликация между-дата центрами ● Вторичные индексы
  • 20. MongoDB ● Open-source, распределенное, документо- ориентированное хранилище ● Не равнозначные ноды Master/slave replication ● Протокол: Custom, binary (BSON) ● Javascript используется в качестве языка запросов ● Функции на стороне сервера. Инкрементальный map/reduce ● Вторичные индексы
  • 21. HBase ● Open-source, распределенная, версионная, колоночная ● Хранит миллионы колонок, миллиарды записей. ● Работает по верх HDFS ● Используется для аналитики данных ● CP в CAP теореме ● Не поддерживает классический update
  • 22. HBase ● Поддерживает: ○ Hadoop MapReduce ○ Random, fast read and write access ○ Запросы по диапазонам, с использованием фильтров ○ Атомарный compare and set ○ Strong consistent reads and writes ● Не поддерживает: ○ ACID транзакции
  • 23. Cassandra ● Open-source, распределенная, колоночная ● Хранит миллионы колонок, миллиарды записей. ● Самодостаточна (в отличии от HBase которая работает по верх HDFS) ● AP/CP в CAP теореме ● Очень хороша для репликации данных между дата центрами
  • 24. Cassandra ● Поддерживает: ○ Язык CQL (без JION) ○ Конфигурируемая consistency ○ Random, fast read and write access ○ Атомарный compare and set, counters ○ MapReduce (нужен Hadoop) ○ Вторичные индексы* ● Не поддерживает: ○ ACID транзакции
  • 25. HBase vs Cassandra Это братья, а не конкуренты Cassandra - AP (доступность) HBase - CP (аналитика)
  • 26. Neo4J ● Open-source, графовое хранилище ● Persistent disk-based storage written in Java ● ACID транзакции ● Миллиарды вершин на одном хосте. ● Индексы и атрибуты связи. ● Мощный поиск по графу через API и язык запросов по графу Cypher
  • 27. Транзакции, агрегаты, JOIN ● Транзакции не всегда нужны. ● Когда есть самодостаточные агрегаты. ● Блокировки на уровне агрегатов. ● JOIN -> Map-Reduce
  • 28. В проектах: Tinkoff digital ● HBase - аналитика (сортированные данные, рандомный доступ, в сравнении с логами) ● MongoDB - купились на шардинг и индексы (плохая идея)
  • 30. В проектах: Thumbtack RTB Bidder ● Redis Быстрое KV хранилище для оперативного доступа к статистике ● HBase аналитика и распределенные вычисления
  • 32. Резюме Нужен быстрый доступ к данным? Redis, Aerospoke, Couchbase BigData? HBase, Cassandra Разно-структурированные данные и гибкая система запросов? MongoDB