Основные кейсы использования in-memory СУБД на примере...

Preview:

Citation preview

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

Email

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!

На связи!

support@tarantool.org

anikin@corp.mail.ru

tarantool.org

facebook.com/TarantoolDatabase

Recommended