This is an automated email from the ASF dual-hosted git repository.
gortiz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 1004d3b0d2 bugfix: reduce enum array allocation in QueryLogger (#12478)
1004d3b0d2 is described below
commit 1004d3b0d27e4ba48071e5f72b433b4db184dce9
Author: sullis <[email protected]>
AuthorDate: Fri Feb 23 03:41:44 2024 -0800
bugfix: reduce enum array allocation in QueryLogger (#12478)
Motivation:
reduce enum array allocation in QueryLogger
Modifications:
cache QueryLogEntry.values() in a static variable
Result:
Java enum .values() method is invoked exactly once
Additional context:
https://www.gamlor.info/wordpress/2017/08/javas-enum-values-hidden-allocations/
---
.../src/main/java/org/apache/pinot/broker/querylog/QueryLogger.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git
a/pinot-broker/src/main/java/org/apache/pinot/broker/querylog/QueryLogger.java
b/pinot-broker/src/main/java/org/apache/pinot/broker/querylog/QueryLogger.java
index e708a9edb7..a1ccd63e6c 100644
---
a/pinot-broker/src/main/java/org/apache/pinot/broker/querylog/QueryLogger.java
+++
b/pinot-broker/src/main/java/org/apache/pinot/broker/querylog/QueryLogger.java
@@ -45,6 +45,7 @@ import static
org.apache.pinot.spi.utils.CommonConstants.Broker;
public class QueryLogger {
private static final Logger LOGGER =
LoggerFactory.getLogger(QueryLogger.class);
+ private static final QueryLogEntry[] QUERY_LOG_ENTRY_VALUES =
QueryLogEntry.values();
private final int _maxQueryLengthToLog;
private final RateLimiter _logRateLimiter;
@@ -82,7 +83,7 @@ public class QueryLogger {
}
final StringBuilder queryLogBuilder = new StringBuilder();
- for (QueryLogEntry value : QueryLogEntry.values()) {
+ for (QueryLogEntry value : QUERY_LOG_ENTRY_VALUES) {
value.format(queryLogBuilder, this, params);
queryLogBuilder.append(',');
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]