Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Added support for multiple data store types to DOM transaction chains and to simple...
[controller.git]
/
benchmark
/
dsbenchmark
/
src
/
main
/
java
/
org
/
opendaylight
/
dsbenchmark
/
txchain
/
TxchainDomWrite.java
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 f7a44d5f58b36e13106c9da622da552568349f46..7e8c6aab6018805d991bf98fa5bf50a78ae4e482 100644
(file)
--- 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.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;
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<MapEntryNode> list;
public TxchainDomWrite(DOMDataBroker domDataBroker, StartTestInput.Operation oper, int outerListElem,
private List<MapEntryNode> 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");
}
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);
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();
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) {
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 {
} else {
- tx.merge(
LogicalDatastoreType.CONFIGURATION
, yid, element);
+ tx.merge(
dsType
, yid, element);
}
writeCnt++;
}
writeCnt++;
+ // Start performing the operation; submit the transaction at every n-th operation
if (writeCnt == writesPerTx) {
txSubmitted++;
Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
if (writeCnt == writesPerTx) {
txSubmitted++;
Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
@@
-83,6
+86,7
@@
public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact
}
});
tx = chain.newWriteOnlyTransaction();
}
});
tx = chain.newWriteOnlyTransaction();
+ dsType = getDataStoreType();
writeCnt = 0;
}
}
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
// *** 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();
try {
txSubmitted++;
tx.submit().checkedGet();