Aleksandr Efimov has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/24822 )

Change subject: IMPALA-14598: Store HBO cache in Redis/Valkey
......................................................................


Patch Set 2:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/24822/2/be/src/common/global-flags.cc
File be/src/common/global-flags.cc:

http://gerrit.cloudera.org:8080/#/c/24822/2/be/src/common/global-flags.cc@280
PS2, Line 280: DEFINE_string(hbo_cache_redis_password, "",
This untagged flag is printed by `LogCommandLineFlags()`, exposing the Redis 
password in startup logs and argv. Please use the existing `*_password_cmd` 
pattern and mark it sensitive.


http://gerrit.cloudera.org:8080/#/c/24822/2/fe/src/main/java/org/apache/impala/service/HistoricalStats.java
File fe/src/main/java/org/apache/impala/service/HistoricalStats.java:

http://gerrit.cloudera.org:8080/#/c/24822/2/fe/src/main/java/org/apache/impala/service/HistoricalStats.java@141
PS2, Line 141:           (HistoricalStatsValue<TPlanNodeRun>) 
cacheBackend_.getIfPresent(
This GET-modify-SET is not atomic across coordinators, so concurrent writers 
can drop a non-similar run. Please use an atomic backend update, e.g. 
`WATCH`/`MULTI` with retry, and test two writers.


http://gerrit.cloudera.org:8080/#/c/24822/2/fe/src/main/java/org/apache/impala/service/RedisCacheBackend.java
File fe/src/main/java/org/apache/impala/service/RedisCacheBackend.java:

http://gerrit.cloudera.org:8080/#/c/24822/2/fe/src/main/java/org/apache/impala/service/RedisCacheBackend.java@81
PS2, Line 81:     poolConfig.setMaxTotal(maxConnections);
Redis GET runs in the planner path. A slow server can consume the timeout per 
node and strategy, while pool waits are unbounded because `maxWait` is unset. 
Please bound both and add a slow-server test.


http://gerrit.cloudera.org:8080/#/c/24822/2/fe/src/main/java/org/apache/impala/service/RedisCacheBackend.java@108
PS2, Line 108:       jedis.set(buildKey(statsType, key), serialize(statsValue));
`hbo_max_runs_per_key` limits one value, but keys never expire, so total Redis 
usage is unbounded. Please add a TTL or document and enforce the required 
memory/eviction policy.



--
To view, visit http://gerrit.cloudera.org:8080/24822
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I43a171bcd436f57bcff14ceaaaa98c0f7dcec769
Gerrit-Change-Number: 24822
Gerrit-PatchSet: 2
Gerrit-Owner: Quanlong Huang <[email protected]>
Gerrit-Reviewer: Aleksandr Efimov <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Comment-Date: Fri, 11 Sep 2026 22:19:08 +0000
Gerrit-HasComments: Yes

Reply via email to