Дмитрий Новиков - tarantool в badoo
TRANSCRIPT
![Page 1: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/1.jpg)
Tarantool в BadooХранение пользовательских сессий
![Page 2: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/2.jpg)
Типичная сессия
![Page 3: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/3.jpg)
Количество запросов (read)
![Page 4: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/4.jpg)
Количество запросов (write)
![Page 5: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/5.jpg)
Количество сессий
![Page 6: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/6.jpg)
История
● С++ версия (~ 2008 г.)
![Page 7: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/7.jpg)
История
● С++ версия (~ 2008 г.)
![Page 8: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/8.jpg)
C++ API
![Page 9: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/9.jpg)
C версия
![Page 10: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/10.jpg)
cpu
![Page 11: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/11.jpg)
Время ответа (get_active_session)
![Page 12: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/12.jpg)
Сменившаяся обстановка1. хранение данных только в памяти
![Page 13: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/13.jpg)
old sstor2
Схема сложного рестарта
new sstor2
php
![Page 14: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/14.jpg)
Сменившаяся обстановка1. хранение данных только в памяти2. сложный рестарт
![Page 15: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/15.jpg)
Сменившаяся обстановка1. хранение данных только в памяти2. сложный рестарт3. BMA
![Page 16: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/16.jpg)
Users: BMA vs Site
![Page 17: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/17.jpg)
BMA -- поиск стораджа
![Page 18: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/18.jpg)
BMA -- поиск стораджа● memcachedb
![Page 19: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/19.jpg)
BMA -- поиск стораджа● memcachedb● redis
![Page 20: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/20.jpg)
BMA -- поиск стораджа● memcachedb● redis● handler socket
![Page 21: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/21.jpg)
BMA -- поиск стораджа● memcachedb● redis● handler socket● mongodb
![Page 22: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/22.jpg)
BMA -- поиск стораджа● memcachedb● redis● handler socket● mongodb● tarantool
![Page 23: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/23.jpg)
BMA -- поиск стораджа● memcachedb● redis● handler socket● mongodb● handler socket + memcached
![Page 24: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/24.jpg)
BMA: handler socket updates, rps
![Page 25: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/25.jpg)
BMA: handler socket reads, rps
![Page 26: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/26.jpg)
BMA: memcache requests, rpm
![Page 27: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/27.jpg)
Сменившаяся обстановка● хранение данных только в памяти● сложный рестарт● поддержка двух параллельных миров
![Page 28: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/28.jpg)
Сменившаяся обстановка● хранение данных только в памяти● сложный рестарт● поддержка двух параллельных миров● Mobile Web
![Page 29: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/29.jpg)
Mobile Web: users
![Page 30: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/30.jpg)
Сменившаяся обстановка● хранение данных только в памяти● сложный рестарт● поддержка трёх параллельных миров
![Page 31: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/31.jpg)
Сменившаяся обстановка● хранение данных только в памяти● сложный рестарт● поддержка трёх параллельных миров● race conditions
![Page 32: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/32.jpg)
race condition
script 1 script 2 val
get 0
get 0
val++, set 1
val++, set 1
![Page 33: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/33.jpg)
Конфликты
![Page 34: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/34.jpg)
Сменившаяся обстановка● хранение данных только в памяти● сложный рестарт● поддержка трёх параллельных миров● race conditions
![Page 35: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/35.jpg)
Всякое бывает
![Page 36: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/36.jpg)
Сменившаяся обстановка● хранение данных только в памяти● сложный рестарт● поддержка трёх параллельных миров● race conditions● отказоустойчивость
![Page 37: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/37.jpg)
Почему тарантул? Причина № 0Tarantool: хранение истории посещений
https://www.youtube.com/watch?v=O-MGE3wHkqs
![Page 38: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/38.jpg)
Почему тарантул? Причина № 0Tarantool: хранение истории посещений
https://www.youtube.com/watch?v=O-MGE3wHkqs
![Page 39: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/39.jpg)
tarantool: there no problems anymore
Проблема Тарантул решает
данные только в памяти ну это понятно
![Page 40: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/40.jpg)
Выход есть: тарантул
Проблема Тарантул решает
сложный рестарт деплой скриптов + dofile()
![Page 41: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/41.jpg)
Выход есть: тарантул
Проблема Тарантул решает
три мира засунем всё в один
![Page 42: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/42.jpg)
Выход есть: тарантул
Проблема Тарантул решает
race condition бьём большую сессию на группыcas для групп
![Page 43: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/43.jpg)
Выход есть: тарантул
Проблема Тарантул решает
отказоустойчивость мастер-слейв репликацией
![Page 44: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/44.jpg)
box.space.sessions
![Page 45: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/45.jpg)
box.space.users
![Page 46: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/46.jpg)
box.space.users
![Page 47: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/47.jpg)
box.space.users
![Page 48: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/48.jpg)
ss_create
![Page 49: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/49.jpg)
ss_set
![Page 50: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/50.jpg)
ss_set: cas logic
![Page 51: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/51.jpg)
ss_set: cas logic
![Page 52: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/52.jpg)
ss_get
![Page 53: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/53.jpg)
ss_del
![Page 54: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/54.jpg)
ss_get_user_sessions
![Page 55: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/55.jpg)
ss_get_active_session
![Page 56: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/56.jpg)
ss_attach/ss_detach
![Page 57: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/57.jpg)
ss_stats
![Page 58: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/58.jpg)
php-connector
![Page 59: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/59.jpg)
php-connector● Бага с 32 байтами
![Page 60: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/60.jpg)
php-connector● Бага с 32 байтами● рассинхронизация
![Page 61: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/61.jpg)
Wireshark dissectorhttps://github.com/badoo/tarantool-dissector
![Page 62: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/62.jpg)
Wireshark with tarantool dissector
![Page 63: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/63.jpg)
рассинхронизация
![Page 64: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/64.jpg)
php-connector● Бага с 32 байтами● рассинхронизация● таймауты
![Page 65: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/65.jpg)
php-connector● Бага с 32 байтами● рассинхронизация● таймауты● всякая мелочь
![Page 66: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/66.jpg)
Тарантул: корки
![Page 67: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/67.jpg)
at_exit
![Page 68: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/68.jpg)
тарантул: ffi crash
![Page 69: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/69.jpg)
Тарантул: lua crash
![Page 70: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/70.jpg)
Happy end
![Page 71: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/71.jpg)
tarantool: graphs
![Page 72: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/72.jpg)
Хотелки
1. tarantool.persistent в tarantool-php
![Page 73: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/73.jpg)
tarantool->connect() 1.5 vs 1.6
![Page 74: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/74.jpg)
tarantool->connect() 1.5 vs 1.6
![Page 75: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/75.jpg)
Хотелки
1. tarantool.persistent в tarantool-php2. статистику по ресурсам
![Page 76: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/76.jpg)
Хотелки
1. tarantool.persistent в tarantool-php2. статистику по ресурсам3. шардинг
![Page 77: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/77.jpg)
Хотелки
1. tarantool.persistent в tarantool-php2. статистику по памяти3. шардинг4. админские таски
![Page 78: Дмитрий Новиков - Tarantool в Badoo](https://reader036.vdocuments.site/reader036/viewer/2022082217/586e8c411a28aba0038b83cd/html5/thumbnails/78.jpg)
Окончание