This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch branch-1.18.x
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/branch-1.18.x by this push:
new edcd41cf0 [util] use ZBEST_SPEED for zlib::Compress()
edcd41cf0 is described below
commit edcd41cf09ceafbeb838a706e8c758c7c004d968
Author: Alexey Serbin <[email protected]>
AuthorDate: Thu Mar 6 16:37:04 2025 -0800
[util] use ZBEST_SPEED for zlib::Compress()
The only non-test call site for zlib::CompressLevel() is in embedded
web server, where ZBEST_SPEED compression level is used. From the other
side, tracing path handlers is the only non-test call site place where
zlib::Compress() is used. The latter seems to benefit the same way
as the former if switching from Z_DEFAULT_COMPRESSION to ZBEST_SPEED
compression level in [1].
In other words, it makes sense to switch zlib::Compress() from
Z_DEFAULT_COMPRESSION to ZBEST_SPEED and use zlib::Compress()
everywhere. This patch does exactly so.
[1] https://github.com/apache/kudu/commit/9106a3ca8
Change-Id: Ib2541a8785cff776fc9e8a6df23c2f44e77fdc5b
Reviewed-on: http://gerrit.cloudera.org:8080/22594
Reviewed-by: Yifan Zhang <[email protected]>
Reviewed-by: Abhishek Chennaka <[email protected]>
Tested-by: Alexey Serbin <[email protected]>
(cherry picked from commit 7e9d7adc8f311c88b2aff673549fe3b8931e69c6)
Reviewed-on: http://gerrit.cloudera.org:8080/22615
---
src/kudu/server/webserver.cc | 2 +-
src/kudu/util/zlib.cc | 2 +-
src/kudu/util/zlib.h | 4 +++-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/kudu/server/webserver.cc b/src/kudu/server/webserver.cc
index a734259cb..c8c79ff6a 100644
--- a/src/kudu/server/webserver.cc
+++ b/src/kudu/server/webserver.cc
@@ -715,7 +715,7 @@ void Webserver::SendResponse(struct sq_connection*
connection,
}
ostringstream oss;
- Status s = zlib::CompressLevel(uncompressed, 1, &oss);
+ const auto s = zlib::Compress(uncompressed, &oss);
if (PREDICT_TRUE(s.ok())) {
resp->output.str(oss.str());
is_compressed = true;
diff --git a/src/kudu/util/zlib.cc b/src/kudu/util/zlib.cc
index 4d70c29a1..88e1133d0 100644
--- a/src/kudu/util/zlib.cc
+++ b/src/kudu/util/zlib.cc
@@ -70,7 +70,7 @@ Status ZlibResultToStatus(int rc) {
} // anonymous namespace
Status Compress(Slice input, ostream* out) {
- return CompressLevel(input, Z_DEFAULT_COMPRESSION, out);
+ return CompressLevel(input, Z_BEST_SPEED, out);
}
// See https://zlib.net/zlib_how.html for context on using zlib.
diff --git a/src/kudu/util/zlib.h b/src/kudu/util/zlib.h
index 0931d557f..778a22751 100644
--- a/src/kudu/util/zlib.h
+++ b/src/kudu/util/zlib.h
@@ -24,7 +24,9 @@
namespace kudu {
namespace zlib {
-// Zlib-compress the data in 'input', appending the result to 'out'.
+// Zlib-compress the data in 'input', appending the result to 'out', using
+// Z_BEST_SPEED compression level, i.e. best speed and decent compression
+// ratio (that's level 1 in the context of CompressLevel() below).
//
// In case of an error, non-OK status is returned and some data may still
// be appended to 'out'.