trait AsynchronousZookeeper extends Zookeeper
A ZooKeeper client with asynchronous operations.
- Alphabetic
- By Inheritance
- AsynchronousZookeeper
- Zookeeper
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
async: AsynchronousZookeeper
Returns a view of this client in which operations are performed asynchronously.
Returns a view of this client in which operations are performed asynchronously.
- returns
an asynchronous view of this client
- Definition Classes
- Zookeeper
-
abstract
def
children(path: String): Future[(Seq[String], Status)]
Asynchronously gets the children of the node specified by the given path.
Asynchronously gets the children of the node specified by the given path.
- path
the path of the node
- returns
a future, which upon success, yields an unordered sequence containing the names of each child node, otherwise one of the following exceptions:
- NoNodeException if the node does not exist
-
abstract
def
close(): Unit
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.
- Definition Classes
- Zookeeper
-
abstract
def
create(path: String, data: Array[Byte], acl: Seq[ACL], disp: Disposition): Future[String]
Asynchronously creates a new node at the given path.
Asynchronously creates a new node at the given path.
If a sequential disposition is provided in
disp
, thenpath
is appended with a monotonically increasing sequence, thus guaranteeing that all sequential nodes are unique withpath
as their prefix.- path
the path of the node to create
- data
the data to associate with the node, which may be empty, but not
null
- acl
an access control list to apply to the node, which must not be empty
- disp
the disposition of the node
- returns
a future yielding the final path of the created node, which will differ from
path
ifdisp
is either PersistentSequential or EphemeralSequential
-
abstract
def
delete(path: String, version: Option[Int]): Future[Unit]
Asynchronously deletes the node specified by the given path.
Asynchronously deletes the node specified by the given path.
- path
the path of the node
- version
a
Some
containing the expected version of the node orNone
if a version match is not required- returns
a future, which upon success, yields
Unit
, otherwise one of the following exceptions:NoNodeException
if the node does not existBadVersionException
ifversion
is specified and does not match the node versionNotEmptyException
if the node contains children
-
abstract
def
ensure(path: String): Future[Unit]
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:
- process A writes a value
- process A sends a message to process B
- process B reads the value
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.
- returns
a future that completes when the node is synchronized across the cluster
- Definition Classes
- Zookeeper
-
abstract
def
exists(path: String): Future[Option[Status]]
Asynchronously determines the status of the node specified by the given path if it exists.
Asynchronously determines the status of the node specified by the given path if it exists.
- path
the path of the node
- returns
a future yielding a
Some
containing the node status orNone
if the node does not exist
-
abstract
def
get(path: String): Future[(Array[Byte], Status)]
Asynchronously gets the data and status of the node specified by the given path.
Asynchronously gets the data and status of the node specified by the given path.
- path
the path of the node
- returns
a future, which upon success, yeilds a tuple containing the data and status of the node, otherwise one of the following exceptions:
- NoNodeException if the node does not exist
-
abstract
def
getACL(path: String): Future[(Seq[ACL], Status)]
Asynchronously gets the ACL and status of the node specified by the given path.
Asynchronously gets the ACL and status of the node specified by the given path.
- path
the path of the node
- returns
a future, which upon success, yields a tuple containing the ACL and status of the node, otherwise one of the following exceptions:
- NoNodeException if the node does not exist
-
abstract
def
set(path: String, data: Array[Byte], version: Option[Int]): Future[Status]
Asynchronously sets the data for the node specified by the given path.
Asynchronously sets the data for the node specified by the given path.
- path
the path of the node
- data
the data to associate with the node, which may be empty, but not
null
- version
a
Some
containing the expected version of the node orNone
if a version match is not required- returns
a future, which upon success, yields the status of the node, otherwise one of the following exceptions:
- NoNodeException if the node does not exist
- BadVersionException if
version
is specified and does not match the node version
-
abstract
def
setACL(path: String, acl: Seq[ACL], version: Option[Int]): Future[Status]
Asynchronously sets the ACL for the node specified by the given path.
Asynchronously sets the ACL for the node specified by the given path.
- path
the path of the node
- acl
an access control list to apply to the node, which must not be empty
- version
a
Some
containing the expected version of the node orNone
if a version match is not required- returns
a future, which upon success, yields the status of the node, otherwise one of the following conditions:
- NoNodeException if the node does not exist
- BadVersionException if
version
is specified and does not match the node version
-
abstract
def
sync: SynchronousZookeeper
Returns a view of this client in which operations are performed synchronously.
Returns a view of this client in which operations are performed synchronously.
- returns
a synchronous view of this client
- Definition Classes
- Zookeeper
-
abstract
def
watch(fn: PartialFunction[Event, Unit]): AsynchronousWatchableZookeeper
Returns an asynchronous client in which operations implicitly attach the specified watch function.
Returns an asynchronous 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 = AsynchronousZookeeper(config) val future = zk watch { case e: NodeEvent => ... case e: StateEvent => ... } get "/foo" ... future onSuccess { case (data, node) => ... } future onFailure { case e: NoNodeException => ... }
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )