code: protected boolean evictInternal(S sampleableEvictableStore,
              EvictionPolicyEvaluator<A, E> evictionPolicyEvaluator,
              EvictionListener<A, E> evictionListener) {
          final Iterable<EvictionCandidate<A, E>> samples = sampleableEvictableStore.sample(SAMPLE_COUNT);
          final EvictionCandidate<A, E> evictionCandidate = evictionPolicyEvaluator.evaluate(samples);
          return sampleableEvictableStore.tryEvict(evictionCandidate, evictionListener);
      }
docs: Processes sampling based eviction logic on {@link SampleableEvictableStore}.
  
  @param sampleableEvictableStore  {@link SampleableEvictableStore} that holds {@link Evictable} entries
  @param evictionPolicyEvaluator   {@link EvictionPolicyEvaluator} to evaluate
  @param evictionListener          {@link EvictionListener} to listen evicted entries
  
  @return true is an entry was evicted, otherwise false