X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDatastoreContext.java;h=d2e8b0efd80ed20981e84f30532380f0762b4e8b;hb=2a01b2263488748bd07d224a01b23f5550274447;hp=01e42dbb8e92400b7f4af73d55257d6f9ebbe4a2;hpb=5dae3ebb0b0560c7552fe835abbce8772285d7e0;p=controller.git 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 01e42dbb8e..d2e8b0efd8 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 @@ -37,13 +37,15 @@ public class DatastoreContext { private final boolean persistent; private final ConfigurationReader configurationReader; private final long shardElectionTimeoutFactor; + private final long transactionCreationInitialRateLimit; private DatastoreContext(InMemoryDOMDataStoreConfigProperties dataStoreProperties, ConfigParams shardRaftConfig, String dataStoreMXBeanType, int operationTimeoutInSeconds, Duration shardTransactionIdleTimeout, int shardTransactionCommitTimeoutInSeconds, int shardTransactionCommitQueueCapacity, Timeout shardInitializationTimeout, Timeout shardLeaderElectionTimeout, - boolean persistent, ConfigurationReader configurationReader, long shardElectionTimeoutFactor) { + boolean persistent, ConfigurationReader configurationReader, long shardElectionTimeoutFactor, + long transactionCreationInitialRateLimit) { this.dataStoreProperties = dataStoreProperties; this.shardRaftConfig = shardRaftConfig; this.dataStoreMXBeanType = dataStoreMXBeanType; @@ -56,6 +58,7 @@ public class DatastoreContext { this.persistent = persistent; this.configurationReader = configurationReader; this.shardElectionTimeoutFactor = shardElectionTimeoutFactor; + this.transactionCreationInitialRateLimit = transactionCreationInitialRateLimit; } public static Builder newBuilder() { @@ -110,6 +113,11 @@ public class DatastoreContext { return this.shardElectionTimeoutFactor; } + + public long getTransactionCreationInitialRateLimit() { + return transactionCreationInitialRateLimit; + } + public static class Builder { private InMemoryDOMDataStoreConfigProperties dataStoreProperties; private Duration shardTransactionIdleTimeout = Duration.create(10, TimeUnit.MINUTES); @@ -127,6 +135,7 @@ public class DatastoreContext { private int shardIsolatedLeaderCheckIntervalInMillis = shardHeartbeatIntervalInMillis * 10; private int shardSnapshotDataThresholdPercentage = 12; private long shardElectionTimeoutFactor = 2; + private long transactionCreationInitialRateLimit = 100; public Builder shardTransactionIdleTimeout(Duration shardTransactionIdleTimeout) { this.shardTransactionIdleTimeout = shardTransactionIdleTimeout; @@ -209,6 +218,11 @@ public class DatastoreContext { return this; } + public Builder transactionCreationInitialRateLimit(long initialRateLimit){ + this.transactionCreationInitialRateLimit = initialRateLimit; + return this; + } + public DatastoreContext build() { DefaultConfigParamsImpl raftConfig = new DefaultConfigParamsImpl(); @@ -225,7 +239,7 @@ public class DatastoreContext { operationTimeoutInSeconds, shardTransactionIdleTimeout, shardTransactionCommitTimeoutInSeconds, shardTransactionCommitQueueCapacity, shardInitializationTimeout, shardLeaderElectionTimeout, - persistent, configurationReader, shardElectionTimeoutFactor); + persistent, configurationReader, shardElectionTimeoutFactor, transactionCreationInitialRateLimit); } } }