public function Fail($server) {
      
      // Use APC?
      $apc = false;
      if (C('Garden.Apc', false) && function_exists('apc_fetch'))
         $apc = true;

      // Get the active cache name
      $activeCache = Gdn_Cache::ActiveCache();
      $activeCache = ucfirst($activeCache);
      $sctiveStoreKey = "Cache.{$activeCache}.Store";

      // Get the localstore
      $localStore = GetValue($activeCache, Gdn_Cache::$Stores, null);
      if (is_null($localStore)) {
         Gdn_Cache::ActiveStore();
         $localStore = GetValue($activeCache, Gdn_Cache::$Stores, null);
         if (is_null($localStore)) {
            return false;
         }
      }

      $storeServerName = md5($server);
      if (!array_key_exists($storeServerName, $localStore)) {
         return false;
      }

      $storeServer = &$localStore[$storeServerName];
      $isActive = &$storeServer['Active'];
      if (!$isActive) return false;

      $fails = &$storeServer['Fails'];
      $fails++;
      $active = $isActive ? 'active' : 'inactive';

      // Check if we need to deactivate for 5 minutes
      if ($isActive && $storeServer['Fails'] > 3) {
         $isActive = false;
         $storeServer['Delay'] = time() + Gdn_Cache::CACHE_EJECT_DURATION;
      }

      // Save
      Gdn_Cache::$Stores[$activeCache] = $localStore;
      
      // Save to APC
      if ($apc) {
         apc_store($sctiveStoreKey, $localStore, Gdn_Cache::APC_CACHE_DURATION);
      }
      
      return true;
   }