Скорее всего вы уже видели или слышали, что вышел Zstd 1.5.0, который приносит улучшенную скорость сжатия и разжатия. Разжатие улучшилось только для специфичных модов, а для обычных только для компилятора gcc и для некоторых clang на несколько процентов. Виной тому — выравнивание, см элегантный и одновременно ужасный патч https://github.com/facebook/zstd/pull/2630/files, выравнивание цикла ответственно за целых 5%. Смотря на очередные проблемы с выравниванием, я считаю, что моя пропаганда по выставлению выравнивания
Google и Facebook уже обновились и видят неплохие результаты на равне с заявленными 5-10% (и не видят никаких проблем). ClickHouse показал 8-10% ускорения, обновление точно стоит брать.
Почему вы вообще должны смотреть на Zstd? На данный момент это лучший алгоритм сжатия по экономии среднестатистического сервера учитывая цену 1 vCPU на 7 spindles или 30-100GB SSD если угодно. Zstd хорошо сжимает логи и человеческие данные (особенно json), умеет большую функциональность по словарям, отличается приличной скоростью разжатия. Он не самый лучший для latency, так как имеет достаточно заковыристый формат, который подзразумевает много бранчей, но для логов, mapreduce, холодных-средней температуры данных он один из лучших. Если данные совсем холодные, врубайте пересжатие в фоне на максимальной настройке и радуйтесь.
Последние две недели я очень пристально смотрел в Zstd. Скоро и я попробую протолкнуть некоторые оптимизации туда. В общем, stay tuned, как минимум, я попробую улучшить им сжатие со словарём. А, может, ничего и не получится.
-falign-functions=32
в критических приложениях оправдана. Выравнивание или его отсутствие очень может навредить или помочь. Вырожденный пример можете посмотреть здесь (Why does GCC generate 15-20% faster code if I optimize for size instead of speed?)Google и Facebook уже обновились и видят неплохие результаты на равне с заявленными 5-10% (и не видят никаких проблем). ClickHouse показал 8-10% ускорения, обновление точно стоит брать.
Почему вы вообще должны смотреть на Zstd? На данный момент это лучший алгоритм сжатия по экономии среднестатистического сервера учитывая цену 1 vCPU на 7 spindles или 30-100GB SSD если угодно. Zstd хорошо сжимает логи и человеческие данные (особенно json), умеет большую функциональность по словарям, отличается приличной скоростью разжатия. Он не самый лучший для latency, так как имеет достаточно заковыристый формат, который подзразумевает много бранчей, но для логов, mapreduce, холодных-средней температуры данных он один из лучших. Если данные совсем холодные, врубайте пересжатие в фоне на максимальной настройке и радуйтесь.
Последние две недели я очень пристально смотрел в Zstd. Скоро и я попробую протолкнуть некоторые оптимизации туда. В общем, stay tuned, как минимум, я попробую улучшить им сжатие со словарём. А, может, ничего и не получится.