Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Tarantool в Badoo
Хранение пользовательских сессий
Типичная сессия
Количество запросов (read)
Количество запросов (write)
Количество сессий
История
● С++ версия (~ 2008 г.)
История
● С++ версия (~ 2008 г.)
C++ API
C версия
cpu
Время ответа (get_active_session)
Сменившаяся обстановка
1. хранение данных только в памяти
old sstor2
Схема сложного рестарта
new sstor2
php
Сменившаяся обстановка
1. хранение данных только в памяти
2. сложный рестарт
Сменившаяся обстановка
1. хранение данных только в памяти
2. сложный рестарт
3. BMA
Users: BMA vs Site
BMA -- поиск стораджа
BMA -- поиск стораджа
● memcachedb
BMA -- поиск стораджа
● memcachedb
● redis
BMA -- поиск стораджа
● memcachedb
● redis
● handler socket
BMA -- поиск стораджа
● memcachedb
● redis
● handler socket
● mongodb
BMA -- поиск стораджа
● memcachedb
● redis
● handler socket
● mongodb
● tarantool
BMA -- поиск стораджа
● memcachedb
● redis
● handler socket
● mongodb
● handler socket + memcached
BMA: handler socket updates, rps
BMA: handler socket reads, rps
BMA: memcache requests, rpm
Сменившаяся обстановка
● хранение данных только в памяти
● сложный рестарт
● поддержка двух параллельных миров
Сменившаяся обстановка
● хранение данных только в памяти
● сложный рестарт
● поддержка двух параллельных миров
● Mobile Web
Mobile Web: users
Сменившаяся обстановка
● хранение данных только в памяти
● сложный рестарт
● поддержка трёх параллельных миров
Сменившаяся обстановка
● хранение данных только в памяти
● сложный рестарт
● поддержка трёх параллельных миров
● race conditions
race condition
script 1 script 2 val
get 0
get 0
val++, set 1
val++, set 1
Конфликты
Сменившаяся обстановка
● хранение данных только в памяти
● сложный рестарт
● поддержка трёх параллельных миров
● race conditions
Всякое бывает
Сменившаяся обстановка
● хранение данных только в памяти
● сложный рестарт
● поддержка трёх параллельных миров
● race conditions
● отказоустойчивость
Почему тарантул? Причина № 0
Tarantool: хранение истории посещений
https://www.youtube.com/watch?v=O-MGE3wHkqs
Почему тарантул? Причина № 0
Tarantool: хранение истории посещений
https://www.youtube.com/watch?v=O-MGE3wHkqs
tarantool: there no problems anymore
Проблема Тарантул решает
данные только в памяти ну это понятно
Выход есть: тарантул
Проблема Тарантул решает
сложный рестарт деплой скриптов + dofile()
Выход есть: тарантул
Проблема Тарантул решает
три мира засунем всё в один
Выход есть: тарантул
Проблема Тарантул решает
race condition бьём большую сессию на группы
cas для групп
Выход есть: тарантул
Проблема Тарантул решает
отказоустойчивость мастер-слейв репликацией
box.space.sessions
box.space.users
box.space.users
box.space.users
ss_create
ss_set
ss_set: cas logic
ss_set: cas logic
ss_get
ss_del
ss_get_user_sessions
ss_get_active_session
ss_attach/ss_detach
ss_stats
php-connector
php-connector
● Бага с 32 байтами
php-connector
● Бага с 32 байтами
● рассинхронизация
Wireshark dissector
https://github.com/badoo/tarantool-dissector
Wireshark with tarantool dissector
рассинхронизация
php-connector
● Бага с 32 байтами
● рассинхронизация
● таймауты
php-connector
● Бага с 32 байтами
● рассинхронизация
● таймауты
● всякая мелочь
Тарантул: корки
at_exit
тарантул: ffi crash
Тарантул: lua crash
Happy end
tarantool: graphs
Хотелки
1. tarantool.persistent в tarantool-php
tarantool->connect() 1.5 vs 1.6
tarantool->connect() 1.5 vs 1.6
Хотелки
1. tarantool.persistent в tarantool-php
2. статистику по ресурсам
Хотелки
1. tarantool.persistent в tarantool-php
2. статистику по ресурсам
3. шардинг
Хотелки
1. tarantool.persistent в tarantool-php
2. статистику по памяти
3. шардинг
4. админские таски
Окончание

More Related Content

Дмитрий Новиков - Tarantool в Badoo