Returns a view of this client in which operations are performed asynchronously.
Returns a view of this client in which operations are performed asynchronously.
an asynchronous view of this client
Returns the children of the node specified by the given path.
Returns the children of the node specified by the given path.
the path of the node
an unordered sequence containing the names of each child node
if the node does not exist
Closes the client connection to the ZooKeeper cluster.
Closes the client connection to the ZooKeeper cluster.
A consequence of closing the connection is that ZooKeeper will expire the corresponding session, which further implies that all ephemeral nodes created by this client will be deleted.
Creates a new node at the given path.
Creates a new node at the given path.
If a sequential disposition is provided in disp
, then path
is appended with a monotonically
increasing sequence, thus guaranteeing that all sequential nodes are unique with path
as their prefix.
the path of the node to create
the data to associate with the node, which may be empty, but not null
an access control list to apply to the node, which must not be empty
the disposition of the node
the final path of the created node, which will differ from path
if disp
is either PersistentSequential
or EphemeralSequential
Deletes the node specified by the given path.
Deletes the node specified by the given path.
the path of the node
a Some
containing the expected version of the node or None
if a version match is not required
if version
is specified and does not match the node version
if the node does not exist
NotEmptyExceptionif the node contains children
Ensures that the value of a node, specified by the given path, is synchronized across the ZooKeeper cluster.
Ensures that the value of a node, specified by the given path, is synchronized across the ZooKeeper cluster.
An important note on consistency: ZooKeeper does not guarantee, for any given point in time, that all clients will have a consistent view of the cluster. Since reads can be served by any node in the cluster, whereas writes are serialized through the leader, there exists the possibility in which two separate clients may have inconsistent views. This scenario occurs when the leader commits a change once consensus is reached, but the change has not yet propagated across the cluster. Therefore, reads occurring before the commit has propagated will be globally inconsistent. This behavior is normally acceptable, but for some use cases, writes may need to be globally visible before subsequent reads occur.
This method is particularly useful when a write occurring in one process is followed by a read in another process. For example, consider the following sequence of operations:
The assumption is that process B expects to see the value written by process A, but as mentioned, ZooKeeper does not make this guarantee. A call to this method before process B attempts to read the value ensures that all prior writes are consistently applied across the cluster, thus observing the write in process A.
a future that completes when the node is synchronized across the cluster
Returns the status of the node specified by the given path if it exists.
Returns the status of the node specified by the given path if it exists.
the path of the node
a Some
containing the node status or None
if the node does not exist
Returns the data and status of the node specified by the given path.
Returns the data and status of the node specified by the given path.
the path of the node
a tuple containing the data and status of the node
if the node does not exist
Returns the ACL and status of the node specified by the given path.
Returns the ACL and status of the node specified by the given path.
the path of the node
a tuple containing the ACL and status of the node
if the node does not exist
Sets the data for the node specified by the given path.
Sets the data for the node specified by the given path.
the path of the node
the data to associate with the node, which may be empty, but not null
a Some
containing the expected version of the node or None
if a version match is not required
the status of the node
if version
is specified and does not match the node version
if the node does not exist
Sets the ACL for the node specified by the given path.
Sets the ACL for the node specified by the given path.
the path of the node
an access control list to apply to the node, which must not be empty
a Some
containing the expected version of the node or None
if a version match is not required
the status of the node
if version
is specified and does not match the node version
if the node does not exist
Returns a view of this client in which operations are performed synchronously.
Returns a view of this client in which operations are performed synchronously.
a synchronous view of this client
Atomically performs a set of operations, either committing all or none.
Atomically performs a set of operations, either committing all or none.
The set of operations are applied by ZooKeeper in sequential order. If successful, this method returns a Right
containing a sequence of results that positionally correlate to the sequence of operations. Otherwise, it returns a
Left
similarly containing a sequence of problems.
Example:
val ops = CheckOperation("/foo", None) :: CreateOperation("/bar", Array(), ACL.EveryoneAll, Persistent) :: Nil zk transact ops match { case Right(results) => ... case Left(problems) => ... }
Returns a synchronous client in which operations implicitly attach the specified watch function.
Returns a synchronous client in which operations implicitly attach the specified watch function.
The partial function fn
is invoked when a watch is triggered or the session state changes. This method is typically
used in a transient manner to introduce a watch function prior to performing a watchable ZooKeeper operation.
Example:
val zk = SynchronousZookeeper(config) val (data, node) = zk watch { case e: NodeEvent => ... case e: StateEvent => ... } get "/foo"
A ZooKeeper client with synchronous operations.