Desde o último mês de fevereiro, o PostgreSQL começou a trabalhar no suporte à compactação Zstd e agora, com as últimas alterações de código da semana passada, esse moderno algoritmo de compactação desenvolvido no Facebook agora pode desempenhar um papel maior com esse servidor líder de banco de dados de código aberto.
Embora o PostgreSQL tenha suportado compactação com seu armazenamento TOAST e, no ano passado, tenha construído suporte de compactação LZ4 para ele, juntamente com compactação de WAL, compactação de backup e outros usos, os desenvolvedores do PostgreSQL estão se preparando para estender ainda mais suas capacidades de compactação com suporte Zstd.
No mês passado, os desenvolvedores do PostgreSQL começaram com as mudanças de infraestrutura em torno do manuseio da compactação Zstd. Isso funcionaria como uma alternativa à compactação LZ4.
O trabalho de código nos últimos dias inclui o suporte à compactação de backup de base Zstd. Tanto o cliente PostgreSQL quanto a compactação do servidor agora suportam o uso de Zstd.
PostgreSQL desenvolve compactação Zstd
A outra grande adição é esse commit que fornece compactação Zstd de gravações de página inteira no WAL. O Write Ahead Logging do PostgreSQL agora suporta compressão Zstd de imagens de página inteira usando Zstd. Atualmente, isso está sendo feito no nível de compactação padrão do Zstd de 3.
Quanto ao benefício de desempenho do Zstd’ed WAL,
o zstd supera facilmente o pglz e é melhor que o LZ4, onde se deseja ter mais compactação ao custo de CPU extra mas ambos são bons o suficiente em seus próprios cenários, então a escolha entre um ou outro deles vem de um estudo dos padrões de carga de trabalho e do esquema envolvido, principalmente.
Portanto, procure este trabalho de compactação Zstd e muito mais no eventual lançamento do PostgreSQL 15.
Porém, embora isso adicione a opção –with-zstd build-time e vá em frente e permita a compilação com a biblioteca de compactação Zstd, no momento isso não permite nenhum uso real do Zstd no PostgreSQL. Espera-se que os commits de acompanhamento comecem em breve a permitir que o PostgreSQL aproveite os recursos de compactação de velocidade do Zstandard.
Quando o PostgreSQL 15 for lançado, parece que ele terá suporte Zstd. Assim, deve complementar todas as possibilidades LZ4 encontradas atualmente com o PostgreSQL 14. Então, caso desconheça as origens, este projeto tem como base o Facebook com licença dupla (BSD e GPLv2). Resta esperar para podermos conferir se há realmente um melhor desempenho.
Via Phoronix