Tarantool – use cases
Tarantool
• Что такое Tarantool?
Tarantool
• Что такое Tarantool?
• Tarantool – это очень-очень быстрая СУБД с сервером приложений на
борту
Tarantool
• Что такое Tarantool?
• Tarantool – это очень-очень быстрая СУБД с сервером приложений на
борту
• Почему Tarantool?
Tarantool
• Что такое Tarantool?
• Tarantool – это очень-очень быстрая СУБД с сервером приложений на
борту
• Почему Tarantool?
• Чтобы ответить на этот вопрос, надо посмотреть на кейсы
Tarantool
• Что такое Tarantool?
• Tarantool – это очень-очень быстрая СУБД с сервером приложений на
борту
• Почему Tarantool?
• Чтобы ответить на этот вопрос, надо посмотреть на кейсы
• Но если кратко, то Tarantool
• Быстрый во всех смыслах этого слова
• Экономный
• Универсальный
• Простой
Tarantool - кейсы использования
• Быстрый OLTP (онлайн обработка транзакций)
• Быстрый OLAP (онлайн аналитика)
• Экономия денег
• Устранение зоопарков
• Быстрое и надежное кэширование
• Сервер приложений внутри СУБД, интеграция нескольких СУБД
• Быстрая разработка фич, микросервисы, минимально времени на борьбу с
высокой нагрузкой
• Упрощение эксплуатации
• IoT-платформа
Быстрый OLTP
• Транзакции в почти реальном времени
• Latency порядка 1 миллисекунды
• Огромная пропускная способность – сотни тысяч или даже миллионы QPS
Примеры:
- Система сессий
- Очереди
- Пуш-уведомления
- Роутинг запросов (для шардинга)
Система сессий
Auth
Tarantool
Authentication
Web
server
1M QPS!
Read/Write
User
Очереди
Queue Tarantool
Push/pop
Web
server
?K QPS! Read/Write
Back-
end
Push
Пуш-уведомления
Queue
Cluster
Events
News
Email
myMail
cloud
app
Queue
ClusterQueue
Cluster
Queue
ClusterQueue
ClusterStorage
Cluster
iOS
API
Android
API
Mobile
Phone/T
ablet
Mobile
Phone/T
ablet
Роутинг запросов (шардинг)
Backend
Tarantool
Query
Web
server
200-300K QPS!
BackendBackendBackendBackend
Быстрый OLAP
• Аналитика в реальном времени
• Много источников данных
• Надо провести аналитику и принять решение в режиме реального времени
Примеры:
- Система онлайн рекламы
- Антиспам
- «Разбери свой ящик»
- Антибрутфорс
- Антифрод
Система онлайн рекламы
Web
server
Source
Of
data
10+ ad units
Web
serverWeb
server
Ad
system
Source
Of
data
Source
Of
data
Антиспам
Web
server
Taranto
ol
Web
serverMX
Anti
Spam
Taranto
ol
Taranto
ol
Taranto
olTarantool
Classification
Clusterization
«Разбери свой ящик»
Web server
Tarantool
Web server
Web
Sort folders
Make decision
10 milliseconds
Антибрутфорс
Auth
Tarantool
Web
server
Anti
Brute
Force
200K QPS!
Read/Write
Антифрод
Tarantool
Web
server
Anti
fraud
Force
?K QPS!
Read/Write
Экономия денег
• Уменьшаем количество серверов
• Убираем плату за лицензию
• Снижаем цену поддержки
Примеры:
- Mail.Ru – профили пользователей
- Mail.Ru – офлайн-сообщения Mail.Ru Agent
- Mail.Ru – система токенов для сборщиков почты
Профили
Web server
Page load
Ajax request
Mobile API call
Web server
Web
server
Tarantool
1M QPS!
8x, 15% CPU
Офлайн-сообщения Mail.Ru Agent
Web server
Save a message
Load messages
Web server
MRIM
Tarantool
100-200K QPS!
500Gb
Система токенов для сборщиков почты
Web server
Put token
Get token
Web server
Mail
Collector
Token
Tarantool
1M QPS!
Refresh token
Устранение зоопарков
• Уменьшаем количество различных NoSQL СУБД в своем арсенале
• Упрощаем администрирование и деплой
• Убираем несогласованность данных
Zoo
Web
Redis
Memcache
MySQL
MongoDB
Zoo
Web
Redis
Memcache
MySQL
MongoDB
Zoo
Web Tarantool
Быстрое и надежное кэширование
• Ускоряем текущий кэш
• Делаем кэш персистентным
• Добавляем к кэшу репликацию и делаем его highly available
• И не меняем текущий код! Tarantool полностью поддерживает
интерфейс Memcached!
Caching
Web
Memcache
• Not reliable
• No replication
• Slow
Disk
Replica
Caching
Web
Tarantool
• Reliable
• Replication
• Fast
Disk
Replica
Сервер приложений внутри СУБД
• Разрабатываем логику прямо внутри СУБД
• Интегрируемся с другими СУБД
Разрабатываем логику внутри СУБД
Web
DBMS
Get
Set
Разрабатываем логику внутри СУБД
Web
Tarantool
Call
Stored
procedure
Интегрируемся с другими СУБД
Web
DBMS 1
Get
Set
DBMS 2
Интегрируемся с другими СУБД
Web
Tarantool
Call
Stored
procedure
Another
DBMS
Микросервисы
• Уменьшаем количество компонент с 4-5 до 2
• Радикально уменьшаем количество серверов (в разы)
• Минимизируем время вывода приложения в продакшн
• Минимизируем затраты команды на борьбу с высокой нагрузкой
Уменьшаем количество компонент
Nginx
Memcache
MySQL
WEB
DB
Proxy
Уменьшаем количество компонент
Nginx
Memcache
MySQL
WEB
DB
Proxy
Уменьшаем количество компонент
Nginx
Memcache
Tarantool
WEB
DB
Proxy
Уменьшаем количество компонент
Nginx
Tarantool
Уменьшаем количество компонент
Nginx
Tarantool
Уменьшаем количество серверов
Nginx
Tarantool
Tarantool
Nginx
Десятки микросервисов на 2+2 commodity серверах!
Минимизируем время выхода в продакшн
REST API
• HTTP included
• Fault-tolerance included
• Sharding included
Lua
procedure
Минимизируем борьбу с высокой нагрузкой
REST API
• HTTP included
• Fault-tolerance included
• Sharding included
• 100+K RPS included
Lua
procedure
Упрощаем эксплуатацию
• Отсутствуют ручные регулярные процедуры (такие как vacuum и т.д.)
• Простая система горячих бэкапов
• Простая система горячего подключения реплики
• Простой перенос с сервера на сервер
• Простая и понятная структура хранения данных
Простая система горячих бэкапов
DBMS Backup
Как создать backup с горячей базы данных?
А как создать горячую реплику?
Простая система горячих бэкапов
Tarantool Backup
Snapshot
(immutable)
Transaction
log
Копируется просто командой scp!!!
Простая система горячего подключения реплики
Tarantool Replica
Snapshot
(immutable)
Transaction
log
Копируется просто командой scp!!!
Простая система переноса с сервера на сервер
Tarantool Replica
Snapshot
(immutable)
Transaction
log
Поднимаем реплику
Говорим реплике, что мастер вот там
Ждем, пока реплика догонится
Делаем реплику мастером
Все!
Простая и понятная структура хранения
Tarantool
Snapshot
(immutable)
Transaction
log
Все изменения применяются в лог транзакций и больше никуда на диск!
IoT-платформа (вишенка на торте)
• Сервер приложений + СУБД на IoT-устройствах
• Может работать на устройствах даже с несколькими мегабайтами
оперативной памяти!
• Может эффективно работать с медленными одноядерными ЦПУ
• Может эффективно использовать ненадежную флэш-память
• Может делать peer-to-peer master-master репликацию между устройствами
без облака
• Может работать без доступа в Интернет
IoT-платформа (вишенка на торте)
• Мало оперативной памяти
• Слабый ЦПУ
• Моргающий Интернет
• Сложно релизить софт
• Медленная и ненадежная flash-память
IoT
устройство
IoT-платформа (вишенка на торте)
• Peer to peer master-master
replication
• Состояние между устройствами
и облаком всегда синхронно!
IoT
устройство
IoT
устройство
Tarantool in Cloud
Заключение
• Я не хочу сказать, что Tarantool – это серебряная пуля
• Скорее Tarantool это СУБД-платформа-конструктор для хайлоуда,
аналитики, всего, что должно работать в онлайне или риалтайм
• Если у вас онлайн и риалтайм, то обязательно взгляните на Tarantool!
На связи!
support@tarantool.org
anikin@corp.mail.ru
tarantool.org
facebook.com/TarantoolDatabase

Основные кейсы использования in-memory СУБД на примере Тарантула и проектов Mail.Ru Group / Денис Аникин (Mail.Ru Group)

Editor's Notes

  • #3 Я много рассказывал про Тарантул на разных конференциях. При этом в основном я касался в основном такого аспекта как скорость работы, а именно таких параметров как времени обработки запросов и максимальную пропускную способность. Это самая быстрая СУБД из известных мне. Но скорость – это не единственное достоинство Тарантула и не единственная фича, из-за которой ему отдают предпочтение. В этом выступлении я постарался более полно обрисовать различные кейсы использования Тарантула, когда он может быть вам полезен.
  • #4 Я много рассказывал про Тарантул на разных конференциях. При этом в основном я касался в основном такого аспекта как скорость работы, а именно таких параметров как времени обработки запросов и максимальную пропускную способность. Это самая быстрая СУБД из известных мне. Но скорость – это не единственное достоинство Тарантула и не единственная фича, из-за которой ему отдают предпочтение. В этом выступлении я постарался более полно обрисовать различные кейсы использования Тарантула, когда он может быть вам полезен.
  • #5 Я много рассказывал про Тарантул на разных конференциях. При этом в основном я касался в основном такого аспекта как скорость работы, а именно таких параметров как времени обработки запросов и максимальную пропускную способность. Это самая быстрая СУБД из известных мне. Но скорость – это не единственное достоинство Тарантула и не единственная фича, из-за которой ему отдают предпочтение. В этом выступлении я постарался более полно обрисовать различные кейсы использования Тарантула, когда он может быть вам полезен.
  • #6 Я много рассказывал про Тарантул на разных конференциях. При этом в основном я касался в основном такого аспекта как скорость работы, а именно таких параметров как времени обработки запросов и максимальную пропускную способность. Это самая быстрая СУБД из известных мне. Но скорость – это не единственное достоинство Тарантула и не единственная фича, из-за которой ему отдают предпочтение. В этом выступлении я постарался более полно обрисовать различные кейсы использования Тарантула, когда он может быть вам полезен.
  • #7 Я много рассказывал про Тарантул на разных конференциях. При этом в основном я касался в основном такого аспекта как скорость работы, а именно таких параметров как времени обработки запросов и максимальную пропускную способность. Это самая быстрая СУБД из известных мне. Но скорость – это не единственное достоинство Тарантула и не единственная фича, из-за которой ему отдают предпочтение. В этом выступлении я постарался более полно обрисовать различные кейсы использования Тарантула, когда он может быть вам полезен.
  • #8 Я сгруппировал юз кейсы в 9 групп. Я где-то слышал прекрасный на мой взгляд способ выступления на конференциях направленный на максимизацию понимания со стороны аудитории – любую мысль надо повторить 3 раза – сначала предварительно говорите то, что сейчас скажите, потом говорите это, потом говорите то, что только что сказали. Следуя это практике, я перечисляю тут все эти группы.
  • #9 Когда нужна OLTP-система, позволяющая обрабатывать транзакции в режиме почти реального времени (с милисекундными задержками) и/или с огромной пропускной способностью (сотни тысяч запросов в секунду). Примеры — система сессий, система антибрутфорса, система противодействия атакам, система очередей и пуш-уведомлений, роутинг запросов между серверами.
  • #14 Когда нужна реал-тайм OLAP-система. Т.е. когда нужно супероперативно принимать решения (желательно в реал-тайме), собирая и анализируя информацию по многим источникам. Примеры: фича "уберись в ящике" в Почте@Mail.Ru, почтовый общий и персональный антиспам, система показа рекламы, любые системы, касающиеся классификации и кластеризации данных, которые должны работать в онлайне.
  • #20 Когда текущая СУБД стоит слишком дорого по серверам или лицензиям, и есть желание заменить ее на нечто, что будет в десятки, если не сотню раз более экономное (за счет отсутствия лицензии и за счет радикального снижения количества железа). Можно эту СУБД заменить на Тарантул.
  • #24 Когда текущая СУБД обложена большим зоопаркам NoSQL решений и кэшей с целью повысить ее производительность, но при этом хочется еще больше производительности и/или хочется решить проблему несогласованности данных. Можно эту СУБД и все обвязки вокруг нее заменить на Тарантул.
  • #28 Когда хочется повысить надежность и/или скорость работы текущего кэширующего решения. Можно это решение заменить на Тарантул.
  • #31 Когда текущая СУБД и/или кэш не позволяют в полном объеме реализовать необходимую логику внутри и использовать их как application server. Можно эту СУБД и/или кэш заменить на Тарантул или можно новые фичи разрабатывать Тарантул, не теряя старых решений (Тарантул умеет интегрироваться и реплицироваться в обе стороны с любыми решениями за счет полноценного алгоритмического языка внутри с мощным сетевым SDK).
  • #36 Когда хочется повысить скорость разработки новых фич, особенно в случае микросервисов, чтобы было минимальное количество компонент и серверов, максимально быстро деливирить в продакшн и тратить минимальное время на борьбу с высокой нагрузкой.
  • #45 Когда хочется упростить эксплуатацию новых фич.
  • #51  IoT platform
  • #52  IoT platform
  • #53  IoT platform
  • #54 Резюмируя сегодняшнее выступление, я хочу сказать, что Тарантул можно рассматривать как платофрму-конструктор, позволяющих собрать высокопроизводительное решение для конкретной задачи. Это не серебрянная пуля в целом, но это мощный инструмент для хайлоуда, для диджитализации, для аналитики, для всего что в рилтайме.
  • #55 Если у вас есть любые вопросы, то не стесняйтесь задавать на наш сапорт, в нашу группу в фейсбуке или мне лично на имейл. Ну и конечно вы можете задать любые вопросы здесь и сейчас, я готов ответить на все 