@Override
 public long getCacheRemovals() {
   return normalize(
       getBulkCount(BulkOps.REMOVE_ALL)
           - compensatingCounters.bulkRemovals
           + remove.sum(EnumSet.of(CacheOperationOutcomes.RemoveOutcome.SUCCESS))
           + conditionalRemove.sum(
               EnumSet.of(CacheOperationOutcomes.ConditionalRemoveOutcome.SUCCESS))
           - compensatingCounters.cacheRemovals);
 }
 private long getMisses() {
   return getBulkCount(BulkOps.GET_ALL_MISS)
       + get.sum(
           EnumSet.of(
               CacheOperationOutcomes.GetOutcome.MISS_NO_LOADER,
               CacheOperationOutcomes.GetOutcome.MISS_WITH_LOADER))
       + putIfAbsent.sum(EnumSet.of(CacheOperationOutcomes.PutIfAbsentOutcome.PUT))
       + replace.sum(EnumSet.of(CacheOperationOutcomes.ReplaceOutcome.MISS_NOT_PRESENT))
       + conditionalRemove.sum(
           EnumSet.of(CacheOperationOutcomes.ConditionalRemoveOutcome.FAILURE_KEY_MISSING));
 }
 @Override
 public long getCachePuts() {
   return normalize(
       getBulkCount(BulkOps.PUT_ALL)
           - compensatingCounters.bulkPuts
           + put.sum(EnumSet.of(CacheOperationOutcomes.PutOutcome.PUT))
           + put.sum(EnumSet.of(CacheOperationOutcomes.PutOutcome.UPDATED))
           + putIfAbsent.sum(EnumSet.of(CacheOperationOutcomes.PutIfAbsentOutcome.PUT))
           + replace.sum(EnumSet.of(CacheOperationOutcomes.ReplaceOutcome.HIT))
           - compensatingCounters.cachePuts);
 }
 private long getHits() {
   return getBulkCount(BulkOps.GET_ALL_HITS)
       + get.sum(
           EnumSet.of(
               CacheOperationOutcomes.GetOutcome.HIT_NO_LOADER,
               CacheOperationOutcomes.GetOutcome.HIT_WITH_LOADER))
       + putIfAbsent.sum(EnumSet.of(CacheOperationOutcomes.PutIfAbsentOutcome.PUT))
       + replace.sum(
           EnumSet.of(
               CacheOperationOutcomes.ReplaceOutcome.HIT,
               CacheOperationOutcomes.ReplaceOutcome.MISS_PRESENT))
       + conditionalRemove.sum(
           EnumSet.of(
               CacheOperationOutcomes.ConditionalRemoveOutcome.SUCCESS,
               CacheOperationOutcomes.ConditionalRemoveOutcome.FAILURE_KEY_PRESENT));
 }
 @Override
 public long getCacheEvictions() {
   return normalize(
       lowestTierEviction.sum(EnumSet.of(StoreOperationOutcomes.EvictionOutcome.SUCCESS))
           - compensatingCounters.cacheEvictions);
 }