RavenDB HTTP Compression: Bandwidth & Time reductions
I recently talked about how RavenDB is now using ZStd as the default compression algorithm for backups. That led to a reduction both in the amount of storage we are consuming for backups and a significant reduction in the time to actually run the backups.
We have been exploring where else we can get those benefits and the changes were recently released in RavenDB 6.0.2.
RavenDB now supports ZStd for HTTP compression, which you can control using the DocumentConventions.HttpCompressionAlgorithm.
You can find all the gory details about the performance impact in the release announcement here.
The really nice thing is that you can expect to see about a 50% reduction in the amount of bandwidth being used at comparable or better timings. That is especially true if you are using bulk inserts, where the benefit is most noticeable.
If you are running on the cloud, that matters a lot, since a reduction in bandwidth to and from the database translates directly into dollars being saved.
Comments
This is cool but AFAIK is not part of the HTTP spec. Is this purely for API support? I'm not aware of any HTTP server or client which support zstd. Brotli is the modern compression method which is specified....
And while formulating the question I was looking up which RFC defines the brotli http encoding and learned that zstd is specified for HTTP encoding in RFC 8878.
Thanks for the post!
Jay, As you pointed out, this is supported by HTTP per RFC. For our purposes, this is also something that we could do directly, since we control both server and client.Luckily, that isn't required.
Comment preview