This is an automated email from the ASF dual-hosted git repository.

chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 524ef3b42e7 MINOR: Narrow remote copy lag validator props to 
Map<String, ?> and update the upgrade doc for KIP-1241 (#22363)
524ef3b42e7 is described below

commit 524ef3b42e70a60ce3934f424c6858168491cb54
Author: Jian <[email protected]>
AuthorDate: Tue Jul 21 11:52:07 2026 +0800

    MINOR: Narrow remote copy lag validator props to Map<String, ?> and update 
the upgrade doc for KIP-1241 (#22363)
    
    This is one followup PR for the review:
    https://github.com/apache/kafka/pull/20913#discussion_r3289589447 thanks
    
    Reviewers: Chia-Ping Tsai <[email protected]>
---
 docs/getting-started/upgrade.md                                       | 1 +
 .../main/java/org/apache/kafka/storage/internals/log/LogConfig.java   | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/docs/getting-started/upgrade.md b/docs/getting-started/upgrade.md
index 81b81e57c34..657b165b6da 100644
--- a/docs/getting-started/upgrade.md
+++ b/docs/getting-started/upgrade.md
@@ -33,6 +33,7 @@ type: docs
 ### Notable changes in 4.4.0
 
   * The `ClientQuotaCallback#updateClusterMetadata` method is deprecated and 
will be removed in Kafka 5.0. Custom implementations of `ClientQuotaCallback` 
no longer need to override this method, as a default no-op implementation is 
now provided. For further details, please refer to 
[KIP-1200](https://cwiki.apache.org/confluence/x/axBJFg).
+  * New configs have been introduced: remote.copy.lag.bytes, 
remote.copy.lag.ms and their corresponding broker-level configurations. They 
allow tiered storage redundancy reduced with delayed upload. For further 
details, please refer to 
[KIP-1241](https://cwiki.apache.org/confluence/x/A4LMFw).
   * The in-memory keystores (used for PEM certificates) now use the default 
type provided by `KeyStore.getDefaultType()` instead of the hardcoded PKCS12 
type.
   * Storage directories formatted by the `kafka-storage` tool are no longer 
forward-compatible. A Kafka broker must be the same version as, or newer than, 
the `kafka-storage` tool that formatted its directory, regardless of the 
`--release-version` chosen at format time. For further details, please refer to 
[KIP-1170](https://cwiki.apache.org/confluence/x/ZYoEFQ).
   * The Linux I/O metrics collector now exposes all 7 fields from 
/proc/self/io via JMX, adding linux-disk-rchar, linux-disk-wchar, 
linux-disk-syscr, linux-disk-syscw, and linux-disk-cancelled-write-bytes 
alongside the existing linux-disk-read-bytes and linux-disk-write-bytes. These 
additional metrics let operators calculate page-cache hit ratios, detect write 
amplification from filesystem overhead, identify inefficient syscall patterns, 
and monitor log-compaction I/O activity. For furth [...]
diff --git 
a/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java 
b/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java
index 661df953071..10da86e05fb 100644
--- 
a/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java
+++ 
b/storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java
@@ -627,7 +627,7 @@ public class LogConfig extends AbstractConfig {
         }
     }
 
-    private static void validateRemoteCopyLagTime(Map<?, ?> props) {
+    private static void validateRemoteCopyLagTime(Map<String, ?> props) {
         Long retentionMs = (Long) props.get(TopicConfig.RETENTION_MS_CONFIG);
         Long localRetentionMs = (Long) 
props.get(TopicConfig.LOCAL_LOG_RETENTION_MS_CONFIG);
         Long remoteCopyLagMs = (Long) 
props.get(TopicConfig.REMOTE_COPY_LAG_MS_CONFIG);
@@ -640,7 +640,7 @@ public class LogConfig extends AbstractConfig {
         }
     }
 
-    private static void validateRemoteCopyLagSize(Map<?, ?> props) {
+    private static void validateRemoteCopyLagSize(Map<String, ?> props) {
         Long retentionBytes = (Long) 
props.get(TopicConfig.RETENTION_BYTES_CONFIG);
         Long localRetentionBytes = (Long) 
props.get(TopicConfig.LOCAL_LOG_RETENTION_BYTES_CONFIG);
         Long remoteCopyLagBytes = (Long) 
props.get(TopicConfig.REMOTE_COPY_LAG_BYTES_CONFIG);

Reply via email to