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

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


The following commit(s) were added to refs/heads/3.1 by this push:
     new f05a179  KAFKA-13512: Avoid duplicating maps in ZkMetadataCache topic 
accessors
f05a179 is described below

commit f05a179738dc67eff9e7e62ca9c9ea254befa155
Author: Justine Olshan <[email protected]>
AuthorDate: Wed Dec 8 13:57:08 2021 -0800

    KAFKA-13512: Avoid duplicating maps in ZkMetadataCache topic accessors
    
    Reviewers: Colin P. McCabe <[email protected]>, Luke Chen 
<[email protected]>, Ismael Juma <[email protected]>
---
 core/src/main/scala/kafka/server/metadata/ZkMetadataCache.scala     | 6 +++---
 .../org/apache/kafka/jmh/metadata/MetadataRequestBenchmark.java     | 5 +++++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/core/src/main/scala/kafka/server/metadata/ZkMetadataCache.scala 
b/core/src/main/scala/kafka/server/metadata/ZkMetadataCache.scala
index 7bb7e36..0356873 100755
--- a/core/src/main/scala/kafka/server/metadata/ZkMetadataCache.scala
+++ b/core/src/main/scala/kafka/server/metadata/ZkMetadataCache.scala
@@ -182,11 +182,11 @@ class ZkMetadataCache(brokerId: Int) extends 
MetadataCache with Logging {
   }
 
   def topicNamesToIds(): util.Map[String, Uuid] = {
-    new util.HashMap(metadataSnapshot.topicIds.asJava)
+    Collections.unmodifiableMap(metadataSnapshot.topicIds.asJava)
   }
 
   def topicIdsToNames(): util.Map[Uuid, String] = {
-    new util.HashMap(metadataSnapshot.topicNames.asJava)
+    Collections.unmodifiableMap(metadataSnapshot.topicNames.asJava)
   }
 
   /**
@@ -194,7 +194,7 @@ class ZkMetadataCache(brokerId: Int) extends MetadataCache 
with Logging {
    */
   def topicIdInfo(): (util.Map[String, Uuid], util.Map[Uuid, String]) = {
     val snapshot = metadataSnapshot
-    (new util.HashMap(snapshot.topicIds.asJava), new 
util.HashMap(snapshot.topicNames.asJava))
+    (Collections.unmodifiableMap(snapshot.topicIds.asJava), 
Collections.unmodifiableMap(snapshot.topicNames.asJava))
   }
 
   override def getAllTopics(): Set[String] = {
diff --git 
a/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/metadata/MetadataRequestBenchmark.java
 
b/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/metadata/MetadataRequestBenchmark.java
index 69672f5..83dd7eb 100644
--- 
a/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/metadata/MetadataRequestBenchmark.java
+++ 
b/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/metadata/MetadataRequestBenchmark.java
@@ -224,4 +224,9 @@ public class MetadataRequestBenchmark {
     public String testRequestToJson() {
         return 
RequestConvertToJson.requestDesc(allTopicMetadataRequest.header(), 
allTopicMetadataRequest.requestLog(), 
allTopicMetadataRequest.isForwarded()).toString();
     }
+
+    @Benchmark
+    public void testTopicIdInfo() {
+        metadataCache.topicIdInfo();
+    }
 }

Reply via email to