IGNITE-6778 Fixed assertion in checkpointer entry sort
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 6914054..e07aef7 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -1975,6 +1975,9 @@
         /** Shutdown now. */
         private volatile boolean shutdownNow;
 
+        /** */
+        private long lastCpTs;
+
         /**
          * @param gridName Grid name.
          * @param name Thread name.
@@ -2364,6 +2367,13 @@
 
                 long cpTs = System.currentTimeMillis();
 
+                // This can happen in an unlikely event of two checkpoints happening
+                // within a currentTimeMillis() granularity window.
+                if (cpTs == lastCpTs)
+                    cpTs++;
+
+                lastCpTs = cpTs;
+
                 CheckpointEntry cpEntry = writeCheckpointEntry(
                     tmpWriteBuf,
                     cpTs,