public class ClusterSyncServiceChain extends java.lang.Object implements ClusterSyncService
Modifier and Type | Field and Description |
---|---|
protected org.slf4j.Logger |
logger |
Constructor and Description |
---|
ClusterSyncServiceChain(ClusterSyncService... chain)
Creates a new chain of ClusterSyncService that calls a
cascaded sync with the provided ClusterSyncService.
|
Modifier and Type | Method and Description |
---|---|
void |
cancelSync() |
void |
sync(BaseTopologyView view,
java.lang.Runnable callback)
Starts the synchronization process and calls the provided
callback upon completion.
|
public ClusterSyncServiceChain(ClusterSyncService... chain)
public void sync(BaseTopologyView view, java.lang.Runnable callback)
ClusterSyncService
sync() is not thread-safe and should not be invoked concurrently.
If sync() gets called before a previous invocation finished, that previous invocation will be discarded, ie the callback of the previous invocation will no longer be called.
The synchronization process consists of making sure that the repository has processed any potential backlog of instances that are no longer part of the provided, new view. Plus it writes a 'sync-token' to a well-defined location, with all peers doing the same, and upon seeing all other sync-tokens declares successful completion - at which point it calls the callback.run().
sync
in interface ClusterSyncService
view
- the view which all instances in the local cluster
should agree on having seencallback
- the runnable which should be called after
successful syncingpublic void cancelSync()
cancelSync
in interface ClusterSyncService
Copyright © 2022 The Apache Software Foundation. All rights reserved.