diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-06-24 15:24:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-24 15:24:20 +0200 |
commit | 4a53c233ad4f4d6ce2b8afa0873d9596c9c13e99 (patch) | |
tree | ed070ad9d0756f3d4ba08c4840c8f17ec0ae588a | |
parent | aa244b000fe8ef9db2e8c8fea7921b7cd1a71d84 (diff) | |
parent | e6a4d0a49ec3f06470753e71a855917fc1c316b9 (diff) |
Merge pull request #23236 from vespa-engine/balder/avoid-copying-map-if-it-already-has-all-keys
Balder/avoid copying map if it already has all keys
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java index 5a12eeddd17..3f9df4d9955 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java @@ -31,6 +31,9 @@ import java.util.Map; */ public class QueryProfileProperties extends Properties { + private static final String ENVIRONMENT = "environment"; + private static final String REGION = "region"; + private static final String INSTANCE = "instance"; private final CompiledQueryProfile profile; private final Map<String, Embedder> embedders; private final ZoneInfo zoneInfo; @@ -70,9 +73,9 @@ public class QueryProfileProperties extends Properties { this.embedders = embedders; this.zoneInfo = zoneInfo; this.zoneContext = Map.of( - "environment", zoneInfo.zone().environment().name(), - "region", zoneInfo.zone().region(), - "instance", zoneInfo.application().instance()); + ENVIRONMENT, zoneInfo.zone().environment().name(), + REGION, zoneInfo.zone().region(), + INSTANCE, zoneInfo.application().instance()); } @@ -297,11 +300,12 @@ public class QueryProfileProperties extends Properties { if (zoneInfo == ZoneInfo.defaultInfo()) return context; if (context == null) return zoneContext; if (context == zoneContext) return context; + if (context.containsKey(ENVIRONMENT) && context.containsKey(REGION) && context.containsKey(INSTANCE)) return context; Map<String, String> contextWithZoneInfo = new HashMap<>(context); - contextWithZoneInfo.putIfAbsent("environment", zoneInfo.zone().environment().name()); - contextWithZoneInfo.putIfAbsent("region", zoneInfo.zone().region()); - contextWithZoneInfo.putIfAbsent("instance", zoneInfo.application().instance()); + contextWithZoneInfo.putIfAbsent(ENVIRONMENT, zoneInfo.zone().environment().name()); + contextWithZoneInfo.putIfAbsent(REGION, zoneInfo.zone().region()); + contextWithZoneInfo.putIfAbsent(INSTANCE, zoneInfo.application().instance()); return Collections.unmodifiableMap(contextWithZoneInfo); } |