[DRIVERS-600] Add support for Zstandard compression Created: 10/Dec/18  Updated: 22/Feb/23  Resolved: 22/Feb/23

Status: Closed
Project: Drivers
Component/s: None
Fix Version/s: None

Type: New Feature Priority: Major - P3
Reporter: Bernie Hackett Assignee: Unassigned
Resolution: Done Votes: 5
Labels: newdriver
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on CDRIVER-2930 Add support for Zstandard compression Closed
depends on CSHARP-2486 Add support for Zstandard compression Closed
depends on CXX-1716 Add support for Zstandard compression Closed
depends on GODRIVER-783 Add support for Zstandard compression Closed
depends on JAVA-3145 Add support for Zstandard compression Closed
depends on MOTOR-298 Add support for Zstandard compression Closed
depends on NODE-1837 Add support for Zstandard compression Closed
depends on PHPC-1313 Add support for Zstandard compression Closed
depends on RUST-175 Add support for Zstandard compression Closed
depends on SERVER-31555 support zstd for network compression Closed
depends on PYTHON-1723 Add support for Zstandard compression Closed
depends on RUBY-1682 Add support for Zstandard compression Closed
Related
related to DRIVERS-1335 Improve Awareness of Network Compress... Backlog
related to DRIVERS-762 Customisable Zstandard (zstd) compres... Backlog
Server Compat: 4.1
Case:
Driver Compliance:
Key Status/Resolution FixVersion
NODE-1837 Done 4.7.0
SCALA-489 Done
PYTHON-1723 Fixed 3.9
CSHARP-2486 Fixed 2.11.0
PERL-1053 Done 2.1.1
RUBY-1682 Fixed 2.15.0.alpha
JAVA-3145 Fixed 3.11.0
CXX-1716 Fixed 3.6.0-rc0, 3.6.0
PHPC-1313 Fixed 1.8.0-beta2, 1.8.0
MOTOR-298 Fixed 2.1
GODRIVER-783 Fixed 1.2.0
CDRIVER-2930 Fixed 1.15.0
SWIFT-491 Won't Do 2.0.0
RUST-175 Fixed 2.1.0
SWIFT-949 Won't Do

 Description   

zstd has been added as an option for --networkMessageCompressors. zstd uses much less CPU while matching zlib in compression rates. Not only does this reduce server CPU but it also reduces latency in query responses. 

https://docs.mongodb.com/master/release-notes/3.6/
https://github.com/facebook/zstd

Updated Spec change is here: https://github.com/mongodb/specifications/commit/0d08743afe1379b0db4c614a7837ee507910dfe4



 Comments   
Comment by Githook User [ 14/May/19 ]

Author:

{'name': 'David Golden', 'username': 'xdg', 'email': 'xdg@xdg.me'}

Message: DRIVERS-600 Add zstd as compression algorithm
Branch: master
https://github.com/mongodb/specifications/commit/0d08743afe1379b0db4c614a7837ee507910dfe4

Comment by Jeffrey Yemin [ 24/Jan/19 ]

Questions

  • Should drivers expose a way to set the compression level, similar to zlibCompressionLevel? What should the default be? (The Java wrapper library defaults to 3).
  • Should drivers expose a way to enable checksums? What should the default be? (The Java wrapper library defaults to off)
  • Are there any other algorithm configuration parameters that should be tunable?
Comment by Bernie Hackett [ 14/Dec/18 ]

https://facebook.github.io/zstd/

There appear to be implementations for every language under the sun.

Generated at Thu Feb 08 08:21:55 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.