[JAVA-4868] Use default compression level for zstd Created: 06/Feb/23 Updated: 28/Oct/23 Resolved: 30/May/23 |
|
| Status: | Closed |
| Project: | Java Driver |
| Component/s: | Wire Protocol |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0, 3.12.14 |
| Type: | Improvement | Priority: | Unknown |
| Reporter: | Maxim Katcharov | Assignee: | Maxim Katcharov |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Case: | (copied to CRM) | ||||
| Documentation Changes: | Not Needed | ||||
| Documentation Changes Summary: | 1. What would you like to communicate to the user about this feature? |
||||
| Description |
|
In HELP-42011, we found that we were using the maximum compression level for zstd, 22, while the default (recommended) level was 3. The tradeoff is between speed and compression, and compression typically has diminishing returns. Other drivers use the default value, or values close to it. |
| Comments |
| Comment by Githook User [ 26/May/23 ] |
|
Author: {'name': 'Ian Springer', 'email': 'ispringer@evergage.com', 'username': 'ispringer'}Message: Use default compression level for zstd (#1116)
|
| Comment by Cloud GitHub Webhooks [ 26/May/23 ] |
|
jyemin merged a pull request (JAVA-4868 3.12.x backport) into the following branch: |
| Comment by Jeffrey Yemin [ 16/May/23 ] |
|
Oh, you're using the callback-based API in 3.x. Yeah, that's a lot of work to update to reactive. We'll consider backporting this. |
| Comment by Ian Springer [ 16/May/23 ] |
|
Hi jeff.yemin@mongodb.com, to give a little more context, we tried rolling out enablement of network compression for our Mongo clients (app servers) into production yesterday and noticed significant increases in latency and errors in our application. We eventually realized it was likely due to this bug, as we're using v3.12.11. I actually do have a 4.x upgrade branch ready to go, but we'll have to do some canary testing before rolling it out, since it involved some significant changes to our code, particularly around refactoring to use the new reactivestreams async API. I thought I'd get the ball rolling on an option B that would not require the canary testing, and I also thought you'd want to cut a 3.x patch release for this, since it makes zstd network compression unusable for most applications. If you're not going to cut a release, I would at least update the docs with a warning. |
| Comment by Jeffrey Yemin [ 16/May/23 ] |
|
Hi ian.springer@salesforce.com, we're not currently planning any more 3.12.x patch releases? What's blocking you from upgrading to 4.x? |
| Comment by Ian Springer [ 16/May/23 ] |
|
Please backport to 3.12.x. Here's a PR: https://github.com/mongodb/mongo-java-driver/pull/1116 |
| Comment by Githook User [ 06/Feb/23 ] |
|
Author: {'name': 'Maxim Katcharov', 'email': 'maxim.katcharov@mongodb.com', 'username': 'katcharov'}Message: Use default compression level for zstd (#1080)
|