BUG 2676 : Apply backpressure when creating transactions
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / DistributedDataStore.java
index 2c73807dca858f754dd4521a390e0777d6ff60d6..e9038ed4f0f9ab5a37af554ef43215af8668e6c8 100644 (file)
@@ -53,9 +53,8 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener, Au
 
         actorContext = new ActorContext(actorSystem, actorSystem.actorOf(
                 ShardManager.props(type, cluster, configuration, datastoreContext)
-                    .withMailbox(ActorContext.MAILBOX), shardManagerId ), cluster, configuration);
-
-        actorContext.setOperationTimeout(datastoreContext.getOperationTimeoutInSeconds());
+                    .withMailbox(ActorContext.MAILBOX), shardManagerId ),
+                cluster, configuration, datastoreContext, type);
     }
 
     public DistributedDataStore(ActorContext actorContext) {
@@ -95,11 +94,13 @@ public class DistributedDataStore implements DOMStore, SchemaContextListener, Au
 
     @Override
     public DOMStoreWriteTransaction newWriteOnlyTransaction() {
+        actorContext.acquireTxCreationPermit();
         return new TransactionProxy(actorContext, TransactionProxy.TransactionType.WRITE_ONLY);
     }
 
     @Override
     public DOMStoreReadWriteTransaction newReadWriteTransaction() {
+        actorContext.acquireTxCreationPermit();
         return new TransactionProxy(actorContext, TransactionProxy.TransactionType.READ_WRITE);
     }