Your SlideShare is downloading. ×
Максим Лапшин (Erlyvideo)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Максим Лапшин (Erlyvideo)

1,121
views

Published on

Published in: Internet

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,121
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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