IGNITE-12601 DistributedMetaStoragePersistentTest.testUnstableTopology is flaky - Fixes #7334.

Signed-off-by: Ivan Rakov <ivan.glukos@gmail.com>
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java
index 670992c..d56500a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/metastorage/MetaStorage.java
@@ -418,17 +418,8 @@
     @Override public void write(@NotNull String key, @NotNull Serializable val) throws IgniteCheckedException {
         assert val != null;
 
-        byte[] data = marshaller.marshal(val);
-
-        final WALPointer ptr;
-
-        synchronized (this) {
-            ptr = wal.log(new MetastoreDataRecord(key, data));
-
-            writeRaw(key, data);
-        }
-
-        wal.flush(ptr, false);
+        if (!readOnly)
+            writeRaw(key, marshaller.marshal(val));
     }
 
     /** {@inheritDoc} */
@@ -439,7 +430,11 @@
     /** {@inheritDoc} */
     @Override public void writeRaw(String key, byte[] data) throws IgniteCheckedException {
         if (!readOnly) {
+            WALPointer ptr;
+
             synchronized (this) {
+                ptr = wal.log(new MetastoreDataRecord(key, data));
+
                 MetastorageDataRow oldRow = tree.findOne(new MetastorageDataRow(key, null));
 
                 if (oldRow != null) {
@@ -451,6 +446,8 @@
                 tree.rowStore().addRow(row);
                 tree.put(row);
             }
+
+            wal.flush(ptr, false);
         }
     }
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java
index 1c333b6..816ff9c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metastorage/persistence/DmsDataWriterWorker.java
@@ -268,6 +268,8 @@
 
         metastorage.iterate(COMMON_KEY_PREFIX, (key, val) -> allKeys.add(key), false);
 
+        allKeys.remove(cleanupGuardKey());
+
         for (String key : allKeys)
             metastorage.remove(key);