Мне было бы интересно узнать среднее соотношение размеров сжимаемых и уже сжатых данных в резервной копии Discourse[1], а также какой процент данных можно сэкономить, используя zstd.
Это не тот же запрос на новую функцию, но он тоже касается сжатия резервных копий, поэтому я пересылаю его сюда:
Меня бы не удивило, если бы процент был примерно таким же на всех моих форумах Discourse.
Конечно, некоторые форумы сильно зависят от загрузки изображений, а некоторые вообще не позволяют загружать файлы. ↩︎
Иногда процесс резервного копирования вызывает у нас проблемы с доступностью из-за дополнительной нагрузки. Поэтому сегодня я провёл быстрый эксперимент с zstd.
Вот результаты сжатия одного и того же файла dump.sql объёмом 73 ГиБ с помощью gzip (уровень 4, как в резервных копиях Discourse) и zstd (уровень по умолчанию 3 из 19):
Размер после сжатия: на 15,8% меньше (.zst составляет 84% от размера .gz)
Время сжатия (-T1): на 71% быстрее (29% от времени gzip)
Время сжатия (-T0): на 89% быстрее (11% от времени gzip)
Результаты могут различаться: я не запускал тесты несколько раз, на моём собственном компьютере (6 ядер) в это время выполнялись и другие задачи и так далее — точность не была приоритетом. Тем не менее, преимущества, на мой взгляд, очевидны.
Не уверен, что параметр -T0 обязательно подойдёт всем, так как оставлять запас ресурсов для самого Discourse кажется разумным, поэтому для более честного сравнения я привёл пример с -T1.
Кажется, это беспроигрышный вариант, который, вероятно, также окажет значительное влияние на инфраструктуру хостинга Discourse. При этом у меня нет навыков для создания PR, поэтому просто делюсь тем, что обнаружил.