X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=benchmark%2Fdsbenchmark%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fdsbenchmark%2Fsimpletx%2FSimpletxDomRead.java;h=30812898c5ea72e343c74fb9afd45c1248011f81;hp=d644b1ede891b5d23a8e5befa750da04f9cc3872;hb=7ad6a27e9b98861d9286977320198375a44a38f1;hpb=0a786119ca348a347b8a11625804bc1d2e635a49 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..30812898c5 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 @@ -5,44 +5,41 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - 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 com.google.common.util.concurrent.FluentFuture; +import java.util.Optional; +import java.util.concurrent.ExecutionException; import org.opendaylight.dsbenchmark.DatastoreAbstractWriter; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; 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.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - public class SimpletxDomRead extends DatastoreAbstractWriter { private static final Logger LOG = LoggerFactory.getLogger(SimpletxDomRead.class); private final DOMDataBroker domDataBroker; - public SimpletxDomRead(DOMDataBroker domDataBroker, int outerListElem, - int innerListElem, long writesPerTx, DataStore dataStore) { + public SimpletxDomRead(final DOMDataBroker domDataBroker, final int outerListElem, + final int innerListElem, final long writesPerTx, final DataStore dataStore) { super(StartTestInput.Operation.DELETE, outerListElem, innerListElem, writesPerTx, dataStore); this.domDataBroker = domDataBroker; - LOG.info("Created simpleTxDomRead"); + LOG.debug("Created simpleTxDomRead"); } @Override public void createList() { - LOG.info("SimpletxDomRead: creating data in the data store"); + LOG.debug("SimpletxDomRead: creating data in the data store"); // Dump the whole list into the data store in a single transaction // with PUTs on the transaction SimpletxDomWrite dd = new SimpletxDomWrite(domDataBroker, @@ -57,58 +54,30 @@ public class SimpletxDomRead extends DatastoreAbstractWriter { @Override public void executeList() { - org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id"); - DOMDataReadOnlyTransaction tx = domDataBroker.newReadOnlyTransaction(); - - for (long l = 0; l < outerListElem; l++) { - NormalizedNode ret = null; + final LogicalDatastoreType dsType = getDataStoreType(); + final org.opendaylight.yangtools.yang.common.QName olId = QName.create(OuterList.QNAME, "id"); + final YangInstanceIdentifier pid = + YangInstanceIdentifier.builder().node(TestExec.QNAME).node(OuterList.QNAME).build(); - YangInstanceIdentifier yid = YangInstanceIdentifier.builder() - .node(TestExec.QNAME) - .node(OuterList.QNAME) - .nodeWithKey(OuterList.QNAME, OL_ID, l) - .build(); - Optional> optionalDataObject; - 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()); + try (DOMDataTreeReadTransaction tx = domDataBroker.newReadOnlyTransaction()) { + for (int l = 0; l < outerListElem; l++) { + YangInstanceIdentifier yid = pid.node(new NodeIdentifierWithPredicates(OuterList.QNAME, olId, l)); + FluentFuture>> submitFuture = tx.read(dsType, yid); + try { + Optional> optionalDataObject = submitFuture.get(); + if (optionalDataObject != null && optionalDataObject.isPresent()) { + NormalizedNode ret = optionalDataObject.get(); + LOG.trace("optionalDataObject is {}", ret); + txOk++; + } else { + txError++; + LOG.warn("optionalDataObject is either null or .isPresent is false"); } - 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 { + } catch (final InterruptedException | ExecutionException e) { + LOG.warn("failed to ....", e); txError++; - LOG.info("In the else part"); } - } catch (ReadFailedException e) { - LOG.warn("failed to ....", e); - txError++; } } } - }