LruNormalizedCache(EvictionPolicy evictionPolicy) { final CacheBuilder<Object, Object> lruCacheBuilder = CacheBuilder.newBuilder(); if (evictionPolicy.maxSizeBytes().isPresent()) { lruCacheBuilder.maximumWeight(evictionPolicy.maxSizeBytes().get()) .weigher(new Weigher<String, Record>() { @Override public int weigh(String key, Record value) { return key.getBytes(Charset.defaultCharset()).length + value.sizeEstimateBytes(); } }); } if (evictionPolicy.maxEntries().isPresent()) { lruCacheBuilder.maximumSize(evictionPolicy.maxEntries().get()); } if (evictionPolicy.expireAfterAccess().isPresent()) { lruCacheBuilder.expireAfterAccess(evictionPolicy.expireAfterAccess().get(), evictionPolicy.expireAfterAccessTimeUnit().get()); } if (evictionPolicy.expireAfterWrite().isPresent()) { lruCacheBuilder.expireAfterWrite(evictionPolicy.expireAfterWrite().get(), evictionPolicy.expireAfterWriteTimeUnit().get()); } lruCache = lruCacheBuilder.build(); }
@Nonnull CacheBuilder<K, V> recreateCacheBuilder() { CacheBuilder<K, V> builder = CacheBuilder.newBuilder() .setKeyStrength(keyStrength) .setValueStrength(valueStrength) .keyEquivalence(keyEquivalence) .valueEquivalence(valueEquivalence) .concurrencyLevel(concurrencyLevel) .removalListener(removalListener); builder.strictParsing = false; if (expireAfterWriteNanos > 0) { builder.expireAfterWrite(expireAfterWriteNanos, NANOSECONDS); builder.expireAfterAccess(expireAfterAccessNanos, NANOSECONDS); builder.weigher(weigher); if (maxWeight != UNSET_INT) { builder.maximumWeight(maxWeight); builder.maximumSize(maxWeight); builder.ticker(ticker);
static <Key, Parsed> Cache<Key, Observable<Parsed>> createCache(MemoryPolicy memoryPolicy) { if (memoryPolicy == null) { return CacheBuilder .newBuilder() .maximumSize(StoreDefaults.getCacheSize()) .expireAfterWrite(StoreDefaults.getCacheTTL(), StoreDefaults.getCacheTTLTimeUnit()) .build(); } else { if (memoryPolicy.getExpireAfterAccess() == memoryPolicy.DEFAULT_POLICY) { return CacheBuilder .newBuilder() .maximumSize(memoryPolicy.getMaxSize()) .expireAfterWrite(memoryPolicy.getExpireAfterWrite(), memoryPolicy.getExpireAfterTimeUnit()) .build(); } else { return CacheBuilder .newBuilder() .maximumSize(memoryPolicy.getMaxSize()) .expireAfterAccess(memoryPolicy.getExpireAfterAccess(), memoryPolicy.getExpireAfterTimeUnit()) .build(); } } }
FileSystemImpl(@Nonnull final File root) throws IOException { this.root = root; this.files = newBuilder().maximumSize(20) .build(new CacheLoader<String, FSFile>() { @Nonnull @Override public FSFile load(@Nonnull String path) throws IOException { return new FSFile(root, path); } }); util.createParentDirs(root); }
NoopPersister(MemoryPolicy memoryPolicy) { this.networkResponses = CacheBuilder .newBuilder() .expireAfterWrite(memoryPolicy.getExpireAfterWrite(), memoryPolicy.getExpireAfterTimeUnit()) .build(); }
private void readObject(@Nonnull ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); CacheBuilder<K, V> builder = recreateCacheBuilder(); this.delegate = builder.build(); }
static <Key, Parsed> Cache<Key, Observable<Parsed>> createInflighter(MemoryPolicy memoryPolicy) { long expireAfterToSeconds = memoryPolicy == null ? StoreDefaults.getCacheTTLTimeUnit() .toSeconds(StoreDefaults.getCacheTTL()) : memoryPolicy.getExpireAfterTimeUnit().toSeconds(memoryPolicy.getExpireAfterWrite()); long maximumInFlightRequestsDuration = TimeUnit.MINUTES.toSeconds(1); if (expireAfterToSeconds > maximumInFlightRequestsDuration) { return CacheBuilder .newBuilder() .expireAfterWrite(maximumInFlightRequestsDuration, TimeUnit.SECONDS) .build(); } else { long expireAfter = memoryPolicy == null ? StoreDefaults.getCacheTTL() : memoryPolicy.getExpireAfterWrite(); TimeUnit expireAfterUnit = memoryPolicy == null ? StoreDefaults.getCacheTTLTimeUnit() : memoryPolicy.getExpireAfterTimeUnit(); return CacheBuilder.newBuilder() .expireAfterWrite(expireAfter, expireAfterUnit) .build(); } } }
private void readObject(@Nonnull ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); CacheBuilder<K, V> builder = recreateCacheBuilder(); this.autoDelegate = builder.build(loader); }
LruNormalizedCache(EvictionPolicy evictionPolicy) { final CacheBuilder<Object, Object> lruCacheBuilder = CacheBuilder.newBuilder(); if (evictionPolicy.maxSizeBytes().isPresent()) { lruCacheBuilder.maximumWeight(evictionPolicy.maxSizeBytes().get()) .weigher(new Weigher<String, Record>() { @Override public int weigh(String key, Record value) { return key.getBytes().length + value.sizeEstimateBytes(); } }); } if (evictionPolicy.maxEntries().isPresent()) { lruCacheBuilder.maximumSize(evictionPolicy.maxEntries().get()); } if (evictionPolicy.expireAfterAccess().isPresent()) { lruCacheBuilder.expireAfterAccess(evictionPolicy.expireAfterAccess().get(), evictionPolicy.expireAfterAccessTimeUnit().get()); } if (evictionPolicy.expireAfterWrite().isPresent()) { lruCacheBuilder.expireAfterWrite(evictionPolicy.expireAfterWrite().get(), evictionPolicy.expireAfterWriteTimeUnit().get()); } lruCache = lruCacheBuilder.build(); }
LruNormalizedCache(EvictionPolicy evictionPolicy) { final CacheBuilder<Object, Object> lruCacheBuilder = CacheBuilder.newBuilder(); if (evictionPolicy.maxSizeBytes().isPresent()) { lruCacheBuilder.maximumWeight(evictionPolicy.maxSizeBytes().get()) .weigher(new Weigher<String, Record>() { @Override public int weigh(String key, Record value) { return key.getBytes().length + value.sizeEstimateBytes(); } }); } if (evictionPolicy.maxEntries().isPresent()) { lruCacheBuilder.maximumSize(evictionPolicy.maxEntries().get()); } if (evictionPolicy.expireAfterAccess().isPresent()) { lruCacheBuilder.expireAfterAccess(evictionPolicy.expireAfterAccess().get(), evictionPolicy.expireAfterAccessTimeUnit().get()); } if (evictionPolicy.expireAfterWrite().isPresent()) { lruCacheBuilder.expireAfterWrite(evictionPolicy.expireAfterWrite().get(), evictionPolicy.expireAfterWriteTimeUnit().get()); } lruCache = lruCacheBuilder.build(); }