X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=benchmark%2Fdsbenchmark%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fdsbenchmark%2Ftxchain%2FTxchainDomWrite.java;h=7e8c6aab6018805d991bf98fa5bf50a78ae4e482;hp=f7a44d5f58b36e13106c9da622da552568349f46;hb=fdc97fc0d771dcf17616282bc942b05243182a5a;hpb=bc740310bca93dcefcf546f7c4a627d8153b3739 diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomWrite.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomWrite.java index f7a44d5f58..7e8c6aab60 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomWrite.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomWrite.java @@ -21,6 +21,7 @@ import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; import org.opendaylight.dsbenchmark.DatastoreAbstractWriter; import org.opendaylight.dsbenchmark.DomListBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.StartTestInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.StartTestInput.DataStore; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.TestExec; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.test.exec.OuterList; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -38,8 +39,8 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact private List list; public TxchainDomWrite(DOMDataBroker domDataBroker, StartTestInput.Operation oper, int outerListElem, - int innerListElem, long writesPerTx) { - super(oper, outerListElem, innerListElem, writesPerTx); + int innerListElem, long writesPerTx, DataStore dataStore) { + super(oper, outerListElem, innerListElem, writesPerTx, dataStore); this.domDataBroker = domDataBroker; LOG.info("Created TxchainDomWrite"); } @@ -55,6 +56,7 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact int writeCnt = 0; DOMTransactionChain chain = domDataBroker.createTransactionChain(this); + LogicalDatastoreType dsType = getDataStoreType(); DOMDataWriteTransaction tx = chain.newWriteOnlyTransaction(); YangInstanceIdentifier pid = YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); @@ -62,13 +64,14 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, element.getIdentifier().getKeyValues())); if (oper == StartTestInput.Operation.PUT) { - tx.put(LogicalDatastoreType.CONFIGURATION, yid, element); + tx.put(dsType, yid, element); } else { - tx.merge(LogicalDatastoreType.CONFIGURATION, yid, element); + tx.merge(dsType, yid, element); } writeCnt++; + // Start performing the operation; submit the transaction at every n-th operation if (writeCnt == writesPerTx) { txSubmitted++; Futures.addCallback(tx.submit(), new FutureCallback() { @@ -83,6 +86,7 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact } }); tx = chain.newWriteOnlyTransaction(); + dsType = getDataStoreType(); writeCnt = 0; } } @@ -90,6 +94,7 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact // *** Clean up and close the transaction chain *** // Submit the outstanding transaction even if it's empty and wait for it to finish // We need to empty the transaction chain before closing it + try { txSubmitted++; tx.submit().checkedGet();