SDCast

SDCast


SDCast #44: в гостях Евгений Лазин, программмист, автор проекта akumuli

June 03, 2016

У меня в гостях Евгений Лазин, программмист, автор проекта Akumuli. Основной темой этого выпуска являются БД для хранения временных рядов (Time-series DB, TSDB).

В начале мы обсудили общие вопросы, такие как: зачем нужны tsdb, чем они отличаются от привычных всем реляционных баз данных, какие у них особенности и основные области применения.

Базы данных типа TSDB широко применяются в мониторинге для хранения разного рода метрик, привязанных ко времени. Поэтому мы пообщались так же на тему мониторинга: что такое мониторинг, что является единицей мониторинга, зачем нужна связь со временем, какие есть инструменты мониторинга, зачем нужен time series db, и чем не подходят привычные способы хранения данных.

Евгений, как автор Akumuli, рассказал про свой проект, как он зарождался, какова его архитектура и внутреннее устройство. Отдельно рассказал про способ хранения данных на дисках, какие есть особенности работы с HDD и SSD и с чем пришлось столкнуться во время разработки. Очень интересно было послушать про разные алгоритмы, используемые для решения разного рода задач в проекте, таких как сжатие данных, быстрый поиск и индексация и многое другое.

Akumuli. Time-series database: https://github.com/akumuli/Akumuli
Run-length encoding (RLE): https://en.wikipedia.org/wiki/Run-length_encoding
Delta encoding: https://en.wikipedia.org/wiki/Delta_encoding
LEB128 or Little Endian Base 128: https://en.wikipedia.org/wiki/LEB128
Finding Frequent Items in Data Streams: http://dmac.rutgers.edu/Workshops/WGUnifyingTheory/Slides/cormode.pdf
Gorilla: A fast, scalable, in-memory time series database: https://blog.acolyer.org/2016/05/03/gorilla-a-fast-scalable-in-memory-time-series-database/
rrd-tools: http://oss.oetiker.ch/rrdtool/
influxdb: https://influxdata.com