public abstract class ZooKeeperCache extends Object implements Watcher
ZooKeeperCache.Deserializer argument.| Modifier and Type | Class and Description |
|---|---|
static interface |
ZooKeeperCache.CacheUpdater<T> |
static interface |
ZooKeeperCache.Deserializer<T> |
Watcher.Event, Watcher.WatcherType| Modifier and Type | Field and Description |
|---|---|
protected com.github.benmanes.caffeine.cache.AsyncLoadingCache<String,Set<String>> |
childrenCache |
protected com.github.benmanes.caffeine.cache.AsyncLoadingCache<String,org.apache.commons.lang3.tuple.Pair<Map.Entry<Object,org.apache.zookeeper.data.Stat>,Long>> |
dataCache |
protected com.github.benmanes.caffeine.cache.AsyncLoadingCache<String,Boolean> |
existsCache |
static String |
ZK_CACHE_INSTANCE |
protected AtomicReference<ZooKeeper> |
zkSession |
| Constructor and Description |
|---|
ZooKeeperCache(String cacheName,
ZooKeeper zkSession,
int zkOperationTimeoutSeconds) |
ZooKeeperCache(String cacheName,
ZooKeeper zkSession,
int zkOperationTimeoutSeconds,
org.apache.bookkeeper.common.util.OrderedExecutor executor) |
ZooKeeperCache(String cacheName,
ZooKeeper zkSession,
int zkOperationTimeoutSeconds,
org.apache.bookkeeper.common.util.OrderedExecutor executor,
int cacheExpirySeconds) |
| Modifier and Type | Method and Description |
|---|---|
void |
asyncInvalidate(String path) |
boolean |
checkRegNodeAndWaitExpired(String regPath) |
boolean |
exists(String path)
Returns if the node at the given path exists in the cache
|
CompletableFuture<Boolean> |
existsAsync(String path,
Watcher watcher) |
Set<String> |
getChildren(String path)
Simple ZooKeeperChildrenCache use this method to invalidate cache entry on watch event w/o automatic re-loading
|
CompletableFuture<Set<String>> |
getChildrenAsync(String path,
Watcher watcher)
ZooKeeperChildrenCache implementing automatic re-loading on update use this method by passing in a different
Watcher object to reload cache entry
|
Set<String> |
getChildrenIfPresent(String path) |
<T> Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>> |
getData(String path,
Watcher watcher,
ZooKeeperCache.Deserializer<T> deserializer)
Cache that implements automatic reloading on update will pass a different Watcher object to reload cache entry
automatically
|
<T> Optional<T> |
getData(String path,
ZooKeeperCache.Deserializer<T> deserializer)
Simple ZooKeeperCache use this method to invalidate the cache entry on watch event w/o automatic reloading the
cache
|
<T> CompletableFuture<Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>>> |
getDataAsync(String path,
Watcher watcher,
ZooKeeperCache.Deserializer<T> deserializer) |
<T> CompletableFuture<Optional<T>> |
getDataAsync(String path,
ZooKeeperCache.Deserializer<T> deserializer) |
<T> T |
getDataIfPresent(String path) |
<T> Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>> |
getEntry(String path,
ZooKeeperCache.Deserializer<T> deserializer) |
<T> CompletableFuture<Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>>> |
getEntryAsync(String path,
ZooKeeperCache.Deserializer<T> deserializer) |
int |
getZkOperationTimeoutSeconds() |
ZooKeeper |
getZooKeeper() |
void |
invalidate(String path) |
void |
invalidateAll() |
void |
invalidateAllChildren() |
void |
invalidateAllData() |
void |
invalidateChildren(String path) |
void |
invalidateData(String path) |
void |
invalidateRoot(String root) |
void |
process(WatchedEvent event) |
<T> void |
process(WatchedEvent event,
ZooKeeperCache.CacheUpdater<T> updater) |
void |
stop() |
public static final String ZK_CACHE_INSTANCE
protected final com.github.benmanes.caffeine.cache.AsyncLoadingCache<String,org.apache.commons.lang3.tuple.Pair<Map.Entry<Object,org.apache.zookeeper.data.Stat>,Long>> dataCache
protected final com.github.benmanes.caffeine.cache.AsyncLoadingCache<String,Set<String>> childrenCache
protected final com.github.benmanes.caffeine.cache.AsyncLoadingCache<String,Boolean> existsCache
protected AtomicReference<ZooKeeper> zkSession
public ZooKeeperCache(String cacheName, ZooKeeper zkSession, int zkOperationTimeoutSeconds, org.apache.bookkeeper.common.util.OrderedExecutor executor)
public ZooKeeperCache(String cacheName, ZooKeeper zkSession, int zkOperationTimeoutSeconds, org.apache.bookkeeper.common.util.OrderedExecutor executor, int cacheExpirySeconds)
public ZooKeeper getZooKeeper()
public <T> void process(WatchedEvent event, ZooKeeperCache.CacheUpdater<T> updater)
public void invalidateAll()
public void invalidateAllData()
public void invalidateAllChildren()
public void invalidateData(String path)
public void invalidateChildren(String path)
public void asyncInvalidate(String path)
public int getZkOperationTimeoutSeconds()
public void invalidate(String path)
public boolean exists(String path) throws KeeperException, InterruptedException
path - path of the nodeKeeperExceptionInterruptedExceptionpublic CompletableFuture<Boolean> existsAsync(String path, Watcher watcher)
public <T> Optional<T> getData(String path, ZooKeeperCache.Deserializer<T> deserializer) throws Exception
path - deserializer - Exceptionpublic <T> Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>> getEntry(String path, ZooKeeperCache.Deserializer<T> deserializer) throws Exception
Exceptionpublic <T> CompletableFuture<Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>>> getEntryAsync(String path, ZooKeeperCache.Deserializer<T> deserializer)
public <T> CompletableFuture<Optional<T>> getDataAsync(String path, ZooKeeperCache.Deserializer<T> deserializer)
public <T> Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>> getData(String path, Watcher watcher, ZooKeeperCache.Deserializer<T> deserializer) throws Exception
path - watcher - deserializer - Exceptionpublic <T> CompletableFuture<Optional<Map.Entry<T,org.apache.zookeeper.data.Stat>>> getDataAsync(String path, Watcher watcher, ZooKeeperCache.Deserializer<T> deserializer)
public Set<String> getChildren(String path) throws KeeperException, InterruptedException
path - KeeperExceptionInterruptedExceptionpublic CompletableFuture<Set<String>> getChildrenAsync(String path, Watcher watcher)
path - watcher - public <T> T getDataIfPresent(String path)
public void process(WatchedEvent event)
public void invalidateRoot(String root)
public void stop()
public boolean checkRegNodeAndWaitExpired(String regPath) throws IOException
IOExceptionCopyright © 2017–2021 Apache Software Foundation. All rights reserved.