Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
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
И свойства СУБД никуда не потерялись
TarantoolDB
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
support@tarantool.org
anikin@corp.mail.ru
Спасибо!

More Related Content

РИФ 2016, Tarantool – кейсы использования