Upload
-
View
81
Download
0
Embed Size (px)
Citation preview
Tarantool –
кейсы
использования
Dennis Anikin, Director Engineering,
Email & Cloud at Mail.Ru
https://www.facebook.com/TarantoolDatabase
Что такое Tarantool?
• СУБД с сервером приложений
• Открытый исходный код
• Разрабатывается в Mail.Ru
• Существует с 2008 года
• Основное применение: высоконагруженные системы
• Настоящая СУБД с транзакциями, но быстрая как кэш!
Mail.Ru Group включает
продукты
Основаны на Tarantool
Когда использовать Tarantool?
Отсутствуют свойства кэша
• Sub 1 ms latency
• 100K-300K QPS per one CPU core
• 100K updates per node
• Small number of nodes (money saver)
• Expiration
• Always up, no maintenance windows
• Optimized for heavy parallel workloads
СУБД
Когда использовать Tarantool?
Присутствуют свойства кэша!
• Sub 1 ms latency
• 100K-300K QPS per one CPU core
• 100K updates per node
• Small number of nodes (money saver)
• Expiration
• Always up, no maintenance windows
• Optimized for heavy parallel workloads
И свойства СУБД никуда не потерялись
Tarantool DB DB
DB DB СУБД
Когда использовать Tarantool?
Cache
Отсутствуют свойства СУБД
• Persistence
• ACID Transactions
• Replication
• Stored procedures
• Tables, Indexes, Secondary indexes
• Cursors, range and full scan queries
Когда использовать Tarantool?
СУБД
Свойства СУБД
• Persistence
• ACID Transactions
• Replication
• Stored procedures
• Tables, Indexes, Secondary indexes
• Cursors, range and full scan queries
И все свойства кэша
Tarantool
Когда использовать Tarantool?
СУБД
Cache
Когда использовать Tarantool?
Database
Свойства СУБД
• Persistence
• ACID Transactions
• Replication
• Stored procedures
• Tables, Indexes, Secondary indexes
• Cursors, range and full scan queries
Cache
Когда использовать Tarantool?
Database
Cache Свойства кэша
• Sub 1 ms latency
• 100K-300K QPS per one CPU core
• 100K updates per node
• Small number of nodes (money saver)
• Expiration
• Always up, no maintenance windows
• Optimized for heavy parallel workloads
Когда использовать Tarantool?
Database
Cache И новые проблемы!
• Sub 1 ms latency не гарантировано
• 100K-300K QPS не гарантировано
• Несогласованность данных
• Холодный старт
Когда использовать Tarantool?
СУБД
Cache • Свойства СУБД
• Свойства кэша
• Нет новых проблем
Tarantool
Когда использовать Tarantool?
Tarantool СУБД Cache
База данных и кэш в одном флаконе
Базы данных
MySQL, Oracle, Postgres Redis, CouchBase, Aerospike
Reliability Speed
Базы данных
MySQL, Oracle, Postgres Redis, CouchBase, Aerospike
Reliability Speed
Кейсы использования • Система аутентификации
• Система пуш уведомлений
• Система показа рекламы
• Видео проигрыватель
• Веб аналитика
• Хранилище сообщений мессенджеров
• Антиспам
• Замена memcached
• Система мониторинга
• Система рейтингов
• И многое другое …
Система аутентификации • Востребованная (10-1M RPS) КЭШ
• Низкая latency (sub 1 ms) КЭШ
• Высокая доступность
• Постоянно ходит в хранилище КЭШ
• Anti brute-force/anti fraud
• Почти каждое обращение – это транзакция
• Много неизбежной лишней работы
• Большой размер данных
• Expiration КЭШ
• Persistence
Система аутентификации • Востребованная (10-1M RPS)
• Низкая latency (sub 1 ms)
• Высокая доступность СУБД
• Постоянно ходит в хранилище
• Anti brute-force/anti fraud СУБД
• Почти каждое обращение – это транзакция СУБД
• Много неизбежной лишней работы
• Большой размер данных
• Expiration
• Persistence СУБД
Система аутентификации
Система аутентификации
Система аутентификации
Система аутентификации
По логину и паролю
Auth
Tarantool
Authentication
Web server
Anti Brute Force
50K QPS
(transactions)
Read/Write
User
Система аутентификации
По сессии/токену
Web server
Page load
Ajax request
Mobile API call
Web server
Web server
Session Tarantool
Profiles Tarantool
1M QPS!
4x, 20%
8x, 15%
Система пуш уведомлений
Система пуш уведомлений
Server Side
Server Side
Server Side
iOS API
Android API
Mobile Phone/T
ablet
Mobile Phone/T
ablet
Система пуш уведомлений
Server Side
Server Side
Server Side
?
iOS API
Android API
Mobile Phone/T
ablet
Mobile Phone/T
ablet
Система пуш уведомлений
Server Side
Server Side
Server Side
Tarantool
iOS API
Android API
Mobile Phone/T
ablet
Mobile Phone/T
ablet
Система пуш уведомлений
Server Side
Server Side
Server Side
Tarantool
iOS API
Android API
Mobile Phone/T
ablet
Mobile Phone/T
ablet
Queue Tarantool
События
Система пуш уведомлений
Server Side
Server Side
Server Side
Tarantool
iOS API
Android API
Mobile Phone/T
ablet
Mobile Phone/T
ablet
События
Queue Tarantool
200K QPS
read/write
Система показа рекламы
Система показа рекламы
Web server
Source Of
data
10+ рекламных блоков
Web server
Web server
Ad system
Source Of
data
Source Of
data
• На каждый блок из10+
• Лукапим источники данных
• Аггрегируем результат
• Понимаем, что показать
• Тратим несколько ms!
Система показа рекламы
Web server
Source Of
data
10+ рекламных блоков
Web server
Web server
Ad system
Source Of
data
Source Of
data
• Total read QPS is 3M
• Transactions per sec is 1M
Вывод такой: • вам нужно читать/писать горячие данные КЭШ
• с производительностью 100K QPS КЭШ
• параллельно КЭШ
• и вам нужно время ответа менее чем 1 мс КЭШ
• и 99.99% uptime СУБД
• и вы хотите выжать все соки из ваших серверов КЭШ
• при этом иметь транзакции, репликацию, persistence и
все другие свойства классических СУБД СУБД
• и все это в базе данных, которую легко
администрировать СУБД
If
then use Tarantool
facebook.com/TarantoolDatabase
tarantool.org
Спасибо!