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();
+ }
}