Upload
mailru-group
View
4.045
Download
5
Embed Size (px)
Citation preview
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● отказоустойчивость
Почему тарантул? Причина № 0Tarantool: хранение истории посещений
https://www.youtube.com/watch?v=O-MGE3wHkqs
Почему тарантул? Причина № 0Tarantool: хранение истории посещений
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 dissectorhttps://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-php2. статистику по ресурсам
Хотелки
1. tarantool.persistent в tarantool-php2. статистику по ресурсам3. шардинг
Хотелки
1. tarantool.persistent в tarantool-php2. статистику по памяти3. шардинг4. админские таски
Окончание