class CountBasedBackEnd extends ConcurrentHashMap<K, V> implements HeapCacheBackEnd<K, V> {

    @Override
    public V putIfAbsent(final K key, final V value) {
        final V v = super.putIfAbsent(key, value);
        if (v == null) {
            try {
                evictIfRequired(key, value);
            } catch (Throwable e) {
                LOG.warn("Caught throwable while evicting", e);
            }
        }
        return v;
    }

    public  CountBasedBackEnd(final long maxEntriesLocalHeap);
    public  CountBasedBackEnd(final long maxEntriesLocalHeap, final Policy policy);

}