@Override public NearCachePreloaderConfig getPreloaderConfig() { return nearCacheConfig.getPreloaderConfig(); }
@Override public NearCachePreloaderConfig getPreloaderConfig() { return super.getPreloaderConfig().getAsReadOnly(); }
/** * Throws {@link IllegalArgumentException} if the given {@link NearCacheConfig} * has an invalid {@link NearCachePreloaderConfig}. * * @param nearCacheConfig supplied NearCacheConfig * @param isClient {@code true} if the config is for a Hazelcast client, {@code false} otherwise */ private static void checkPreloaderConfig(NearCacheConfig nearCacheConfig, boolean isClient) { if (!isClient && nearCacheConfig.getPreloaderConfig().isEnabled()) { throw new IllegalArgumentException("The Near Cache pre-loader is just available on Hazelcast clients!"); } }
@Override public NearCachePreloaderConfig getPreloaderConfig() { return super.getPreloaderConfig().getAsReadOnly(); }
/** * Throws {@link IllegalArgumentException} if the given {@link NearCacheConfig} * has an invalid {@link NearCachePreloaderConfig}. * * @param nearCacheConfig supplied NearCacheConfig * @param isClient {@code true} if the config is for a Hazelcast client, {@code false} otherwise */ private static void checkPreloaderConfig(NearCacheConfig nearCacheConfig, boolean isClient) { if (!isClient && nearCacheConfig.getPreloaderConfig().isEnabled()) { throw new IllegalArgumentException("The Near Cache pre-loader is just available on Hazelcast clients!"); } } }
BaseHeapNearCacheRecordStore(String name, NearCacheConfig nearCacheConfig, SerializationService serializationService, ClassLoader classLoader) { super(nearCacheConfig, serializationService, classLoader); NearCachePreloaderConfig preloaderConfig = nearCacheConfig.getPreloaderConfig(); this.nearCachePreloader = preloaderConfig.isEnabled() ? new NearCachePreloader<K>(name, preloaderConfig, nearCacheStats, serializationService) : null; }
BaseHeapNearCacheRecordStore(String name, NearCacheConfig nearCacheConfig, SerializationService serializationService, ClassLoader classLoader) { super(nearCacheConfig, serializationService, classLoader); NearCachePreloaderConfig preloaderConfig = nearCacheConfig.getPreloaderConfig(); this.nearCachePreloader = preloaderConfig.isEnabled() ? new NearCachePreloader<K>(name, preloaderConfig, nearCacheStats, serializationService) : null; }
@Override @SuppressWarnings("unchecked") public <K, V> NearCache<K, V> getOrCreateNearCache(String name, NearCacheConfig nearCacheConfig, DataStructureAdapter dataStructureAdapter) { NearCache<K, V> nearCache = nearCacheMap.get(name); if (nearCache == null) { synchronized (mutex) { nearCache = nearCacheMap.get(name); if (nearCache == null) { nearCache = createNearCache(name, nearCacheConfig); nearCache.initialize(); nearCacheMap.put(name, nearCache); NearCachePreloaderConfig preloaderConfig = nearCacheConfig.getPreloaderConfig(); if (preloaderConfig.isEnabled()) { createAndSchedulePreloadTask(nearCache, dataStructureAdapter); createAndScheduleStorageTask(preloaderConfig); } } } } return nearCache; }
/** * This method creates a copy of {@link NearCacheConfig} <strong>without</strong> copying read-only objects for * class fields, which may contain trash from previous invocations of near cache methods (this problem comes from * the fact, that HZ treats map configs as a const values after cluster startup, but atlassian cache allows to * change them after cluster is stared) * * @param nearCacheConfig {@link NearCacheConfig} to be copied * @return copy of the {@link NearCacheConfig} without read-only objects */ private NearCacheConfig copyNearCacheConfig(@Nonnull NearCacheConfig nearCacheConfig) { NearCacheConfig nearCacheConfigCopy = new NearCacheConfig(nearCacheConfig); EvictionConfig evictionConfigCopy = new EvictionConfig(nearCacheConfig.getEvictionConfig()); nearCacheConfigCopy.setEvictionConfig(evictionConfigCopy); NearCachePreloaderConfig preloaderConfigCopy = new NearCachePreloaderConfig(nearCacheConfigCopy.getPreloaderConfig()); nearCacheConfigCopy.setPreloaderConfig(preloaderConfigCopy); return nearCacheConfigCopy; }
public static NearCacheConfigHolder of(NearCacheConfig config, SerializationService serializationService) { if (config == null) { return null; } return new NearCacheConfigHolder(config.getName(), config.getInMemoryFormat().name(), config.isSerializeKeys(), config.isInvalidateOnChange(), config.getTimeToLiveSeconds(), config.getMaxIdleSeconds(), EvictionConfigHolder.of(config.getEvictionConfig(), serializationService), config.isCacheLocalEntries(), config.getLocalUpdatePolicy().name(), config.getPreloaderConfig()); } }
public static NearCacheConfigHolder of(NearCacheConfig config, SerializationService serializationService) { if (config == null) { return null; } return new NearCacheConfigHolder(config.getName(), config.getInMemoryFormat().name(), config.isSerializeKeys(), config.isInvalidateOnChange(), config.getTimeToLiveSeconds(), config.getMaxIdleSeconds(), EvictionConfigHolder.of(config.getEvictionConfig(), serializationService), config.isCacheLocalEntries(), config.getLocalUpdatePolicy().name(), config.getPreloaderConfig()); } }
private static void nearCache(XmlGenerator gen, String name, NearCacheConfig nearCache) { EvictionConfig eviction = nearCache.getEvictionConfig(); NearCachePreloaderConfig preloader = nearCache.getPreloaderConfig(); gen.open("near-cache", "name", name) .node("in-memory-format", nearCache.getInMemoryFormat()) .node("serialize-keys", nearCache.isSerializeKeys()) .node("invalidate-on-change", nearCache.isInvalidateOnChange()) .node("cache-local-entries", nearCache.isCacheLocalEntries()) .node("time-to-live-seconds", nearCache.getTimeToLiveSeconds()) .node("max-idle-seconds", nearCache.getMaxIdleSeconds()) .node("local-update-policy", nearCache.getLocalUpdatePolicy()) .node("eviction", null, "size", eviction.getSize(), "max-size-policy", eviction.getMaximumSizePolicy(), "eviction-policy", eviction.getEvictionPolicy()) .node("preloader", null, "enabled", preloader.isEnabled(), "directory", preloader.getDirectory(), "store-initial-delay-seconds", preloader.getStoreInitialDelaySeconds(), "store-interval-seconds", preloader.getStoreIntervalSeconds()); //close near-cache gen.close(); }
private static void nearCache(XmlGenerator gen, String name, NearCacheConfig nearCache) { EvictionConfig eviction = nearCache.getEvictionConfig(); NearCachePreloaderConfig preloader = nearCache.getPreloaderConfig(); gen.open("near-cache", "name", name) .node("in-memory-format", nearCache.getInMemoryFormat()) .node("serialize-keys", nearCache.isSerializeKeys()) .node("invalidate-on-change", nearCache.isInvalidateOnChange()) .node("cache-local-entries", nearCache.isCacheLocalEntries()) .node("time-to-live-seconds", nearCache.getTimeToLiveSeconds()) .node("max-idle-seconds", nearCache.getMaxIdleSeconds()) .node("local-update-policy", nearCache.getLocalUpdatePolicy()) .node("eviction", null, "size", eviction.getSize(), "max-size-policy", eviction.getMaximumSizePolicy(), "eviction-policy", eviction.getEvictionPolicy()) .node("preloader", null, "enabled", preloader.isEnabled(), "directory", preloader.getDirectory(), "store-initial-delay-seconds", preloader.getStoreInitialDelaySeconds(), "store-interval-seconds", preloader.getStoreIntervalSeconds()); //close near-cache gen.close(); }