Основные кейсы использования in-memory СУБД на примере...
-
Upload
ontico -
Category
Engineering
-
view
256 -
download
0
Transcript of Основные кейсы использования in-memory СУБД на примере...
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
Пуш-уведомления
QueueCluster
Events
News
myMailcloudapp
QueueClusterQueueCluster
QueueClusterQueue
ClusterStorageCluster
iOSAPI
AndroidAPI
MobilePhone/Tablet
MobilePhone/Tablet
Роутинг запросов (шардинг)
Backend
Tarantool
Query
Web server
200-300K QPS!
BackendBackendBackendBackend
Быстрый OLAP
• Аналитика в реальном времени• Много источников данных• Надо провести аналитику и принять решение в режиме реального времени
Примеры:
- Система онлайн рекламы- Антиспам- «Разбери свой ящик»- Антибрутфорс- Антифрод
Система онлайн рекламы
Web server
SourceOf
data
10+ ad units
Web serverWeb
server
Ad system
SourceOf
data
SourceOf
data
Антиспам
Web server
Tarantool
Web serverMX
Anti Spam
Tarantool
Tarantool
TarantoolTarantool
ClassificationClusterization
«Разбери свой ящик»
Web server
Tarantool
Web server
Web
Sort foldersMake decision
10 milliseconds
Антибрутфорс
Auth
Tarantool
Web server
Anti BruteForce
200K QPS!
Read/Write
Антифрод
TarantoolWeb
server
Anti fraudForce
?K QPS!
Read/Write
Экономия денег
• Уменьшаем количество серверов• Убираем плату за лицензию• Снижаем цену поддержки
Примеры:
- Mail.Ru – профили пользователей- Mail.Ru – офлайн-сообщения Mail.Ru Agent- Mail.Ru – система токенов для сборщиков почты
Профили
Web server
Page load
Ajax request
Mobile API callWeb serverWeb
serverTarantool
1M QPS!8x, 15% CPU
Офлайн-сообщения Mail.Ru Agent
Web server
Save a message
Load messagesWeb server
MRIMTarantool
100-200K QPS! 500Gb
Система токенов для сборщиков почты
Web server
Put token
Get tokenWeb serverMailCollector
TokenTarantool
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
CallStored
procedure
Интегрируемся с другими СУБД
Web
DBMS 1Get
Set
DBMS 2
Интегрируемся с другими СУБД
Web Tarantool
CallStored
procedure
AnotherDBMS
Микросервисы
• Уменьшаем количество компонент с 4-5 до 2• Радикально уменьшаем количество серверов (в разы)• Минимизируем время вывода приложения в продакшн• Минимизируем затраты команды на борьбу с высокой нагрузкой
Уменьшаем количество компонент
Nginx
Memcache
MySQLWEBDB
Proxy
Уменьшаем количество компонент
Nginx
Memcache
MySQLWEBDB
Proxy
Уменьшаем количество компонент
Nginx
Memcache
TarantoolWEBDB
Proxy
Уменьшаем количество компонент
Nginx
Tarantool
Уменьшаем количество компонент
Nginx
Tarantool
Уменьшаем количество серверов
Nginx
TarantoolTarantool
Nginx
Десятки микросервисов на 2+2 commodity серверах!
Минимизируем время выхода в продакшн
REST API
• HTTP included• Fault-tolerance included• Sharding included
Luaprocedure
Минимизируем борьбу с высокой нагрузкой
REST API
• HTTP included• Fault-tolerance included• Sharding included• 100+K RPS included
Luaprocedure
Упрощаем эксплуатацию
• Отсутствуют ручные регулярные процедуры (такие как vacuum и т.д.)• Простая система горячих бэкапов• Простая система горячего подключения реплики• Простой перенос с сервера на сервер• Простая и понятная структура хранения данных
Простая система горячих бэкапов
DBMS Backup
Как создать backup с горячей базы данных?А как создать горячую реплику?
Простая система горячих бэкапов
Tarantool Backup
Snapshot(immutable)
Transactionlog
Копируется просто командой scp!!!
Простая система горячего подключения реплики
Tarantool Replica
Snapshot(immutable)
Transactionlog
Копируется просто командой scp!!!
Простая система переноса с сервера на сервер
Tarantool Replica
Snapshot(immutable)
Transactionlog
Поднимаем репликуГоворим реплике, что мастер вот тамЖдем, пока реплика догонитсяДелаем реплику мастеромВсе!
Простая и понятная структура хранения
Tarantool
Snapshot(immutable)
Transactionlog
Все изменения применяются в лог транзакций и больше никуда на диск!
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!
На связи!
tarantool.org
facebook.com/TarantoolDatabase