#loglog — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #loglog, aggregated by home.social.
-
HyperLogLog: как найти уникальные значения в терабайте данных, не храня их
Представим задачу: хайлоад-сервис гонит поток данных — логи, IP-адреса, ID пользователей, миллиарды записей в сутки. Ваша задача — посчитать количество уникальных посетителей за неделю. Первым решением может показаться завести HashSet и кидать туда ключи, а в конце посмотреть размер. Решение неплохое, но когда речь заходит о миллиардах записей — память будет слабым местом. Один IP-адрес (4 байта) как ключ в HashSet потянет за собой накладные расходы на ноды, указатели и хеши. На практике один элемент сжирает не меньше 50–100 байт. Поток в миллиард уникальных записей потребует под сотню гигабайт оперативной памяти. Это дорого, а если инстансов десять — то просто нереально. Но существует алгоритм, который способен решить эту задачу примерно в 1.5 килобайта памяти с погрешностью около 2%? Без хранения самих данных и гигантских кластеров. Достаточно одного прохода по потоку и пары битовых трюков — именно так и работает HyperLogLog, алгоритм родом из математической статистики, который перевернул подход к подсчёту уникальности в Big Data. HyperLogLog используют в Redis, BigQuery, ClickHouse, Presto. В этой статье мы разберем и реализуем этот алгоритм на C, а также узнаем его предысторию.
https://habr.com/ru/companies/timeweb/articles/1046345/
#c #hyperloglog #loglog #оптимизация #алгоритмы #ненормальное_программирование #программирование #timeweb_статьи
-
@m This log is in the Botanisk Have, ved Den Gamle By. But it delights me to think that our local logs in Aarhus are so excellent that we recognise them and know their locations. I do know of a similarly fine log in the Marselisborg woods, but not the Moesgaard one you mention. We clearly do need, as has been suggested, a log log.
-
@m This log is in the Botanisk Have, ved Den Gamle By. But it delights me to think that our local logs in Aarhus are so excellent that we recognise them and know their locations. I do know of a similarly fine log in the Marselisborg woods, but not the Moesgaard one you mention. We clearly do need, as has been suggested, a log log.