The Zookeeper class

(PECL zookeeper >= 0.1.0)

Introduction

Represents ZooKeeper session.

Class synopsis

classZookeeper {
public__construct(string$host = '', callable$watcher_cb = null, int$recv_timeout = 10000)
publicaddAuth(string$scheme, string$cert, callable$completion_cb = null): bool
publicclose(): void
publicconnect(string$host, callable$watcher_cb = null, int$recv_timeout = 10000): void
publiccreate(
    string$path,
    string$value,
    array$acls,
    int$flags = null
): string
publicdelete(string$path, int$version = -1): bool
publicexists(string$path, callable$watcher_cb = null): array
publicget(
    string$path,
    callable$watcher_cb = null,
    array&$stat = null,
    int$max_size = 0
): string
publicgetAcl(string$path): array
publicgetChildren(string$path, callable$watcher_cb = null): array
publicgetClientId(): int
publicgetState(): int
publicset(
    string$path,
    string$value,
    int$version = -1,
    array&$stat = null
): bool
publicsetAcl(string$path, int$version, array$acl): bool
publicstaticsetDebugLevel(int$logLevel): bool
publicstaticsetDeterministicConnOrder(bool$yesOrNo): bool
publicsetLogStream(resource$stream): bool
publicsetWatcher(callable$watcher_cb): bool
constintPERM_READ = 1;
constintPERM_WRITE = 2;
constintPERM_CREATE = 4;
constintPERM_DELETE = 8;
constintPERM_ADMIN = 16;
constintPERM_ALL = 31;
constintEPHEMERAL = 1;
constintSEQUENCE = 2;
constintCHILD_EVENT = 4;
constintSESSION_EVENT = -1;
constintSYSTEMERROR = -1;
constintUNIMPLEMENTED = -6;
constintBADARGUMENTS = -8;
constintINVALIDSTATE = -9;
constintOK = 0;
constintAPIERROR = -100;
constintNONODE = -101;
constintNOAUTH = -102;
constintBADVERSION = -103;
constintNODEEXISTS = -110;
constintNOTEMPTY = -111;
constintSESSIONEXPIRED = -112;
constintINVALIDCALLBACK = -113;
constintINVALIDACL = -114;
constintAUTHFAILED = -115;
constintCLOSING = -116;
constintNOTHING = -117;
constintSESSIONMOVED = -118;
constintNOTREADONLY = -119;
constintNOWATCHER = -121;
constintRECONFIGDISABLED = -122;
}

Predefined Constants

ZooKeeper Permissions

Zookeeper::PERM_READ

Can read nodes value and list its children

Zookeeper::PERM_WRITE

Can set the nodes value

Zookeeper::PERM_CREATE

Can create children

Zookeeper::PERM_DELETE

Can delete children

Zookeeper::PERM_ADMIN

Can execute set_acl()

Zookeeper::PERM_ALL

All of the above flags ORd together

ZooKeeper Create Flags

Zookeeper::EPHEMERAL

If Zookeeper::EPHEMERAL flag is set, the node will automatically get removed if the client session goes away.

Zookeeper::SEQUENCE

If the Zookeeper::SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name. The sequence number is always fixed length of 10 digits, 0 padded.

ZooKeeper Log Levels

Zookeeper::LOG_LEVEL_ERROR

Outputs only error mesages

Zookeeper::LOG_LEVEL_WARN

Outputs errors/warnings

Zookeeper::LOG_LEVEL_INFO

Outputs big action messages besides errors/warnings

Zookeeper::LOG_LEVEL_DEBUG

Outputs all

ZooKeeper States

Zookeeper::EXPIRED_SESSION_STATE

Connected but session expired

Zookeeper::AUTH_FAILED_STATE

Connected but auth failed

Zookeeper::CONNECTING_STATE

Connecting

Zookeeper::ASSOCIATING_STATE

Associating

Zookeeper::CONNECTED_STATE

Connected

Zookeeper::READONLY_STATE

TODO: help us improve this extension.

Zookeeper::NOTCONNECTED_STATE

Connection failed

ZooKeeper Watch Types

Zookeeper::CREATED_EVENT

A node has been created

This is only generated by watches on non-existent nodes. These watches are set using Zookeeper::exists.

Zookeeper::DELETED_EVENT

A node has been deleted

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHANGED_EVENT

A node has changed

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHILD_EVENT

A change as occurred in the list of children

This is only generated by watches on the child list of a node. These watches are set using Zookeeper::getChildren.

Zookeeper::SESSION_EVENT

A session has been lost

This is generated when a client loses contact or reconnects with a server.

Zookeeper::NOTWATCHING_EVENT

A watch has been removed

This is generated when the server for some reason, probably a resource constraint, will no longer watch a node for a client.

ZooKeeper System and Server-side Errors

Zookeeper::SYSTEMERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value, but lesser than Zookeeper::APIERROR, are system errors.

Zookeeper::RUNTIMEINCONSISTENCY

A runtime inconsistency was found.

Zookeeper::DATAINCONSISTENCY

A data inconsistency was found.

Zookeeper::CONNECTIONLOSS

Connection to the server has been lost.

Zookeeper::MARSHALLINGERROR

Error while marshalling or unmarshalling data.

Zookeeper::UNIMPLEMENTED

Operation is unimplemented.

Zookeeper::OPERATIONTIMEOUT

Operation timeout.

Zookeeper::BADARGUMENTS

Invalid arguments.

Zookeeper::INVALIDSTATE

Invliad zhandle state.

Zookeeper::NEWCONFIGNOQUORUM

No quorum of new config is connected and up-to-date with the leader of last committed config - try invoking reconfiguration after new servers are connected and synced.

Available as of ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Reconfiguration requested while another reconfiguration is currently in progress. This is currently not supported. Please retry.

Available as of ZooKeeper 3.5.0

ZooKeeper API Errors

Zookeeper::OK

Everything is OK.

Zookeeper::APIERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value are API errors (while values less than this indicate a Zookeeper::SYSTEMERROR).

Zookeeper::NONODE

Node does not exist.

Zookeeper::NOAUTH

Not authenticated.

Zookeeper::BADVERSION

Version conflict.

Zookeeper::NOCHILDRENFOREPHEMERALS

Ephemeral nodes may not have children.

Zookeeper::NODEEXISTS

The node already exists.

Zookeeper::NOTEMPTY

The node has children.

Zookeeper::SESSIONEXPIRED

The session has been expired by the server.

Zookeeper::INVALIDCALLBACK

Invalid callback specified.

Zookeeper::INVALIDACL

Invalid ACL specified.

Zookeeper::AUTHFAILED

Client authentication failed.

Zookeeper::CLOSING

ZooKeeper is closing.

Zookeeper::NOTHING

(not error) No server responses to process.

Zookeeper::SESSIONMOVED

Session moved to another server, so operation is ignored.

Zookeeper::NOTREADONLY

State-changing request is passed to read-only server.

Zookeeper::EPHEMERALONLOCALSESSION

Attempt to create ephemeral node on a local session.

Zookeeper::NOWATCHER

The watcher couldn't be found.

Zookeeper::RECONFIGDISABLED

Attempts to perform a reconfiguration operation when reconfiguration feature is disabled.

Table of Contents

To Top