#53546·milvus

[enhance]: support multiple gRPC compression algorithms and configurable zstd codec

Author: xiaofan-luanCreated Sep 17, 2026Updated Sep 17, 2026

Summary

Enhance Milvus's internal gRPC compression:

  • Support multiple compression algorithms: zstd (existing), snappy, and s2.
  • Make the zstd compression level configurable via 4 coarse tiers (fastest / default / better / best), defaulting to default.
  • Add a zstd per-frame CRC32 checksum toggle (grpc.client.compressionCRC, default false).
  • Scale the zstd codec concurrency with the tier (tier × GOMAXPROCS) and reuse compressed buffers via a bounded pool (capped at 2 × GOMAXPROCS).
  • Upgrade github.com/klauspost/compress from v1.18.7 to v1.20.0.

Compression settings are static (read once at startup / dial time); they are not hot-reloadable.

Config

Param Values Default
grpc.client.compressionEnabled bool false
grpc.client.compressionAlgorithm zstd / snappy / s2 zstd
grpc.client.compressionLevel fastest / default / better / best default
grpc.client.compressionCRC bool false

Compression applies to component-to-component gRPC traffic and remains opt-in via grpc.client.compressionEnabled.