From 7220409ebe0ed82a23dedc0513ce07f72c9f6f22 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 25 Nov 2018 18:21:00 +0100 Subject: [PATCH] Use SharedSingletonMapTemplate We know the key statically, hence we can use more efficient maps to hold our NodeIdentifierWithPredicates. This saves some CPU cycles as well as produces less garbage. JIRA: MDSAL-917 Change-Id: I55b89498ab725f8aba85f8e7f1c8bb16f0fe6565 Signed-off-by: Robert Varga --- .../datastore/entityownership/EntityOwnersModel.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnersModel.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnersModel.java index 22d5935ca3..645183394f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnersModel.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnersModel.java @@ -13,6 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.EntityType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.entity.type.Entity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.entity.type.entity.Candidate; +import org.opendaylight.yangtools.util.SharedSingletonMapTemplate; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -49,6 +50,9 @@ public final class EntityOwnersModel { static final YangInstanceIdentifier ENTITY_TYPES_PATH = YangInstanceIdentifier.of(EntityOwners.QNAME).node(EntityType.QNAME); + private static final SharedSingletonMapTemplate NODE_KEY_TEMPLATE = SharedSingletonMapTemplate.ordered( + CANDIDATE_NAME_QNAME); + private EntityOwnersModel() { } @@ -65,7 +69,6 @@ public final class EntityOwnersModel { .nodeWithKey(EntityType.QNAME, ENTITY_TYPE_QNAME, entityType).node(ENTITY_QNAME) .nodeWithKey(ENTITY_QNAME, ENTITY_ID_QNAME, entityId).node(Candidate.QNAME) .nodeWithKey(Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName).build(); - } static YangInstanceIdentifier candidatePath(final YangInstanceIdentifier entityPath, final String candidateName) { @@ -74,7 +77,7 @@ public final class EntityOwnersModel { } static NodeIdentifierWithPredicates candidateNodeKey(final String candidateName) { - return new NodeIdentifierWithPredicates(Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName); + return new NodeIdentifierWithPredicates(Candidate.QNAME, NODE_KEY_TEMPLATE.instantiateWithValue(candidateName)); } static NormalizedNode entityOwnersWithCandidate(final String entityType, -- 2.36.6