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

Like this? Share it with your network

Share

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

on

  • 1,077 views

 

Statistics

Views

Total Views
1,077
Views on SlideShare
248
Embed Views
829

Actions

Likes
0
Downloads
4
Comments
0

6 Embeds 829

http://www.xakep.ru 715
http://ritconf.ru 42
http://xakep.ru 30
http://l.lj-toys.com 23
http://allitadmin.tumblr.com 18
http://www.tumblr.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Максим Лапшин (Erlyvideo) Presentation 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