SlideShare a Scribd company logo
Pulsedb
для временных рядов
Макс Лапшин
max@erlyvideo.ru
Saturday, April 12, 14
Проблема
• Надо хранить статистику
• Ежесекундные замеры
• Много стримов, много серверов
• Потом рисовать графики по выборкам
• Обновлять графики на лету
• Сжимать и удалять ненужные данные
Saturday, April 12, 14
NIH?
• Неизвестное количество метрик
• Необходимо встраивать в эрливидео
• Раздельное управление по аккаунтам
• Риалтайм графики
Saturday, April 12, 14
С чем сравнивали?
• rrdtool
• graphite (whisper/ceres)
• opentsdb (tempo-db, kairodb)
• influxdb
• прочее (librato, blueflood, seriesly,
circonus)
Saturday, April 12, 14
С чем НЕ сравнивали
• statsd
• rienmann
• хранилища логов
Saturday, April 12, 14
Терминология
• Равномерный временной ряд
• statsd — агрегация потока в равномерный
ряд
• rrdtool — хранение равномерных рядов
• агрегация — склейка двух равномерных
временных рядов
• downsampling — разрежение временного
ряда
Saturday, April 12, 14
Фатальные недостатки
Saturday, April 12, 14
rrdtool
• невообразимо медленный (fork на замер)
• нет возможности склейки метрик на лету
• плохое управление хранением
• слишком примитивный
Saturday, April 12, 14
Graphite
• не умеет склеивать метрики на лету
• графики строит сам
• никакого риалтайм фида
Saturday, April 12, 14
OpenTSDB
• Hadoop (со всеми вытекающими)
• Сам рисует графики
• Свой язык: sum:avg-2m:metric{tag=value}
• Умеет склеивать ряды
• Нет риалтайм фида
• Огромный оверхед на хранение
Saturday, April 12, 14
InfluxDB
• Очень развитое решение
• SQL-like язык запросов
• Агрегация рядов и операции над ними
• Умеет хранить и события
• Никакой явы!
• Появилось позже нашего кода
• Большой объём хранения и передачи
Saturday, April 12, 14
Прочие
• Пользуются Kassandra, Couch и прочей
инфернальщиной для хранения
• Или уже дорогущие промышленные
SCADA решения
Saturday, April 12, 14
Pulsedb
• Метрика — имя + теги
• Замер — UTC + имя + теги
• Библиотека + демон
• Компактное неточное хранение
• OpenTSDB-like язык запросов
• Websocket подписка
Saturday, April 12, 14
Pulsedb
• https://github.com/pulsedb/pulsedb
• http://pulsedb.io/
Saturday, April 12, 14
Структура
• HTTP Upgrade + текстовый протокол
• Собственный формат хранения
• Последняя минута в памяти
Saturday, April 12, 14
Хранение на диске
• 2 байта на замер
• хранение приблизительного значения
• 14 бит значения, 2 бита на порядок
• часовые блобы для каждой метрики
• мердж баз простым апдейтом
Saturday, April 12, 14
Транспорт по сети
• Statefull протокол
• Метрики кодируются номерами
• Время передается дельтой
• Значение неточное: 340K, 25G
Saturday, April 12, 14
Для сервиса
• Шардинг данных по аккаунтам
• Раздельная очистка секундных и
минутных данных
• Внешняя авторизация продюсеров
• Внешний резолвинг графиков
• Репликация
Saturday, April 12, 14
Немного цифр
• 20-50 серверов
• 30-150 каналов на каждом
• по 3 метрики с канала (in,out,clients)
• 2000 - 10 000 замеров в секунду
• 25 GB в месяц (10 млрд замеров)
• Одна холодная виртуалка в DigitalOcean
Saturday, April 12, 14
Планы
• MySQL интерфейс
• GUI для данных
Saturday, April 12, 14
Вопросы?
Макс Лапшин
max@erlyvideo.ru
Saturday, April 12, 14

More Related Content

PDF
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Ontico
 
PDF
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Dev2Dev
 
PPT
Как устроен NoSQL, Андрей Аксенов (Sphinx)
Ontico
 
PPTX
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Ontico
 
PDF
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
2ГИС Технологии
 
PDF
Дмитрий Новиков - Tarantool в Badoo
Mail.ru Group
 
PDF
NoSQL thumbtack experience, Анатолий Никулин
Anatoliy Nikulin
 
PDF
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
Badoo Development
 
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Ontico
 
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
Dev2Dev
 
Как устроен NoSQL, Андрей Аксенов (Sphinx)
Ontico
 
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Ontico
 
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
2ГИС Технологии
 
Дмитрий Новиков - Tarantool в Badoo
Mail.ru Group
 
NoSQL thumbtack experience, Анатолий Никулин
Anatoliy Nikulin
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
Badoo Development
 

What's hot (20)

PDF
Couchbase, что за зверь и на что способен.
Alexey Rusnak
 
PDF
Near-realtime аналитика событий в высоконагруженном проекте
Alexandr Krasheninnikov
 
PDF
SphinxSearch Meetup - Tips&tricks
Roman Pavlushko
 
PDF
AVITO. Решардинг Redis без даунтайма. DevConf 2012
Roman Pavlushko
 
PPTX
Машинное обучение в электронной коммерции — практика использования и подводны...
Ontico
 
PPTX
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
Ontico
 
PDF
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Ontico
 
PDF
Мастер-класс по BigData Tools для HappyDev'15
Alexey Zinoviev
 
PDF
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
it-people
 
PDF
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Ontico
 
PPTX
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Mail.ru Group
 
PDF
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
Ontico
 
PDF
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
Ontico
 
PDF
Cергей Коржнев, 2ГИС
Ontico
 
PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
PPTX
опыт построения и эксплуатации большого файлового хранилища
Daniel Podolsky
 
PDF
"OLAP с помощью Postgres (как мы строили BI)" Фефелов Андрей, Mastery.pro
it-people
 
PDF
Владимир Бородин - PostgreSQL
Yandex
 
PDF
Avito Stachka 2012
Roman Pavlushko
 
PDF
Мощнее или умнее? Возможности оптимизации ИТ-инфраструктуры для сейсмики
Vsevolod Shabad
 
Couchbase, что за зверь и на что способен.
Alexey Rusnak
 
Near-realtime аналитика событий в высоконагруженном проекте
Alexandr Krasheninnikov
 
SphinxSearch Meetup - Tips&tricks
Roman Pavlushko
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
Roman Pavlushko
 
Машинное обучение в электронной коммерции — практика использования и подводны...
Ontico
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
Ontico
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Ontico
 
Мастер-класс по BigData Tools для HappyDev'15
Alexey Zinoviev
 
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
it-people
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Ontico
 
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Mail.ru Group
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
Ontico
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
Ontico
 
Cергей Коржнев, 2ГИС
Ontico
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
опыт построения и эксплуатации большого файлового хранилища
Daniel Podolsky
 
"OLAP с помощью Postgres (как мы строили BI)" Фефелов Андрей, Mastery.pro
it-people
 
Владимир Бородин - PostgreSQL
Yandex
 
Avito Stachka 2012
Roman Pavlushko
 
Мощнее или умнее? Возможности оптимизации ИТ-инфраструктуры для сейсмики
Vsevolod Shabad
 
Ad

Viewers also liked (11)

PDF
Flussonic IPTV OTT
Max Lapshin
 
PPTX
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Ontico
 
PDF
Микросервисы: откуда столько шума?
Ivan Evtukhovich
 
PDF
Видеостриминг на 10 ГБит/с
Max Lapshin
 
PDF
Там, где Rails не справляются
Max Lapshin
 
PDF
Beasts to superheroes to gods
Martin Geddes
 
PDF
Развитие DevOps/NoOps инструментов. Что было, что есть, что будет.
Ivan Evtukhovich
 
PDF
Rails, Eventmachine, Erlang
Max Lapshin
 
PDF
Erlang railsclub - 1
Max Lapshin
 
PDF
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Ontico
 
PPTX
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Positive Hack Days
 
Flussonic IPTV OTT
Max Lapshin
 
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Ontico
 
Микросервисы: откуда столько шума?
Ivan Evtukhovich
 
Видеостриминг на 10 ГБит/с
Max Lapshin
 
Там, где Rails не справляются
Max Lapshin
 
Beasts to superheroes to gods
Martin Geddes
 
Развитие DevOps/NoOps инструментов. Что было, что есть, что будет.
Ivan Evtukhovich
 
Rails, Eventmachine, Erlang
Max Lapshin
 
Erlang railsclub - 1
Max Lapshin
 
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Ontico
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Positive Hack Days
 
Ad

Similar to Pulsedb — система хранения временных рядов (20)

PDF
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Ontico
 
PPTX
pgconf.ru 2017
Andy Fefelov
 
PDF
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
Ontico
 
PDF
Где сегодня использовать ElasticSearch
Илья Середа
 
PPT
ADD2010: Обработка большого объема данных на платформеApache Hadoop
Vladimir Klimontovich
 
PDF
Isilapp — Extreme Cloud Storage on FreeBSD
Andrew Pantyukhin
 
PDF
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
it-people
 
PDF
Frontera обход испанского интернета
Alexander Sibiryakov
 
PDF
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
Alex Chistyakov
 
PPTX
Open source субд глазами обычного программиста
Slach
 
PDF
High load2007 scaling-web-applications-rus
Vladd Ev
 
PDF
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Siel01
 
PDF
libfpta: в памяти, с персистентностью, быстрее хайпа
Leonid Yuriev
 
PDF
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Ontico
 
PDF
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Ontico
 
PPTX
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
HappyDev
 
PDF
HappyDev'15 Keynote: Когда все данные станут большими...
Alexey Zinoviev
 
PDF
Optimization of a big PostgreSQL database
Alex Chistyakov
 
PDF
Tarantool_qs
kuchinskaya
 
PDF
Near-realtime аналитика событий в высоконагруженном проекте
Yulia Kotova
 
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Ontico
 
pgconf.ru 2017
Andy Fefelov
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
Ontico
 
Где сегодня использовать ElasticSearch
Илья Середа
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
Vladimir Klimontovich
 
Isilapp — Extreme Cloud Storage on FreeBSD
Andrew Pantyukhin
 
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
it-people
 
Frontera обход испанского интернета
Alexander Sibiryakov
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
Alex Chistyakov
 
Open source субд глазами обычного программиста
Slach
 
High load2007 scaling-web-applications-rus
Vladd Ev
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Siel01
 
libfpta: в памяти, с персистентностью, быстрее хайпа
Leonid Yuriev
 
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Ontico
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Ontico
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
HappyDev
 
HappyDev'15 Keynote: Когда все данные станут большими...
Alexey Zinoviev
 
Optimization of a big PostgreSQL database
Alex Chistyakov
 
Tarantool_qs
kuchinskaya
 
Near-realtime аналитика событий в высоконагруженном проекте
Yulia Kotova
 

More from Max Lapshin (11)

KEY
Code generation in Erlang
Max Lapshin
 
KEY
Erlang for Yandex
Max Lapshin
 
KEY
Актуальное состояние вещания видео в интернете
Max Lapshin
 
KEY
Http streaming
Max Lapshin
 
KEY
Erlang&rails
Max Lapshin
 
KEY
Что и почему писать на Erlang
Max Lapshin
 
PPT
Devpoint2 video in internet
Max Lapshin
 
KEY
Erlyvideo — сервер потокового видео.
Max Lapshin
 
KEY
Отличие Erlang от объектных языков
Max Lapshin
 
PDF
Erlyvideo
Max Lapshin
 
KEY
кеширование в бд
Max Lapshin
 
Code generation in Erlang
Max Lapshin
 
Erlang for Yandex
Max Lapshin
 
Актуальное состояние вещания видео в интернете
Max Lapshin
 
Http streaming
Max Lapshin
 
Erlang&rails
Max Lapshin
 
Что и почему писать на Erlang
Max Lapshin
 
Devpoint2 video in internet
Max Lapshin
 
Erlyvideo — сервер потокового видео.
Max Lapshin
 
Отличие Erlang от объектных языков
Max Lapshin
 
Erlyvideo
Max Lapshin
 
кеширование в бд
Max Lapshin
 

Pulsedb — система хранения временных рядов