Migrar de compressão gz para zstd para backups

zstd é bastante comum agora e comprime melhor e é mais rápido que gz. Talvez valha a pena mudar para isso para backups.

Considerando todas as instâncias do Discourse ao redor do mundo, isso pode economizar muito em disco e transferência.

Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.

4 curtidas

Acho que esta é uma boa ideia. Colocando uma tag pr-welcome nisso.

2 curtidas

Eu estaria curioso para saber a proporção média de peso entre dados compressíveis e já comprimidos em um backup do Discourse[1], e quanta dados (em %) seriam economizados usando zstd.

Não é o mesmo pedido de recurso, mas também é sobre compressão de backup, então estou postando isso em vários lugares:

Não ficaria surpreso se a porcentagem fosse aproximadamente a mesma em todos os meus fóruns do Discourse.


  1. Claro, alguns fóruns dependem muito de uploads de imagens, e alguns nem sequer permitem uploads de arquivos. ↩︎

Ocasionalmente, o processo de backup causa alguns problemas de disponibilidade devido à carga adicional. Por isso, fiz um experimento rápido com o zstd hoje.

Estes foram meus resultados ao comprimir o mesmo arquivo dump.sql de 73 GiB com gzip (nível 4, como no backup do Discourse) e zstd (nível padrão 3, de 19):

Tamanho da compressão: 15,8% menor (.zst foi 84% do tamanho de .gz)
Tempo de compressão (-T1): 71% mais rápido (29% do tempo do gzip)
Tempo de compressão (-T0): 89% mais rápido (11% do tempo do gzip)

YMMV, não executei várias vezes, minha própria máquina (6 núcleos) também estava fazendo outras coisas, etc., etc. — não busquei precisão. Ainda assim, acho que os benefícios são claros.

Não tenho certeza se -T0 seria necessariamente uma boa escolha para todos, já que deixar algum espaço para o próprio Discourse parece uma boa ideia, por isso o exemplo com -T1 para uma comparação mais justa.

Parece uma situação ganha-ganha e provavelmente teria um impacto significativo também na infraestrutura de hospedagem do Discourse. Dito isso, não tenho as habilidades para criar um PR, então estou apenas compartilhando o que descobri.

2 curtidas

Posso confirmar que o tar dentro do Docker suporta compressão --zstd.

Edição: ops, não. O tar suporta, mas o utilitário ‘zstd’ está faltando. Ele está disponível para instalação via apt-get.

2 curtidas