Package org.apache.bookkeeper.zookeeper
Class ZooWorker
java.lang.Object
org.apache.bookkeeper.zookeeper.ZooWorker
Provide a mechanism to perform an operation on ZooKeeper that is safe on disconnections
and recoverable errors.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescription(package private) int(package private) long(package private) final RetryPolicy(package private) long(package private) final OpStatsLogger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanallowRetry(int rc) static booleanisRecoverableException(int rc) Check whether the given result code is recoverable by retry.static booleanisRecoverableException(org.apache.zookeeper.KeeperException exception) Check whether the given exception is recoverable by retry.longstatic <T> TsyncCallWithRetries(ZooKeeperClient client, ZooWorker.ZooCallable<T> proc, RetryPolicy retryPolicy, com.google.common.util.concurrent.RateLimiter rateLimiter, OpStatsLogger statsLogger) Execute a sync zookeeper operation with a given retry policy.
-
Field Details
-
attempts
int attempts -
startTimeNanos
long startTimeNanos -
elapsedTimeMs
long elapsedTimeMs -
retryPolicy
-
statsLogger
-
-
Constructor Details
-
ZooWorker
ZooWorker(RetryPolicy retryPolicy, OpStatsLogger statsLogger)
-
-
Method Details
-
allowRetry
public boolean allowRetry(int rc) -
nextRetryWaitTime
public long nextRetryWaitTime() -
isRecoverableException
public static boolean isRecoverableException(int rc) Check whether the given result code is recoverable by retry.- Parameters:
rc- result code- Returns:
- true if given result code is recoverable.
-
isRecoverableException
public static boolean isRecoverableException(org.apache.zookeeper.KeeperException exception) Check whether the given exception is recoverable by retry.- Parameters:
exception- given exception- Returns:
- true if given exception is recoverable.
-
syncCallWithRetries
public static <T> T syncCallWithRetries(ZooKeeperClient client, ZooWorker.ZooCallable<T> proc, RetryPolicy retryPolicy, com.google.common.util.concurrent.RateLimiter rateLimiter, OpStatsLogger statsLogger) throws org.apache.zookeeper.KeeperException, InterruptedException Execute a sync zookeeper operation with a given retry policy.- Parameters:
client- ZooKeeper client.proc- Synchronous zookeeper operation wrapped in aCallable.retryPolicy- Retry policy to execute the synchronous operation.rateLimiter- Rate limiter for zookeeper callsstatsLogger- Stats Logger for zookeeper client.- Returns:
- result of the zookeeper operation
- Throws:
org.apache.zookeeper.KeeperException- any non-recoverable exception or recoverable exception exhausted all retires.InterruptedException- the operation is interrupted.
-