From 625723b875800d5c421061f09cd5f387ccb59e62 Mon Sep 17 00:00:00 2001 From: Jan Date: Mon, 19 Sep 2016 15:32:55 -0700 Subject: [PATCH] Added the 'number of data changes' parameter to dsbenchmark test start outputs Change-Id: Ibc3826e1c0758ebd6cbf30e664a5ecc6a79ec317 Signed-off-by: Jan --- benchmark/api/src/main/yang/dsbenchmark.yang | 9 ++++- .../dsbenchmark/BaListBuilder.java | 13 +++--- .../dsbenchmark/DatastoreAbstractWriter.java | 8 ++-- .../dsbenchmark/DomListBuilder.java | 11 ++--- .../dsbenchmark/DsbenchmarkProvider.java | 19 +++++---- .../listener/DsbenchmarkListener.java | 13 ++++-- .../listener/DsbenchmarkListenerProvider.java | 21 +++++++--- .../simpletx/SimpletxBaDelete.java | 40 +++++++++---------- .../dsbenchmark/simpletx/SimpletxBaRead.java | 12 +++--- .../dsbenchmark/simpletx/SimpletxBaWrite.java | 12 +++--- .../simpletx/SimpletxDomDelete.java | 10 ++--- .../dsbenchmark/simpletx/SimpletxDomRead.java | 35 +++------------- .../simpletx/SimpletxDomWrite.java | 6 ++- .../dsbenchmark/txchain/TxchainBaDelete.java | 15 +++---- .../dsbenchmark/txchain/TxchainBaRead.java | 26 ++++-------- .../dsbenchmark/txchain/TxchainBaWrite.java | 11 +++-- .../dsbenchmark/txchain/TxchainDomDelete.java | 15 +++---- .../dsbenchmark/txchain/TxchainDomRead.java | 18 ++++----- .../dsbenchmark/txchain/TxchainDomWrite.java | 11 +++-- 19 files changed, 147 insertions(+), 158 deletions(-) diff --git a/benchmark/api/src/main/yang/dsbenchmark.yang b/benchmark/api/src/main/yang/dsbenchmark.yang index a543101463..7a8d727134 100644 --- a/benchmark/api/src/main/yang/dsbenchmark.yang +++ b/benchmark/api/src/main/yang/dsbenchmark.yang @@ -206,7 +206,14 @@ module dsbenchmark { leaf ntfOk { type uint32; description - "The number of successfully received data tree change notifications"; + "The number of successfully received data tree change + notifications"; + } + leaf dataChangeEventsOk { + type uint32; + description + "The number of data change events received in data tree + change notifications"; } } } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/BaListBuilder.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/BaListBuilder.java index 610c3b571b..9d5aa511a8 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/BaListBuilder.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/BaListBuilder.java @@ -19,8 +19,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchm import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.test.exec.outer.list.InnerListKey; public final class BaListBuilder { - static public List buildOuterList(int outerElements, int innerElements) { - List outerList = new ArrayList(outerElements); + public static List buildOuterList(int outerElements, int innerElements) { + List outerList = new ArrayList<>(outerElements); for (int j = 0; j < outerElements; j++) { outerList.add(new OuterListBuilder() .setId( j ) @@ -28,23 +28,20 @@ public final class BaListBuilder { .setKey(new OuterListKey( j )) .build()); } - return outerList; } - static private List buildInnerList( int index, int elements ) { - List innerList = new ArrayList( elements ); + private static List buildInnerList( int index, int elements ) { + List innerList = new ArrayList<>( elements ); final String itemStr = "Item-" + String.valueOf(index) + "-"; - for( int i = 0; i < elements; i++ ) { + for (int i = 0; i < elements; i++) { innerList.add(new InnerListBuilder() .setKey( new InnerListKey( i ) ) .setName(i) .setValue( itemStr + String.valueOf( i ) ) .build()); } - return innerList; } - } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java index 20024e455e..ef4d04d860 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java @@ -42,6 +42,7 @@ public abstract class DatastoreAbstractWriter { } public abstract void createList(); + public abstract void executeList(); public int getTxError() { @@ -56,12 +57,9 @@ public abstract class DatastoreAbstractWriter { final LogicalDatastoreType dsType; if (dataStore == DataStore.CONFIG) { dsType = LogicalDatastoreType.CONFIGURATION; - } - else if (dataStore == DataStore.OPERATIONAL) { + } else if (dataStore == DataStore.OPERATIONAL) { dsType = LogicalDatastoreType.OPERATIONAL; - } - else - { + } else { if (rn.nextBoolean() == true) { dsType = LogicalDatastoreType.OPERATIONAL; } else { diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DomListBuilder.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DomListBuilder.java index a250823705..bac6b2bba0 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DomListBuilder.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DomListBuilder.java @@ -28,8 +28,8 @@ public final class DomListBuilder { // Outer List Qname identifier for yang model's 'id' private static final org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id"); - static public List buildOuterList(int outerElements, int innerElements) { - List outerList = new ArrayList(outerElements); + public static List buildOuterList(int outerElements, int innerElements) { + List outerList = new ArrayList<>(outerElements); for (int j = 0; j < outerElements; j++) { outerList.add(ImmutableNodes.mapEntryBuilder() .withNodeIdentifier(new NodeIdentifierWithPredicates(OuterList.QNAME, OL_ID, j)) @@ -37,15 +37,14 @@ public final class DomListBuilder { .withChild(buildInnerList(j, innerElements)) .build()); } - return outerList; } - static private MapNode buildInnerList(int index, int elements ) { + private static MapNode buildInnerList(int index, int elements ) { CollectionNodeBuilder innerList = ImmutableNodes.mapNodeBuilder(InnerList.QNAME); final String itemStr = "Item-" + String.valueOf(index) + "-"; - for( int i = 0; i < elements; i++ ) { + for (int i = 0; i < elements; i++) { innerList.addChild(ImmutableNodes.mapEntryBuilder() .withNodeIdentifier(new NodeIdentifierWithPredicates(InnerList.QNAME, IL_NAME, i)) .withChild(ImmutableNodes.leafNode(IL_NAME, i)) @@ -54,6 +53,4 @@ public final class DomListBuilder { } return innerList.build(); } - - } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DsbenchmarkProvider.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DsbenchmarkProvider.java index f40efc3e2d..b46089d30f 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DsbenchmarkProvider.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DsbenchmarkProvider.java @@ -53,14 +53,17 @@ import com.google.common.util.concurrent.Futures; public class DsbenchmarkProvider implements BindingAwareProvider, DsbenchmarkService, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(DsbenchmarkProvider.class); - private static final InstanceIdentifier TEST_EXEC_IID = InstanceIdentifier.builder(TestExec.class).build(); - private static final InstanceIdentifier TEST_STATUS_IID = InstanceIdentifier.builder(TestStatus.class).build(); + private static final InstanceIdentifier TEST_EXEC_IID = + InstanceIdentifier.builder(TestExec.class).build(); + private static final InstanceIdentifier TEST_STATUS_IID = + InstanceIdentifier.builder(TestStatus.class).build(); private final AtomicReference execStatus = new AtomicReference( ExecStatus.Idle ); private final DsbenchmarkListenerProvider listenerProvider = new DsbenchmarkListenerProvider(); private final DOMDataBroker domDataBroker; // Async DOM Broker for use with all DOM operations - private final DataBroker bindingDataBroker; // Async Binding-Aware Broker for use in tx chains; initialized to ping-pong - // broker in default config (see default-config.xml and dsbenchmark-impl.yang) + private final DataBroker bindingDataBroker; // Async Binding-Aware Broker for use in tx chains; initialized to + // ping-pong broker in default config (see default-config.xml and + // dsbenchmark-impl.yang) private DataBroker dataBroker; // "Legacy" OSGI Data Broker for use in simple transactions private RpcRegistration dstReg; @@ -93,7 +96,7 @@ public class DsbenchmarkProvider implements BindingAwareProvider, DsbenchmarkSer public Future> cleanupStore() { cleanupTestStore(); LOG.info("Data Store cleaned up"); - return Futures.immediateFuture( RpcResultBuilder. success().build() ); + return Futures.immediateFuture( RpcResultBuilder.success().build()); } @Override @@ -133,7 +136,7 @@ public class DsbenchmarkProvider implements BindingAwareProvider, DsbenchmarkSer this.testsCompleted++; - } catch ( Exception e ) { + } catch (Exception e) { LOG.error( "Test error: {}", e.toString()); execStatus.set( ExecStatus.Idle ); return RpcResultBuilder.success(new StartTestOutputBuilder() @@ -146,6 +149,7 @@ public class DsbenchmarkProvider implements BindingAwareProvider, DsbenchmarkSer execStatus.set(ExecStatus.Idle); // Get the number of data change events and cleanup the data change listeners + long numDataChanges = listenerProvider.getDataChangeCount(); long numEvents = listenerProvider.getEventCountAndDestroyListeners(); StartTestOutput output = new StartTestOutputBuilder() @@ -154,6 +158,7 @@ public class DsbenchmarkProvider implements BindingAwareProvider, DsbenchmarkSer .setExecTime(execTime) .setTxOk((long)dsWriter.getTxOk()) .setNtfOk(numEvents) + .setDataChangeEventsOk(numDataChanges) .setTxError((long)dsWriter.getTxError()) .build(); @@ -192,7 +197,7 @@ public class DsbenchmarkProvider implements BindingAwareProvider, DsbenchmarkSer LOG.info("Failed to cleanup DataStore configtest data"); throw new IllegalStateException(e); } - + tx = dataBroker.newWriteOnlyTransaction(); tx.put(LogicalDatastoreType.OPERATIONAL, TEST_EXEC_IID, data); try { diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListener.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListener.java index 02d09f6f47..fcd2c1110b 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListener.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListener.java @@ -24,6 +24,7 @@ import org.slf4j.LoggerFactory; public class DsbenchmarkListener implements DataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(DsbenchmarkListener.class); private AtomicInteger numEvents = new AtomicInteger(0); + private AtomicInteger numDataChanges = new AtomicInteger(0); @Override public void onDataTreeChanged( @@ -33,7 +34,9 @@ public class DsbenchmarkListener implements DataTreeChangeListener { // from different threads, and we need to use atomic counters. final int eventNum = numEvents.incrementAndGet(); - if(LOG.isDebugEnabled()){ + numDataChanges.addAndGet(changes.size()); + + if (LOG.isDebugEnabled()) { logDataTreeChangeEvent(eventNum, changes); } } @@ -42,11 +45,12 @@ public class DsbenchmarkListener implements DataTreeChangeListener { Collection> changes) { LOG.debug("DsbenchmarkListener-onDataTreeChanged: Event {}", eventNum); - for(DataTreeModification change : changes) { + for (DataTreeModification change : changes) { final DataObjectModification rootNode = change.getRootNode(); final ModificationType modType = rootNode.getModificationType(); final PathArgument changeId = rootNode.getIdentifier(); - final Collection> modifications = rootNode.getModifiedChildren(); + final Collection> modifications = + rootNode.getModifiedChildren(); LOG.debug(" changeId {}, modType {}, mods: {}", changeId, modType, modifications.size()); @@ -60,4 +64,7 @@ public class DsbenchmarkListener implements DataTreeChangeListener { return numEvents.get(); } + public int getNumDataChanges() { + return numDataChanges.get(); + } } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListenerProvider.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListenerProvider.java index 7e0146f991..e2deb46374 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListenerProvider.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/listener/DsbenchmarkListenerProvider.java @@ -22,8 +22,9 @@ import org.slf4j.LoggerFactory; public class DsbenchmarkListenerProvider { private static final Logger LOG = LoggerFactory.getLogger(DsbenchmarkListenerProvider.class); - private static final InstanceIdentifier TEST_EXEC_IID = InstanceIdentifier.builder(TestExec.class).build(); - private final List> listeners = + private static final InstanceIdentifier TEST_EXEC_IID = + InstanceIdentifier.builder(TestExec.class).build(); + private final List> listeners = new ArrayList>(); private DataBroker dataBroker; @@ -33,7 +34,7 @@ public class DsbenchmarkListenerProvider { } public void createAndRegisterListeners(int numListeners) { - for(int i = 0; i < numListeners; i++) { + for (int i = 0; i < numListeners; i++) { DsbenchmarkListener listener = new DsbenchmarkListener(); listeners.add(dataBroker.registerDataTreeChangeListener( new DataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, TEST_EXEC_IID), listener)); @@ -44,16 +45,24 @@ public class DsbenchmarkListenerProvider { LOG.info("DsbenchmarkListenerProvider created {} listeneres", numListeners); } + public long getDataChangeCount() { + long dataChanges = 0; + + for (ListenerRegistration listenerRegistration : listeners) { + dataChanges += listenerRegistration.getInstance().getNumDataChanges(); + } + LOG.info("DsbenchmarkListenerProvider , total data changes {}", dataChanges); + return dataChanges; + } + public long getEventCountAndDestroyListeners() { long totalEvents = 0; for (ListenerRegistration listenerRegistration : listeners) { - totalEvents = totalEvents + listenerRegistration.getInstance().getNumEvents(); + totalEvents += listenerRegistration.getInstance().getNumEvents(); listenerRegistration.close(); } - listeners.clear(); - totalEvents = totalEvents / 2; // Each listener is registered 2x: adjust for event double-counting LOG.info("DsbenchmarkListenerProvider destroyed listeneres, total events {}", totalEvents); return totalEvents; } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaDelete.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaDelete.java index e42fef2f8e..4d67d4c90a 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaDelete.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaDelete.java @@ -51,32 +51,32 @@ public class SimpletxBaDelete extends DatastoreAbstractWriter { @Override public void executeList() { - WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); - long putCnt = 0; + WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); + long putCnt = 0; - for (long l = 0; l < outerListElem; l++) { - InstanceIdentifier iid = InstanceIdentifier.create(TestExec.class) + for (long l = 0; l < outerListElem; l++) { + InstanceIdentifier iid = InstanceIdentifier.create(TestExec.class) .child(OuterList.class, new OuterListKey((int)l)); - tx.delete(LogicalDatastoreType.CONFIGURATION, iid); - putCnt++; - if (putCnt == writesPerTx) { - try { - tx.submit().checkedGet(); - txOk++; - } catch (TransactionCommitFailedException e) { - LOG.error("Transaction failed: {}", e.toString()); - txError++; - } - tx = dataBroker.newWriteOnlyTransaction(); - putCnt = 0; - } - } - if (putCnt != 0) { + tx.delete(LogicalDatastoreType.CONFIGURATION, iid); + putCnt++; + if (putCnt == writesPerTx) { try { tx.submit().checkedGet(); + txOk++; } catch (TransactionCommitFailedException e) { - LOG.error("Transaction failed: {}", e.toString()); + LOG.error("Transaction failed: {}", e); + txError++; } + tx = dataBroker.newWriteOnlyTransaction(); + putCnt = 0; + } + } + if (putCnt != 0) { + try { + tx.submit().checkedGet(); + } catch (TransactionCommitFailedException e) { + LOG.error("Transaction failed: {}", e); } + } } } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaRead.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaRead.java index 0281396d70..8f8ecaf94e 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaRead.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaRead.java @@ -32,7 +32,7 @@ public class SimpletxBaRead extends DatastoreAbstractWriter { private static final Logger LOG = LoggerFactory.getLogger(SimpletxBaRead.class); private DataBroker dataBroker; - public SimpletxBaRead(DataBroker dataBroker, int outerListElem, int innerListElem, + public SimpletxBaRead(DataBroker dataBroker, int outerListElem, int innerListElem, long writesPerTx, DataStore dataStore) { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.dataBroker = dataBroker; @@ -64,7 +64,8 @@ public class SimpletxBaRead extends DatastoreAbstractWriter { InstanceIdentifier iid = InstanceIdentifier.create(TestExec.class) .child(OuterList.class, new OuterListKey((int)l)); Optional optionalDataObject; - CheckedFuture, ReadFailedException> submitFuture = tx.read(LogicalDatastoreType.CONFIGURATION, iid); + CheckedFuture, ReadFailedException> submitFuture = + tx.read(LogicalDatastoreType.CONFIGURATION, iid); try { optionalDataObject = submitFuture.checkedGet(); if (optionalDataObject != null && optionalDataObject.isPresent()) { @@ -72,19 +73,16 @@ public class SimpletxBaRead extends DatastoreAbstractWriter { String[] objectsArray = new String[outerList.getInnerList().size()]; - //LOG.info("innerList element: " + objectsArray ); for (InnerList innerList : outerList.getInnerList()) { if (objectsArray[innerList.getName()] != null) { - LOG.error("innerList: DUPLICATE name: {}, value: {}", innerList.getName(), innerList.getValue()); + LOG.error("innerList: DUPLICATE name: {}, value: {}", innerList.getName(), + innerList.getValue()); } objectsArray[innerList.getName()] = innerList.getValue(); - // LOG.info("innerList: name: {}, value: {}", innerList.getName(), innerList.getValue()); } - boolean foundAll = true; for (int i = 0; i < outerList.getInnerList().size(); i++) { String itemStr = objectsArray[i]; if (!itemStr.contentEquals("Item-" + String.valueOf(l) + "-" + String.valueOf(i))) { - foundAll = false; LOG.error("innerList: name: {}, value: {}", i, itemStr); break; } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaWrite.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaWrite.java index f0a0ba895a..57dd810f00 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaWrite.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxBaWrite.java @@ -36,10 +36,10 @@ public class SimpletxBaWrite extends DatastoreAbstractWriter { LOG.info("Created SimpletxBaWrite"); } - @Override - public void createList() { - list = BaListBuilder.buildOuterList(this.outerListElem, this.innerListElem); - } + @Override + public void createList() { + list = BaListBuilder.buildOuterList(this.outerListElem, this.innerListElem); + } @Override public void executeList() { @@ -64,7 +64,7 @@ public class SimpletxBaWrite extends DatastoreAbstractWriter { tx.submit().checkedGet(); txOk++; } catch (TransactionCommitFailedException e) { - LOG.error("Transaction failed: {}", e.toString()); + LOG.error("Transaction failed: {}", e); txError++; } tx = dataBroker.newWriteOnlyTransaction(); @@ -78,7 +78,7 @@ public class SimpletxBaWrite extends DatastoreAbstractWriter { try { tx.submit().checkedGet(); } catch (TransactionCommitFailedException e) { - LOG.error("Transaction failed: {}", e.toString()); + LOG.error("Transaction failed: {}", e); } } } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomDelete.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomDelete.java index 8f748533df..2794fb4f1f 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomDelete.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomDelete.java @@ -31,7 +31,7 @@ public class SimpletxDomDelete extends DatastoreAbstractWriter { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.domDataBroker = domDataBroker; LOG.info("Created simpleTxDomDelete"); - } + } @Override public void createList() { @@ -52,14 +52,14 @@ public class SimpletxDomDelete extends DatastoreAbstractWriter { public void executeList() { long writeCnt = 0; - org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id"); + org.opendaylight.yangtools.yang.common.QName olId = QName.create(OuterList.QNAME, "id"); DOMDataWriteTransaction tx = domDataBroker.newWriteOnlyTransaction(); for (int l = 0; l < outerListElem; l++) { YangInstanceIdentifier yid = YangInstanceIdentifier.builder() .node(TestExec.QNAME) .node(OuterList.QNAME) - .nodeWithKey(OuterList.QNAME, OL_ID, l) + .nodeWithKey(OuterList.QNAME, olId, l) .build(); tx.delete(LogicalDatastoreType.CONFIGURATION, yid); @@ -69,7 +69,7 @@ public class SimpletxDomDelete extends DatastoreAbstractWriter { tx.submit().checkedGet(); txOk++; } catch (TransactionCommitFailedException e) { - LOG.error("Transaction failed: {}", e.toString()); + LOG.error("Transaction failed: {}", e); txError++; } tx = domDataBroker.newWriteOnlyTransaction(); @@ -80,7 +80,7 @@ public class SimpletxDomDelete extends DatastoreAbstractWriter { try { tx.submit().checkedGet(); } catch (TransactionCommitFailedException e) { - LOG.error("Transaction failed: {}", e.toString()); + LOG.error("Transaction failed: {}", e); } } } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomRead.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomRead.java index d644b1ede8..74f9d8e2a0 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomRead.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomRead.java @@ -12,10 +12,10 @@ package org.opendaylight.dsbenchmark.simpletx; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; import org.opendaylight.dsbenchmark.DatastoreAbstractWriter; 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; @@ -57,7 +57,7 @@ public class SimpletxDomRead extends DatastoreAbstractWriter { @Override public void executeList() { - org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id"); + org.opendaylight.yangtools.yang.common.QName olId = QName.create(OuterList.QNAME, "id"); DOMDataReadOnlyTransaction tx = domDataBroker.newReadOnlyTransaction(); for (long l = 0; l < outerListElem; l++) { @@ -66,41 +66,18 @@ public class SimpletxDomRead extends DatastoreAbstractWriter { YangInstanceIdentifier yid = YangInstanceIdentifier.builder() .node(TestExec.QNAME) .node(OuterList.QNAME) - .nodeWithKey(OuterList.QNAME, OL_ID, l) + .nodeWithKey(OuterList.QNAME, olId, l) .build(); Optional> optionalDataObject; - CheckedFuture>, ReadFailedException> submitFuture = tx.read(LogicalDatastoreType.CONFIGURATION, yid); + CheckedFuture>, ReadFailedException> submitFuture = + tx.read(LogicalDatastoreType.CONFIGURATION, yid); try { optionalDataObject = submitFuture.checkedGet(); if (optionalDataObject != null && optionalDataObject.isPresent()) { ret = optionalDataObject.get(); LOG.info("/n" + String.valueOf(ret)); txOk++; - } - /*if (optionalDataObject != null && optionalDataObject.isPresent()) { - ret = optionalDataObject.get(); - - String[] objectsArray = new String[ret.getInnerList().size()]; - - //LOG.info("innerList element: " + objectsArray ); - for (InnerList innerList : ret.getInnerList()) { - if (objectsArray[innerList.getName()] != null) { - LOG.error("innerList: DUPLICATE name: {}, value: {}", innerList.getName(), innerList.getValue()); - } - objectsArray[innerList.getName()] = innerList.getValue(); - // LOG.info("innerList: name: {}, value: {}", innerList.getName(), innerList.getValue()); - } - boolean foundAll = true; - for (int i = 0; i < ret.getInnerList().size(); i++) { - String itemStr = objectsArray[i]; - if (!itemStr.contentEquals("Item-" + String.valueOf(l) + "-" + String.valueOf(i))) { - foundAll = false; - LOG.error("innerList: name: {}, value: {}", i, itemStr); - break; - } - } - txOk++; - }*/ else { + } else { txError++; LOG.info("In the else part"); } diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomWrite.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomWrite.java index 6ab69908be..572f4f7aae 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomWrite.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomWrite.java @@ -49,9 +49,11 @@ public class SimpletxDomWrite extends DatastoreAbstractWriter { LogicalDatastoreType dsType = getDataStoreType(); long writeCnt = 0; - YangInstanceIdentifier pid = YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); + YangInstanceIdentifier pid = + YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); for (MapEntryNode element : this.list) { - YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, element.getIdentifier().getKeyValues())); + YangInstanceIdentifier yid = + pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, element.getIdentifier().getKeyValues())); if (oper == StartTestInput.Operation.PUT) { tx.put(dsType, yid, element); diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaDelete.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaDelete.java index bbdb0f56bf..b4f6769fa3 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaDelete.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaDelete.java @@ -8,6 +8,9 @@ package org.opendaylight.dsbenchmark.txchain; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; + import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; @@ -26,14 +29,12 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; - -public class TxchainBaDelete extends DatastoreAbstractWriter implements TransactionChainListener{ +public class TxchainBaDelete extends DatastoreAbstractWriter implements TransactionChainListener { private static final Logger LOG = LoggerFactory.getLogger(TxchainBaDelete.class); private DataBroker bindingDataBroker; - public TxchainBaDelete(DataBroker bindingDataBroker, int outerListElem, int innerListElem, long writesPerTx, DataStore dataStore) { + public TxchainBaDelete(DataBroker bindingDataBroker, int outerListElem, int innerListElem, + long writesPerTx, DataStore dataStore) { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.bindingDataBroker = bindingDataBroker; LOG.info("Created TxchainBaDelete"); @@ -77,6 +78,7 @@ public class TxchainBaDelete extends DatastoreAbstractWriter implements Transact public void onSuccess(final Void result) { txOk++; } + @Override public void onFailure(final Throwable t) { LOG.error("Transaction failed, {}", t); @@ -100,8 +102,7 @@ public class TxchainBaDelete extends DatastoreAbstractWriter implements Transact } try { chain.close(); - } - catch (IllegalStateException e){ + } catch (IllegalStateException e) { LOG.error("Transaction close failed,", e); } LOG.info("Transactions: submitted {}, completed {}", txSubmitted, (txOk + txError)); diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaRead.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaRead.java index 37598d52e9..cb57f377a2 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaRead.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaRead.java @@ -11,7 +11,6 @@ package org.opendaylight.dsbenchmark.txchain; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; -import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.ReadTransaction; import org.opendaylight.controller.md.sal.common.api.data.*; @@ -26,11 +25,12 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class TxchainBaRead extends DatastoreAbstractWriter implements TransactionChainListener{ +public class TxchainBaRead extends DatastoreAbstractWriter implements TransactionChainListener { private static final Logger LOG = LoggerFactory.getLogger(TxchainBaRead.class); private DataBroker bindingDataBroker; - public TxchainBaRead(DataBroker bindingDataBroker, int outerListElem, int innerListElem, long writesPerTx, DataStore dataStore) { + public TxchainBaRead(DataBroker bindingDataBroker, int outerListElem, int innerListElem, + long writesPerTx, DataStore dataStore) { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.bindingDataBroker = bindingDataBroker; LOG.info("Created TxchainBaRead"); @@ -54,8 +54,6 @@ public class TxchainBaRead extends DatastoreAbstractWriter implements Transactio @Override public void executeList() { - - BindingTransactionChain chain = bindingDataBroker.createTransactionChain(this); ReadTransaction tx = bindingDataBroker.newReadOnlyTransaction(); for (long l = 0; l < outerListElem; l++) { @@ -64,39 +62,31 @@ public class TxchainBaRead extends DatastoreAbstractWriter implements Transactio InstanceIdentifier iid = InstanceIdentifier.create(TestExec.class) .child(OuterList.class, new OuterListKey((int) l)); Optional optionalDataObject; - CheckedFuture, ReadFailedException> submitFuture = tx.read(LogicalDatastoreType.CONFIGURATION, iid); + CheckedFuture, ReadFailedException> submitFuture = + tx.read(LogicalDatastoreType.CONFIGURATION, iid); try { optionalDataObject = submitFuture.checkedGet(); - /*if (optionalDataObject != null && optionalDataObject.isPresent()) { - ret = optionalDataObject.get(); - txOk++; - }*/ if (optionalDataObject != null && optionalDataObject.isPresent()) { outerList = optionalDataObject.get(); String[] objectsArray = new String[outerList.getInnerList().size()]; - - //LOG.info("innerList element: " + objectsArray ); for (InnerList innerList : outerList.getInnerList()) { if (objectsArray[innerList.getName()] != null) { - LOG.error("innerList: DUPLICATE name: {}, value: {}", innerList.getName(), innerList.getValue()); + LOG.error("innerList: DUPLICATE name: {}, value: {}", innerList.getName(), + innerList.getValue()); } objectsArray[innerList.getName()] = innerList.getValue(); - // LOG.info("innerList: name: {}, value: {}", innerList.getName(), innerList.getValue()); } - boolean foundAll = true; for (int i = 0; i < outerList.getInnerList().size(); i++) { String itemStr = objectsArray[i]; if (!itemStr.contentEquals("Item-" + String.valueOf(l) + "-" + String.valueOf(i))) { - foundAll = false; LOG.error("innerList: name: {}, value: {}", i, itemStr); break; } } txOk++; - } - else { + } else { txError++; } } catch (ReadFailedException e) { diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaWrite.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaWrite.java index 64efbd9af7..962c95037f 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaWrite.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainBaWrite.java @@ -8,8 +8,10 @@ package org.opendaylight.dsbenchmark.txchain; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; + import java.util.List; -import java.util.Random; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; @@ -30,9 +32,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; - public class TxchainBaWrite extends DatastoreAbstractWriter implements TransactionChainListener { private static final Logger LOG = LoggerFactory.getLogger(TxchainBaWrite.class); private final DataBroker bindingDataBroker; @@ -78,6 +77,7 @@ public class TxchainBaWrite extends DatastoreAbstractWriter implements Transacti public void onSuccess(final Void result) { txOk++; } + @Override public void onFailure(final Throwable t) { LOG.error("Transaction failed, {}", t); @@ -103,8 +103,7 @@ public class TxchainBaWrite extends DatastoreAbstractWriter implements Transacti } try { chain.close(); - } - catch (IllegalStateException e){ + } catch (IllegalStateException e) { LOG.error("Transaction close failed,", e); } LOG.info("Transactions: submitted {}, completed {}", txSubmitted, (txOk + txError)); diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomDelete.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomDelete.java index f1f4e441dc..63e9934bd9 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomDelete.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomDelete.java @@ -30,11 +30,11 @@ import org.slf4j.LoggerFactory; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; -public class TxchainDomDelete extends DatastoreAbstractWriter implements TransactionChainListener{ +public class TxchainDomDelete extends DatastoreAbstractWriter implements TransactionChainListener { private static final Logger LOG = LoggerFactory.getLogger(TxchainBaWrite.class); private final DOMDataBroker domDataBroker; - public TxchainDomDelete(DOMDataBroker domDataBroker, int outerListElem, int innerListElem, + public TxchainDomDelete(DOMDataBroker domDataBroker, int outerListElem, int innerListElem, long writesPerTx, DataStore dataStore) { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.domDataBroker = domDataBroker; @@ -62,13 +62,14 @@ public class TxchainDomDelete extends DatastoreAbstractWriter implements Transac int txSubmitted = 0; int writeCnt = 0; - org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id"); + org.opendaylight.yangtools.yang.common.QName olId = QName.create(OuterList.QNAME, "id"); DOMTransactionChain chain = domDataBroker.createTransactionChain(this); DOMDataWriteTransaction tx = chain.newWriteOnlyTransaction(); - YangInstanceIdentifier pid = YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); + YangInstanceIdentifier pid = + YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); for (int l = 0; l < outerListElem; l++) { - YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, OL_ID, l)); + YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, olId, l)); tx.delete(LogicalDatastoreType.CONFIGURATION, yid); writeCnt++; @@ -80,6 +81,7 @@ public class TxchainDomDelete extends DatastoreAbstractWriter implements Transac public void onSuccess(final Void result) { txOk++; } + @Override public void onFailure(final Throwable t) { LOG.error("Transaction failed, {}", t); @@ -104,8 +106,7 @@ public class TxchainDomDelete extends DatastoreAbstractWriter implements Transac } try { chain.close(); - } - catch (IllegalStateException e){ + } catch (IllegalStateException e) { LOG.error("Transaction close failed,", e); } LOG.info("Transactions: submitted {}, completed {}", txSubmitted, (txOk + txError)); diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomRead.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomRead.java index 09d2aacdb1..6a910f33a9 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomRead.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomRead.java @@ -14,7 +14,6 @@ import com.google.common.util.concurrent.CheckedFuture; import org.opendaylight.controller.md.sal.common.api.data.*; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; import org.opendaylight.dsbenchmark.DatastoreAbstractWriter; 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; @@ -27,11 +26,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class TxchainDomRead extends DatastoreAbstractWriter implements TransactionChainListener{ +public class TxchainDomRead extends DatastoreAbstractWriter implements TransactionChainListener { private static final Logger LOG = LoggerFactory.getLogger(TxchainDomRead.class); private final DOMDataBroker domDataBroker; - public TxchainDomRead(DOMDataBroker domDataBroker, int outerListElem, int innerListElem, + public TxchainDomRead(DOMDataBroker domDataBroker, int outerListElem, int innerListElem, long writesPerTx, DataStore dataStore) { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.domDataBroker = domDataBroker; @@ -57,20 +56,19 @@ public class TxchainDomRead extends DatastoreAbstractWriter implements Transacti @Override public void executeList() { - org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id"); - DOMTransactionChain chain = domDataBroker.createTransactionChain(this); + org.opendaylight.yangtools.yang.common.QName olId = QName.create(OuterList.QNAME, "id"); DOMDataReadOnlyTransaction tx = domDataBroker.newReadOnlyTransaction(); - YangInstanceIdentifier pid = YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); + YangInstanceIdentifier pid = + YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); for (int l = 0; l < outerListElem; l++) { - NormalizedNode ret; - YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, OL_ID, l)); + YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, olId, l)); Optional> optionalDataObject; - CheckedFuture>, ReadFailedException> submitFuture = tx.read(LogicalDatastoreType.CONFIGURATION, yid); + CheckedFuture>, ReadFailedException> submitFuture = + tx.read(LogicalDatastoreType.CONFIGURATION, yid); try { optionalDataObject = submitFuture.checkedGet(); if (optionalDataObject != null && optionalDataObject.isPresent()) { - ret = optionalDataObject.get(); txOk++; } } catch (ReadFailedException e) { 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 7e8c6aab60..f422d43349 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 @@ -59,9 +59,11 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact LogicalDatastoreType dsType = getDataStoreType(); DOMDataWriteTransaction tx = chain.newWriteOnlyTransaction(); - YangInstanceIdentifier pid = YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); + YangInstanceIdentifier pid = + YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); for (MapEntryNode element : this.list) { - YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, element.getIdentifier().getKeyValues())); + YangInstanceIdentifier yid = + pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, element.getIdentifier().getKeyValues())); if (oper == StartTestInput.Operation.PUT) { tx.put(dsType, yid, element); @@ -79,6 +81,7 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact public void onSuccess(final Void result) { txOk++; } + @Override public void onFailure(final Throwable t) { LOG.error("Transaction failed, {}", t); @@ -105,10 +108,10 @@ public class TxchainDomWrite extends DatastoreAbstractWriter implements Transact } try { chain.close(); - } - catch (IllegalStateException e){ + } catch (IllegalStateException e) { LOG.error("Transaction close failed,", e); } + LOG.info("Transactions: submitted {}, completed {}", txSubmitted, (txOk + txError)); } -- 2.36.6