diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapCommands.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapCommands.java
index 2d560c4..231915d 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapCommands.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapCommands.java
@@ -243,7 +243,7 @@
 
         @Override
         public CompactionMode compaction() {
-            return value == null ? CompactionMode.FULL : CompactionMode.QUORUM;
+            return value == null ? CompactionMode.TOMBSTONE : CompactionMode.QUORUM;
         }
 
         @Override
@@ -335,7 +335,7 @@
             extends TreeCommand<MapEntryUpdateResult.Status> {
         @Override
         public CompactionMode compaction() {
-            return CompactionMode.FULL;
+            return CompactionMode.TOMBSTONE;
         }
     }
 
@@ -354,6 +354,11 @@
         }
 
         @Override
+        public CompactionMode compaction() {
+            return CompactionMode.QUORUM;
+        }
+
+        @Override
         public String toString() {
             return MoreObjects.toStringHelper(getClass())
                     .toString();
@@ -376,6 +381,11 @@
         }
 
         @Override
+        public CompactionMode compaction() {
+            return CompactionMode.TOMBSTONE;
+        }
+
+        @Override
         public String toString() {
             return MoreObjects.toStringHelper(getClass())
                     .toString();
