65
Tarantool Case Studies Dennis Anikin, Director Engineering, Email & Cloud at Mail.Ru

Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Embed Size (px)

Citation preview

Page 1: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Tarantool Case StudiesDennis Anikin, Director Engineering,Email & Cloud at Mail.Ru

Page 2: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Что такое Tarantool?

• СУБД с сервером приложений• Открытый исходный код• Разрабатывается в Mail.Ru• Существует с 2007 года• Основное применение: heavy read/write workloads• Настоящая СУБД с транзакциями, но быстрая как кэш!

Page 3: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Mail.Ru Group включает продукты

Page 4: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Основаны на Tarantool

Page 5: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

No cache properties

• 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

СУБД

Page 6: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

DB

Отсутствуют свойства кэша

• 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

DBDB

DBСУБД

Особенно, если СУБД шардированна!!!

Page 7: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать 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

И свойства СУБД никуда не потерялись

TarantoolDBDB

DBDBСУБД

Page 8: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

Cache

Отсутствуют свойства СУБД

• Persistence• ACID Transactions• Replication• Stored procedures• Tables, Indexes, Secondary indexes• Cursors, range and full scan queries

Page 9: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

СУБД

Свойства СУБД

• Persistence• ACID Transactions• Replication• Stored procedures• Tables, Indexes, Secondary indexes• Cursors, range and full scan queries

И все свойства кэша

Tarantool

Page 10: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

СУБД

Cache

Page 11: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

Database

Свойства СУБД

• Persistence• ACID Transactions• Replication• Stored procedures• Tables, Indexes, Secondary indexes• Cursors, range and full scan queries

Cache

Page 12: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать 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

Page 13: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

Database

Cache И новые проблемы!

• Sub 1 ms latency is not guaranteed• 100K-300K QPS is not guaranteed• Inconsistency• Cold start

Page 14: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

Database

Cache • Не совсем СУБД• Не совсем кэш• И новые проблемы

Page 15: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

СУБД

Cache • Свойства СУБД• Свойства кэша• Нет новых проблем

Tarantool

Page 16: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

• Свойства СУБД• Свойства кэша• Нет новых проблем

Tarantool

Page 17: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

TarantoolСУБД Cache

База данных и кэш в одном флаконе

Page 18: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Когда использовать Tarantool?

TarantoolDB Cache

База данных и кэш в одном флаконеHot data

Sub 1ms latency99% of requests <1 ms99,9% of requests <3 ms

Write heavy workloads100K per core

1M+ QPS per node

99,99% availability

Heavy parallelizedworkloads

Small number of nodes

Page 19: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Свойства специфичные для кэша• Sub 1 ms latency• 100K-300K QPS per one CPU core• Expiration• Fast write operations (>100K QPS per node)• Memcached interface• Always up, no maintenance windows• Optimal memory footprint• Optimized for heavy parallel workloads

Page 20: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Свойства специфичные для кэша• Sub 1 ms latency• 100K-300K QPS per one CPU core• Expiration• Fast write operations (>100K QPS per node)• Memcached interface• Always up, no maintenance windows• Optimal memory footprint• Optimized for heavy parallel workloads

Но их нет в СУБД!

Page 21: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

In Tarantool• Sub 1 ms latency• 100K-300K QPS per one CPU core• Expiration• Fast write operations (>100K QPS per node)• Memcached interface• Always up, no maintenance windows• Optimal memory footprint• Optimized for heavy parallel workloads

Page 22: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Свойства СУБД• Persistence• ACID Transactions• Replication (master-slave &

master-master)• Stored procedures• Non-blocking server side scripting• Convenient backups

• Cursors, Range & Full scan queries• Primary & Secondary indexes• Tables• Fast write operations (>100K QPS per

node)• SQL (in pipeline)• Disk store (in pipeline)

Page 23: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Свойства СУБД• Persistence• ACID Transactions• Replication (master-slave &

master-master)• Stored procedures• Non-blocking server side scripting• Convenient backups

• Cursors, Range & Full scan queries• Primary & Secondary indexes• Tables• Fast write operations (>100K QPS per

node)• SQL• Disk store

Но их нет в кэше!

Page 24: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

In Tarantool• Persistence• ACID Transactions• Replication (master-slave &

master-master)• Stored procedures• Non-blocking server side

scripting• Convenient backups

• Cursors, Range & Full scan queries• Primary & Secondary indexes• Tables• Fast write operations (>100K QPS

per node)• SQL (in flux)• Disk store (in flux)

Page 25: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Базы данныхMySQL, Oracle, Postgres Redis, CouchBase, Aerospike

Reliability Speed

Page 26: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Базы данныхMySQL, Oracle, Postgres Redis, CouchBase, Aerospike

Reliability Speed

Page 27: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Use cases

Page 28: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Use cases• Система аутентификации• Система пуш уведомлений• Система показа рекламы

• Видео проигрыватель• Веб аналитика• Хранилище сообщений мессенджеров• Антиспам• Замена memcached• Система мониторинга• Система рейтингов• И многое другое …

Page 29: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации

Page 30: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)

Page 31: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)

Page 32: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность

Page 33: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность• Постоянно ходит в хранилище

Page 34: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность• Постоянно ходит в хранилище• Anti brute-force/anti fraud

Page 35: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность• Постоянно ходит в хранилище• Anti brute-force/anti fraud• Почти каждое обращение – это транзакция

Page 36: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность• Постоянно ходит в хранилище• Anti brute-force/anti fraud• Почти каждое обращение – это транзакция• Много неизбежной лишней работы

Page 37: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность• Постоянно ходит в хранилище• Anti brute-force/anti fraud• Почти каждое обращение – это транзакция• Много неизбежной лишней работы• Большой размер данных

Page 38: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность• Постоянно ходит в хранилище• Anti brute-force/anti fraud• Почти каждое обращение – это транзакция• Много неизбежной лишней работы• Большой размер данных• Expiration• Persistence

Page 39: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS) КЭШ• Низкая latency (sub 1 ms) КЭШ• Высокая доступность• Постоянно ходит в хранилище КЭШ• Anti brute-force/anti fraud• Почти каждое обращение – это транзакция• Много неизбежной лишней работы• Большой размер данных• Expiration КЭШ• Persistence

Page 40: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации• Востребованная (10-1M RPS)• Низкая latency (sub 1 ms)• Высокая доступность СУБД• Постоянно ходит в хранилище• Anti brute-force/anti fraud СУБД• Почти каждое обращение – это транзакция СУБД• Много неизбежной лишней работы• Большой размер данных• Expiration• Persistence СУБД

Page 41: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации

Page 42: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации

Page 43: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификации

Page 44: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификацииПо логину и паролю

Auth

Tarantool

AuthenticationWeb

server

Anti BruteForce

50K QPS (transactions)

Read/Write

User

Page 45: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система аутентификацииПо сессии/токену

Web server

Page load

Ajax request

Mobile API callWeb

serverWeb server

SessionTarantool

ProfilesTarantool

1M QPS!

4x, 20%

8x, 15%

Page 46: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

Page 47: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

ServerSide

ServerSide

ServerSide

MobilePhone/Tablet

MobilePhone/Tablet

Page 48: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

ServerSide

ServerSide

ServerSide

iOSAPI

AndroidAPI

MobilePhone/Tablet

MobilePhone/Tablet

Page 49: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

ServerSide

ServerSide

ServerSide

?

iOSAPI

AndroidAPI

MobilePhone/Tablet

MobilePhone/Tablet

Page 50: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

ServerSide

ServerSide

ServerSide

Tarantool

iOSAPI

AndroidAPI

MobilePhone/Tablet

MobilePhone/Tablet

Page 51: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

ServerSide

ServerSide

ServerSide

Tarantool

iOSAPI

AndroidAPI

MobilePhone/Tablet

MobilePhone/Tablet

Events

QueueTarantool

Page 52: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система пуш уведомлений

ServerSide

ServerSide

ServerSide

Tarantool

iOSAPI

AndroidAPI

MobilePhone/Tablet

MobilePhone/Tablet

Events

QueueTarantool

200K QPS read/write

Page 53: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Page 54: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

Page 55: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

• Per each unit out of 10+

Page 56: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

• Per each unit out of 10+• Lookup to all the sources

Page 57: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

• Per each unit out of 10+• Lookup to all the sources• Aggregate the result

Page 58: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

• Per each unit out of 10+• Lookup to all the sources• Aggregate the result• Determine which ad to show

Page 59: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

• Per each unit out of 10+• Lookup to all the sources• Aggregate the result• Determine which ad to show• Spending less than 1 ms!

Page 60: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Система показа рекламы

Web server

SourceOf

data

10+ рекламных блоков

Web serverWeb

server

Ad system

SourceOf

data

SourceOf

data

• Total read QPS is 3M• Transactions per sec is 1M

Page 61: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

И это были только 3 кейса

Page 62: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Вывод такой:• вам нужно читать/писать горячие данные• с производительностью 100K QPS• параллельно• и вам нужно время ответа менее чем 1 мс• и 99.99% uptime• и вы хотите выжать все соки из ваших серверов• при этом иметь транзакции, репликацию, persistence и

все другие свойства классических СУБД• и все это в базе данных, которую легко

администрировать

If

Page 63: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

Вывод такой:• вам нужно читать/писать горячие данные КЭШ• с производительностью 100K QPS КЭШ• параллельно КЭШ• и вам нужно время ответа менее чем 1 мс КЭШ• и 99.99% uptime СУБД• и вы хотите выжать все соки из ваших серверов КЭШ• при этом иметь транзакции, репликацию, persistence и

все другие свойства классических СУБД СУБД• и все это в базе данных, которую легко

администрировать СУБД

If

Page 64: Dennis Anikin - Tarantool Case Studies in Mail.Ru Group

then use Tarantool