diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index e78e6d2..be114c4 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -216,6 +216,10 @@
     private ScheduledExecutorService backgroundRoleChecker;
     private static final int ROLE_TIMEOUT_SECONDS = 10;
 
+    // FIXME join this map with roleToAcknowledge and fix the back to back event issue here
+    private final Map<DeviceId, MastershipRole> lastAcknowledgedRole =
+            Maps.newConcurrentMap();
+
     @Activate
     public void activate() {
         portAnnotationOp = new PortAnnotationOperator(networkConfigService);
@@ -566,11 +570,11 @@
             } else if (isReachable) {
                 // If this node is the master, ensure the device is marked online.
                 if (myRole == MASTER && canMarkOnline(device)) {
-                    log.info("Can mark online {}", deviceId);
+                    log.debug("Can mark online {}", deviceId);
                     post(store.markOnline(deviceId));
                 }
 
-                log.info("{} is reachable - reasserting the role", deviceId);
+                log.debug("{} is reachable - reasserting the role", deviceId);
 
                 // Device is still reachable. It is useful for some protocols
                 // to reassert the role. Note: NONE triggers request to MastershipService
@@ -913,8 +917,13 @@
 
             if (Objects.equals(requested, response)) {
                 if (Objects.equals(requested, expected)) {
-                    // Stop the timer
-                    log.info("Role has been acknowledged for device {}", deviceId);
+                    if (log.isDebugEnabled()) {
+                        log.debug("Role has been acknowledged for device {}", deviceId);
+                    } else if (!requested.equals(lastAcknowledgedRole.get(deviceId))) {
+                        log.info("Role has been acknowledged for device {}", deviceId);
+                    }
+                    // Update the last known role and stop the timer
+                    lastAcknowledgedRole.put(deviceId, requested);
                     roleToAcknowledge.remove(deviceId);
                 } else {
                     log.warn("Role mismatch on {}. Set to {}, but store demands {}",
@@ -1174,6 +1183,7 @@
                 // When device is administratively removed, force disconnect.
                 DeviceId deviceId = event.subject().id();
                 deviceLocalStatus.remove(deviceId);
+                lastAcknowledgedRole.remove(deviceId);
 
                 DeviceProvider provider = getProvider(deviceId);
                 if (provider != null) {
