diff --git a/core/lib/Drupal/Core/Cache/ChainedFastBackend.php b/core/lib/Drupal/Core/Cache/ChainedFastBackend.php
index 051f38d..c8a05ef 100644
--- a/core/lib/Drupal/Core/Cache/ChainedFastBackend.php
+++ b/core/lib/Drupal/Core/Cache/ChainedFastBackend.php
@@ -83,6 +83,10 @@ class ChainedFastBackend implements CacheBackendInterface, CacheTagsInvalidatorI
    */
   protected $lastWriteTimestamp;
 
+  public static $invalidatedCounter = 0;
+
+  protected $invalidated = FALSE;
+
   /**
    * Constructs a ChainedFastBackend object.
    *
@@ -116,6 +120,8 @@ public function getMultiple(&$cids, $allow_invalid = FALSE) {
     $cids_copy = $cids;
     $cache = array();
 
+    $this->invalidated = FALSE;
+
     // If we can determine the time at which the last write to the consistent
     // backend occurred (we might not be able to if it has been recently
     // flushed/restarted), then we can use that to validate items from the fast
@@ -306,8 +312,10 @@ protected function markAsOutdated() {
     // the same millisecond and are then incorrectly invalidated, but that only
     // costs one additional roundtrip to the persistent cache.
     $now = round(microtime(TRUE) + .001, 3);
-    if ($now > $this->getLastWriteTimestamp()) {
+    if (!$this->invalidated && $now > $this->getLastWriteTimestamp()) {
       $this->lastWriteTimestamp = $now;
+      $this->invalidated = TRUE;
+      static::$invalidatedCounter++;
       $this->consistentBackend->set(self::LAST_WRITE_TIMESTAMP_PREFIX . $this->bin, $this->lastWriteTimestamp);
     }
   }
