36
Tarantool кейсы использования Dennis Anikin, Director Engineering, Email & Cloud at Mail.Ru https://www.facebook.com/TarantoolDatabase

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

  • Upload
    -

  • View
    72

  • Download
    0

Embed Size (px)

Citation preview

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

Tarantool –

кейсы

использования

Dennis Anikin, Director Engineering,

Email & Cloud at Mail.Ru

https://www.facebook.com/TarantoolDatabase

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

Что такое Tarantool?

• СУБД с сервером приложений

• Открытый исходный код

• Разрабатывается в Mail.Ru

• Существует с 2008 года

• Основное применение: высоконагруженные системы

• Настоящая СУБД с транзакциями, но быстрая как кэш!

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

Mail.Ru Group включает

продукты

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

Основаны на Tarantool

Page 5: РИФ 2016, 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

СУБД

Page 6: РИФ 2016, 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 DB DB

DB DB СУБД

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

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

Cache

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

• Persistence

• ACID Transactions

• Replication

• Stored procedures

• Tables, Indexes, Secondary indexes

• Cursors, range and full scan queries

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

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

СУБД

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

• Persistence

• ACID Transactions

• Replication

• Stored procedures

• Tables, Indexes, Secondary indexes

• Cursors, range and full scan queries

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

Tarantool

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

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

СУБД

Cache

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

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

Database

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

• Persistence

• ACID Transactions

• Replication

• Stored procedures

• Tables, Indexes, Secondary indexes

• Cursors, range and full scan queries

Cache

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

Когда использовать 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 12: РИФ 2016, Tarantool – кейсы использования

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

Database

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

• Sub 1 ms latency не гарантировано

• 100K-300K QPS не гарантировано

• Несогласованность данных

• Холодный старт

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

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

СУБД

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

• Свойства кэша

• Нет новых проблем

Tarantool

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

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

Tarantool СУБД Cache

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

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

Базы данных

MySQL, Oracle, Postgres Redis, CouchBase, Aerospike

Reliability Speed

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

Базы данных

MySQL, Oracle, Postgres Redis, CouchBase, Aerospike

Reliability Speed

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

Кейсы использования • Система аутентификации

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

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

• Видео проигрыватель

• Веб аналитика

• Хранилище сообщений мессенджеров

• Антиспам

• Замена memcached

• Система мониторинга

• Система рейтингов

• И многое другое …

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

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

• Низкая latency (sub 1 ms) КЭШ

• Высокая доступность

• Постоянно ходит в хранилище КЭШ

• Anti brute-force/anti fraud

• Почти каждое обращение – это транзакция

• Много неизбежной лишней работы

• Большой размер данных

• Expiration КЭШ

• Persistence

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

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

• Низкая latency (sub 1 ms)

• Высокая доступность СУБД

• Постоянно ходит в хранилище

• Anti brute-force/anti fraud СУБД

• Почти каждое обращение – это транзакция СУБД

• Много неизбежной лишней работы

• Большой размер данных

• Expiration

• Persistence СУБД

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

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

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

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

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

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

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

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

По логину и паролю

Auth

Tarantool

Authentication

Web server

Anti Brute Force

50K QPS

(transactions)

Read/Write

User

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

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

По сессии/токену

Web server

Page load

Ajax request

Mobile API call

Web server

Web server

Session Tarantool

Profiles Tarantool

1M QPS!

4x, 20%

8x, 15%

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

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

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

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

Server Side

Server Side

Server Side

iOS API

Android API

Mobile Phone/T

ablet

Mobile Phone/T

ablet

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

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

Server Side

Server Side

Server Side

?

iOS API

Android API

Mobile Phone/T

ablet

Mobile Phone/T

ablet

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

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

Server Side

Server Side

Server Side

Tarantool

iOS API

Android API

Mobile Phone/T

ablet

Mobile Phone/T

ablet

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

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

Server Side

Server Side

Server Side

Tarantool

iOS API

Android API

Mobile Phone/T

ablet

Mobile Phone/T

ablet

Queue Tarantool

События

Page 30: РИФ 2016, 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

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

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

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

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

Web server

Source Of

data

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

Web server

Web server

Ad system

Source Of

data

Source Of

data

• На каждый блок из10+

• Лукапим источники данных

• Аггрегируем результат

• Понимаем, что показать

• Тратим несколько ms!

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

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

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

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

Вывод такой: • вам нужно читать/писать горячие данные КЭШ

• с производительностью 100K QPS КЭШ

• параллельно КЭШ

• и вам нужно время ответа менее чем 1 мс КЭШ

• и 99.99% uptime СУБД

• и вы хотите выжать все соки из ваших серверов КЭШ

• при этом иметь транзакции, репликацию, persistence и

все другие свойства классических СУБД СУБД

• и все это в базе данных, которую легко

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

If

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

then use Tarantool