X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDatastoreContext.java;h=83164b07d9431a70ce609139a476190a5488ab9a;hp=1021ddeee7a5348f26cbaa8845059a515c537f92;hb=9e59cc0d824e6752a7a3f3ba092abaaf3c1d4193;hpb=7a569e082e6be2fd081e8df16666d44e1fe9274a diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContext.java index 1021ddeee7..83164b07d9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContext.java @@ -8,11 +8,12 @@ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; - +import org.opendaylight.controller.cluster.raft.ConfigParams; +import org.opendaylight.controller.cluster.raft.DefaultConfigParamsImpl; import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreConfigProperties; import scala.concurrent.duration.Duration; +import scala.concurrent.duration.FiniteDuration; import java.util.concurrent.TimeUnit; @@ -27,22 +28,30 @@ public class DatastoreContext { private final Duration shardTransactionIdleTimeout; private final int operationTimeoutInSeconds; private final String dataStoreMXBeanType; + private final ConfigParams shardRaftConfig; public DatastoreContext() { - this.dataStoreProperties = null; - this.dataStoreMXBeanType = "DistributedDatastore"; - this.shardTransactionIdleTimeout = Duration.create(10, TimeUnit.MINUTES); - this.operationTimeoutInSeconds = 5; + this("DistributedDatastore", null, Duration.create(10, TimeUnit.MINUTES), 5, 1000, 20000, 500); } public DatastoreContext(String dataStoreMXBeanType, InMemoryDOMDataStoreConfigProperties dataStoreProperties, Duration shardTransactionIdleTimeout, - int operationTimeoutInSeconds) { + int operationTimeoutInSeconds, + int shardJournalRecoveryLogBatchSize, + int shardSnapshotBatchCount, + int shardHeartbeatIntervalInMillis) { this.dataStoreMXBeanType = dataStoreMXBeanType; - this.dataStoreProperties = Preconditions.checkNotNull(dataStoreProperties); + this.dataStoreProperties = dataStoreProperties; this.shardTransactionIdleTimeout = shardTransactionIdleTimeout; this.operationTimeoutInSeconds = operationTimeoutInSeconds; + + DefaultConfigParamsImpl raftConfig = new DefaultConfigParamsImpl(); + raftConfig.setHeartBeatInterval(new FiniteDuration(shardHeartbeatIntervalInMillis, + TimeUnit.MILLISECONDS)); + raftConfig.setJournalRecoveryLogBatchSize(shardJournalRecoveryLogBatchSize); + raftConfig.setSnapshotBatchCount(shardSnapshotBatchCount); + shardRaftConfig = raftConfig; } public InMemoryDOMDataStoreConfigProperties getDataStoreProperties() { @@ -60,4 +69,8 @@ public class DatastoreContext { public int getOperationTimeoutInSeconds() { return operationTimeoutInSeconds; } + + public ConfigParams getShardRaftConfig() { + return shardRaftConfig; + } }