bug 7599 avoid unnecessary mdsal reads 51/61551/10
authorK.V Suneelu Verma <k.v.suneelu.verma@ericsson.com>
Fri, 11 Aug 2017 10:44:08 +0000 (16:14 +0530)
committerK.V Suneelu Verma <k.v.suneelu.verma@ericsson.com>
Tue, 24 Oct 2017 13:35:04 +0000 (19:05 +0530)
avoid the un necessary reads.
skip monitoring version column

Change-Id: I82e50b973a93c57eb65dd34c6dd624c8e47e2344
Signed-off-by: K.V Suneelu Verma <k.v.suneelu.verma@ericsson.com>
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsLocalUpdateCommand.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsRemoteUpdateCommand.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchUpdateCommand.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelUpdateCommand.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsLocalUpdateCommand.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsRemoteUpdateCommand.java

index e5ee9f71682cba71fc6cba74123a5ac8d21d6cf1..b2c07d08504be7afaad19ed95c22d2bc271662b2 100644 (file)
@@ -66,13 +66,8 @@ public class HwvtepMcastMacsLocalUpdateCommand extends AbstractTransactionComman
 
     private void updateData(ReadWriteTransaction transaction, McastMacsLocal mMacLocal) {
         final InstanceIdentifier<Node> connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier();
-        Optional<Node> connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId);
-        if (connection.isPresent()) {
-            // Update the connection node to let it know it manages this MCastMacsLocal
-            Node connectionNode = buildConnectionNode(mMacLocal);
-            transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
-            // TODO: Delete entries that are no longer needed
-        }
+        Node connectionNode = buildConnectionNode(mMacLocal);
+        transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
     }
 
     private Node buildConnectionNode(McastMacsLocal mMacLocal) {
index 6686e175564733ce5013ac58bdc831fb99fadd0e..fa59d830775a972432666eccc4b02132e407c525 100644 (file)
@@ -69,16 +69,11 @@ public class HwvtepMcastMacsRemoteUpdateCommand extends AbstractTransactionComma
 
     private void updateData(ReadWriteTransaction transaction, McastMacsRemote mMacRemote) {
         final InstanceIdentifier<Node> connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier();
-        Optional<Node> connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId);
-        if (connection.isPresent()) {
-            // Update the connection node to let it know it manages this MCastMacsRemote
-            Node connectionNode = buildConnectionNode(mMacRemote);
-            transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
-            InstanceIdentifier<RemoteMcastMacs> macIid = getMacIid(connectionIId, connectionNode);
-            getOvsdbConnectionInstance().getDeviceInfo().updateDeviceOperData(RemoteMcastMacs.class,
-                    macIid, mMacRemote.getUuid(), mMacRemote);
-            // TODO: Delete entries that are no longer needed
-        }
+        Node connectionNode = buildConnectionNode(mMacRemote);
+        transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
+        InstanceIdentifier<RemoteMcastMacs> macIid = getMacIid(connectionIId, connectionNode);
+        getOvsdbConnectionInstance().getDeviceInfo().updateDeviceOperData(RemoteMcastMacs.class,
+                macIid, mMacRemote.getUuid(), mMacRemote);
     }
 
     InstanceIdentifier<RemoteMcastMacs> getMacIid(InstanceIdentifier<Node> connectionIId, Node connectionNode) {
index 9418f4181ab86dcded13bfce12712417c047fe78..28d0aded320b41d2afebd4eeb809ddb987142be7 100644 (file)
@@ -85,6 +85,7 @@ public class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransactionComman
 
     private void updatePhysicalSwitch(ReadWriteTransaction transaction, UUID uuid, PhysicalSwitch pSwitch) {
         final InstanceIdentifier<Node> connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier();
+        //TODO remove this read
         Optional<Node> connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId);
         if (connection.isPresent()) {
             LOG.debug("Connection {} is present", connection);
@@ -102,6 +103,7 @@ public class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransactionComman
             updateTunnelIps(pSwitch, oldPSwitch, transaction);
 
             getOvsdbConnectionInstance().getDeviceInfo().putPhysicalSwitch(pSwitch.getUuid(), pSwitch);
+            getDeviceInfo().updateDeviceOperData(Node.class, psIid, pSwitch.getUuid(), pSwitch);
             // TODO: Delete entries that are no longer needed
             // TODO: Deletion of tunnels
             // TODO: Deletion of Tunnel BFD config and params
index ae70e34f4c3fc27b2932854550bc009b6b0fd6b0..0c07bbc212a5004d1c71302719a0186f269c4d8b 100644 (file)
@@ -77,6 +77,7 @@ public class HwvtepTunnelUpdateCommand extends AbstractTransactionCommand {
         Preconditions.checkNotNull(tunnel.getLocalColumn().getData());
         Preconditions.checkNotNull(tunnel.getRemoteColumn().getData());
         final InstanceIdentifier<Node> connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier();
+        //TODO remove these reads
         Optional<Node> connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId);
         PhysicalSwitch pSwitch =
                         getOvsdbConnectionInstance().getDeviceInfo().getPhysicalSwitchForTunnel(tunnel.getUuid());
index ae8cd0a69e0ff15a4e5a334544ffdb9e7227b608..d21ac622449d62d3f3d93e4cc86e8515d692ea00 100644 (file)
@@ -47,8 +47,8 @@ import org.slf4j.LoggerFactory;
 public class HwvtepUcastMacsLocalUpdateCommand extends AbstractTransactionCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(HwvtepUcastMacsLocalUpdateCommand.class);
-    private Map<UUID, UcastMacsLocal> updatedUMacsLocalRows;
-    private Map<UUID, PhysicalLocator> updatedPLocRows;
+    private final Map<UUID, UcastMacsLocal> updatedUMacsLocalRows;
+    private final Map<UUID, PhysicalLocator> updatedPLocRows;
 
     public HwvtepUcastMacsLocalUpdateCommand(HwvtepConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) {
         super(key, updates, dbSchema);
@@ -58,18 +58,15 @@ public class HwvtepUcastMacsLocalUpdateCommand extends AbstractTransactionComman
 
     @Override
     public void execute(ReadWriteTransaction transaction) {
-        updateData(transaction, updatedUMacsLocalRows.values());
+        if (updatedUMacsLocalRows != null && !updatedUMacsLocalRows.isEmpty()) {
+            updateData(transaction, updatedUMacsLocalRows.values());
+        }
     }
 
     private void updateData(ReadWriteTransaction transaction, Collection<UcastMacsLocal> ucml) {
         final InstanceIdentifier<Node> connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier();
-        Optional<Node> connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId);
-        if (connection.isPresent()) {
-            // Update the connection node to let it know it manages this UCastMacsLocal
-            Node connectionNode = buildConnectionNode(ucml);
-            transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
-            // TODO: Delete entries that are no longer needed
-        }
+        Node connectionNode = buildConnectionNode(ucml);
+        transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
     }
 
     private Node buildConnectionNode(final Collection<UcastMacsLocal> ucml) {
index d6c5ed46961ad165e1b595cb0458899f09369a78..b5886265ec411c020d53d841337eaf98a0395cb2 100644 (file)
@@ -55,17 +55,15 @@ public class HwvtepUcastMacsRemoteUpdateCommand extends AbstractTransactionComma
 
     @Override
     public void execute(ReadWriteTransaction transaction) {
-        updateUcastMacsRemote(transaction, updatedUMacsRemoteRows.values());
+        if (updatedUMacsRemoteRows != null && !updatedUMacsRemoteRows.isEmpty()) {
+            updateUcastMacsRemote(transaction, updatedUMacsRemoteRows.values());
+        }
     }
 
     private void updateUcastMacsRemote(ReadWriteTransaction transaction, Collection<UcastMacsRemote> ucastMacsRemote) {
         final InstanceIdentifier<Node> connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier();
-        Optional<Node> connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId);
-        if (connection.isPresent()) {
-            Node connectionNode = buildConnectionNode(ucastMacsRemote);
-            transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
-            //TODO: Handle any deletes
-        }
+        Node connectionNode = buildConnectionNode(ucastMacsRemote);
+        transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode);
     }
 
     private Node buildConnectionNode(final Collection<UcastMacsRemote> uMacRemotes) {