Example usage for com.google.common.cache CacheBuilder concurrencyLevel

List of usage examples for com.google.common.cache CacheBuilder concurrencyLevel

Introduction

In this page you can find the example usage for com.google.common.cache CacheBuilder concurrencyLevel.

Prototype

int concurrencyLevel

To view the source code for com.google.common.cache CacheBuilder concurrencyLevel.

Click Source Link

Usage

From source file:com.davidbracewell.cache.impl.GuavaCacheUtils.java

/**
 * Converts a CacheSpec into a CacheBuilder
 *
 * @param specification The specification
 * @param <K>           The key type
 * @param <V>           The value type
 * @return The CacheBuilder// w w  w  .  j av a  2 s.  c  o m
 */
public static <K, V> CacheBuilder<K, V> cacheBuilderFromSpec(CacheSpec<K, V> specification) {
    CacheBuilder cacheBuilder = CacheBuilder.newBuilder();
    if (specification.getMaxSize() > 0) {
        cacheBuilder.maximumSize(specification.getMaxSize());
    }
    if (specification.getConcurrencyLevel() > 0) {
        cacheBuilder.concurrencyLevel(specification.getMaxSize());
    }
    if (specification.getInitialCapacity() > 0) {
        cacheBuilder.initialCapacity(specification.getInitialCapacity());
    }
    if (specification.getExpiresAfterAccess() > 0) {
        cacheBuilder.expireAfterAccess(specification.getExpiresAfterAccess(), TimeUnit.MILLISECONDS);
    }
    if (specification.getExpiresAfterWrite() > 0) {
        cacheBuilder.expireAfterWrite(specification.getExpiresAfterWrite(), TimeUnit.MILLISECONDS);
    }
    if (specification.isWeakKeys()) {
        cacheBuilder.weakKeys();
    }
    if (specification.isWeakValues()) {
        cacheBuilder.weakValues();
    }
    return Cast.as(cacheBuilder);
}

From source file:org.locationtech.geogig.storage.cache.SharedCache.java

@VisibleForTesting
static SharedCache build(int L1capacity, long maxCacheSizeBytes) {
    checkArgument(L1capacity >= 0);//from  w ww.  j a  va 2s .  com
    checkArgument(maxCacheSizeBytes >= 0, "Cache size can't be < 0, 0 meaning no cache at all");

    if (0L == maxCacheSizeBytes) {
        return NO_CACHE;
    }

    int initialCapacityCount = 1_000_000;
    int concurrencyLevel = 16;

    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder = cacheBuilder.maximumWeight(maxCacheSizeBytes);
    cacheBuilder.weigher(Impl.SizeTracker.WEIGHER);

    cacheBuilder.initialCapacity(initialCapacityCount);
    cacheBuilder.concurrencyLevel(concurrencyLevel);
    cacheBuilder.recordStats();

    Impl.SizeTracker sizeTracker = new Impl.SizeTracker();
    cacheBuilder.removalListener(sizeTracker);

    Cache<Key, byte[]> byteCache = cacheBuilder.build();

    return new Impl(L1capacity, byteCache, sizeTracker);
}

From source file:org.locationtech.geogig.storage.postgresql.PGCache.java

private static PGCache build(Integer initialCapacityCount, Integer concurrencyLevel2, Long maxWeightBytes,
        Optional<Integer> expireSeconds) {
    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder = cacheBuilder.maximumWeight(maxWeightBytes);
    cacheBuilder.weigher(weigher);/*from  www  .  ja  v a  2  s.c  om*/
    if (expireSeconds.isPresent()) {
        long seconds = expireSeconds.get();
        Preconditions.checkArgument(seconds > -1);
        cacheBuilder.expireAfterAccess(seconds, TimeUnit.SECONDS);
    }
    cacheBuilder.initialCapacity(initialCapacityCount);
    cacheBuilder.concurrencyLevel(concurrencyLevel2);
    cacheBuilder.recordStats();

    SizeTracker sizeTracker = new SizeTracker();
    cacheBuilder.removalListener(sizeTracker);

    Cache<ObjectId, byte[]> byteCache = cacheBuilder.build();

    return new PGCache(byteCache, sizeTracker);
}

From source file:com.github.benmanes.caffeine.cache.testing.GuavaCacheFromContext.java

/** Returns a Guava-backed cache. */
@SuppressWarnings("CheckReturnValue")
public static <K, V> Cache<K, V> newGuavaCache(CacheContext context) {
    checkState(!context.isAsync(), "Guava caches are synchronous only");

    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
    context.guava = builder;//from  ww  w. j  a  va  2 s. c om

    builder.concurrencyLevel(1);
    if (context.initialCapacity != InitialCapacity.DEFAULT) {
        builder.initialCapacity(context.initialCapacity.size());
    }
    if (context.isRecordingStats()) {
        builder.recordStats();
    }
    if (context.maximumSize != Maximum.DISABLED) {
        if (context.weigher == CacheWeigher.DEFAULT) {
            builder.maximumSize(context.maximumSize.max());
        } else {
            builder.weigher(new GuavaWeigher<Object, Object>(context.weigher));
            builder.maximumWeight(context.maximumWeight());
        }
    }
    if (context.afterAccess != Expire.DISABLED) {
        builder.expireAfterAccess(context.afterAccess.timeNanos(), TimeUnit.NANOSECONDS);
    }
    if (context.afterWrite != Expire.DISABLED) {
        builder.expireAfterWrite(context.afterWrite.timeNanos(), TimeUnit.NANOSECONDS);
    }
    if (context.refresh != Expire.DISABLED) {
        builder.refreshAfterWrite(context.refresh.timeNanos(), TimeUnit.NANOSECONDS);
    }
    if (context.expires() || context.refreshes()) {
        builder.ticker(context.ticker());
    }
    if (context.keyStrength == ReferenceType.WEAK) {
        builder.weakKeys();
    } else if (context.keyStrength == ReferenceType.SOFT) {
        throw new IllegalStateException();
    }
    if (context.valueStrength == ReferenceType.WEAK) {
        builder.weakValues();
    } else if (context.valueStrength == ReferenceType.SOFT) {
        builder.softValues();
    }
    if (context.removalListenerType != Listener.DEFAULT) {
        boolean translateZeroExpire = (context.afterAccess == Expire.IMMEDIATELY)
                || (context.afterWrite == Expire.IMMEDIATELY);
        builder.removalListener(new GuavaRemovalListener<>(translateZeroExpire, context.removalListener));
    }
    Ticker ticker = (context.ticker == null) ? Ticker.systemTicker() : context.ticker;
    if (context.loader == null) {
        context.cache = new GuavaCache<>(builder.<Integer, Integer>build(), ticker, context.isRecordingStats());
    } else if (context.loader().isBulk()) {
        context.cache = new GuavaLoadingCache<>(
                builder.build(new BulkLoader<Integer, Integer>(context.loader())), ticker,
                context.isRecordingStats());
    } else {
        context.cache = new GuavaLoadingCache<>(
                builder.build(new SingleLoader<Integer, Integer>(context.loader())), ticker,
                context.isRecordingStats());
    }
    @SuppressWarnings("unchecked")
    Cache<K, V> castedCache = (Cache<K, V>) context.cache;
    return castedCache;
}

From source file:com.baidu.oped.apm.profiler.metadata.LRUCache.java

public LRUCache(int maxCacheSize) {
    final CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder.concurrencyLevel(32);
    cacheBuilder.initialCapacity(maxCacheSize);
    cacheBuilder.maximumSize(maxCacheSize);
    Cache<T, Object> localCache = cacheBuilder.build();
    this.cache = localCache.asMap();
}

From source file:com.navercorp.pinpoint.profiler.metadata.SimpleCache.java

private ConcurrentMap<T, Result> createCache(int maxCacheSize) {
    final CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder.concurrencyLevel(64);
    cacheBuilder.initialCapacity(maxCacheSize);
    cacheBuilder.maximumSize(maxCacheSize);
    Cache<T, Result> localCache = cacheBuilder.build();
    ConcurrentMap<T, Result> cache = localCache.asMap();
    return cache;
}

From source file:com.navercorp.pinpoint.profiler.context.active.ActiveTraceRepository.java

private ConcurrentMap<Long, ActiveTrace> createCache(int maxActiveTraceSize) {
    final CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder.concurrencyLevel(64);
    cacheBuilder.initialCapacity(maxActiveTraceSize);
    cacheBuilder.maximumSize(maxActiveTraceSize);
    // OOM defense
    cacheBuilder.weakValues();//from   ww  w .j av a  2  s.c o m

    final Cache<Long, ActiveTrace> localCache = cacheBuilder.build();
    return localCache.asMap();
}

From source file:com.navercorp.pinpoint.profiler.modifier.spring.beans.interceptor.TargetBeanFilter.java

private Cache<Class<?>, Object> createCache() {
    final CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
    builder.concurrencyLevel(CACHE_CONCURRENCY_LEVEL);
    builder.maximumSize(CACHE_SIZE);//www . j  a  v  a  2s .  c o  m
    builder.weakKeys();
    return builder.build();
}

From source file:com.navercorp.pinpoint.profiler.context.active.DefaultActiveTraceRepository.java

private ConcurrentMap<ActiveTraceHandle, ActiveTrace> createCache(int maxActiveTraceSize) {
    final CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder.concurrencyLevel(64);
    cacheBuilder.initialCapacity(maxActiveTraceSize);
    cacheBuilder.maximumSize(maxActiveTraceSize);

    final Cache<ActiveTraceHandle, ActiveTrace> localCache = cacheBuilder.build();
    return localCache.asMap();
}

From source file:org.nuxeo.ecm.core.cache.InMemoryCacheImpl.java

public InMemoryCacheImpl(CacheDescriptor desc) {
    super(desc);/*from  ww w.ja  v  a2 s  . c  o  m*/
    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
    builder = builder.expireAfterWrite(desc.ttl, TimeUnit.MINUTES);
    if (desc.options.containsKey("concurrencyLevel")) {
        builder = builder.concurrencyLevel(Integer.valueOf(desc.options.get("concurrencyLevel")).intValue());
    }
    if (desc.options.containsKey("maxSize")) {
        builder = builder.maximumSize(Integer.valueOf(desc.options.get("maxSize")).intValue());
    }
    cache = builder.build();
}