New and direct StorageService method for creating an AtomicCounter
Change-Id: I8c189584dde590842075bea7e03c4c8ecf8d72c2
diff --git a/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentApplicationIdStore.java b/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentApplicationIdStore.java
index 1046bba..6b0f3e4 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentApplicationIdStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentApplicationIdStore.java
@@ -67,10 +67,7 @@
@Activate
public void activate() {
- appIdCounter = storageService.atomicCounterBuilder()
- .withName("onos-app-id-counter")
- .build()
- .asAtomicCounter();
+ appIdCounter = storageService.getAtomicCounter("onos-app-id-counter");
registeredIds = storageService.<String, ApplicationId>consistentMapBuilder()
.withName("onos-app-ids")
diff --git a/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentIdBlockStore.java b/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentIdBlockStore.java
index b3d53c4..a68dee8 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentIdBlockStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/core/impl/ConsistentIdBlockStore.java
@@ -23,11 +23,9 @@
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
-import org.onlab.util.Tools;
import org.onosproject.core.IdBlock;
import org.onosproject.core.IdBlockStore;
import org.onosproject.store.service.AtomicCounter;
-import org.onosproject.store.service.StorageException;
import org.onosproject.store.service.StorageService;
import org.slf4j.Logger;
@@ -42,9 +40,6 @@
@Service
public class ConsistentIdBlockStore implements IdBlockStore {
- private static final int MAX_TRIES = 5;
- private static final int RETRY_DELAY_MS = 2_000;
-
private final Logger log = getLogger(getClass());
private final Map<String, AtomicCounter> topicCounters = Maps.newConcurrentMap();
@@ -65,16 +60,7 @@
@Override
public IdBlock getIdBlock(String topic) {
- AtomicCounter counter = topicCounters
- .computeIfAbsent(topic,
- name -> storageService.atomicCounterBuilder()
- .withName(name)
- .build()
- .asAtomicCounter());
- Long blockBase = Tools.retryable(counter::getAndAdd,
- StorageException.class,
- MAX_TRIES,
- RETRY_DELAY_MS).apply(DEFAULT_BLOCK_SIZE);
- return new IdBlock(blockBase, DEFAULT_BLOCK_SIZE);
+ AtomicCounter counter = topicCounters.computeIfAbsent(topic, storageService::getAtomicCounter);
+ return new IdBlock(counter.getAndAdd(DEFAULT_BLOCK_SIZE), DEFAULT_BLOCK_SIZE);
}
}
diff --git a/core/store/dist/src/main/java/org/onosproject/store/core/impl/LogicalClockManager.java b/core/store/dist/src/main/java/org/onosproject/store/core/impl/LogicalClockManager.java
index b6ff961..5c00782 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/core/impl/LogicalClockManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/core/impl/LogicalClockManager.java
@@ -50,11 +50,7 @@
@Activate
public void activate() {
- atomicCounter = storageService.atomicCounterBuilder()
- .withName(SYSTEM_LOGICAL_CLOCK_COUNTER_NAME)
- .withPartitionsDisabled()
- .build()
- .asAtomicCounter();
+ atomicCounter = storageService.getAtomicCounter(SYSTEM_LOGICAL_CLOCK_COUNTER_NAME);
log.info("Started");
}
diff --git a/core/store/dist/src/main/java/org/onosproject/store/flowobjective/impl/DistributedFlowObjectiveStore.java b/core/store/dist/src/main/java/org/onosproject/store/flowobjective/impl/DistributedFlowObjectiveStore.java
index 9bd6383..5794f45 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/flowobjective/impl/DistributedFlowObjectiveStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/flowobjective/impl/DistributedFlowObjectiveStore.java
@@ -69,11 +69,7 @@
.build()))
.build();
- nextIds = storageService.atomicCounterBuilder()
- .withName("next-objective-counter")
- .build()
- .asAtomicCounter();
-
+ nextIds = storageService.getAtomicCounter("next-objective-counter");
log.info("Started");
}