org.apache.solr.client.solrj.impl

## Class ZkDistribStateManager

- java.lang.Object
- - org.apache.solr.client.solrj.impl.ZkDistribStateManager

All Implemented Interfaces:
  Closeable, AutoCloseable, DistribStateManager, SolrCloseable

    public class ZkDistribStateManager
    extends Object
    implements DistribStateManager

Implementation of `DistribStateManager` that uses Zookeeper.

### Constructor Summary

Constructors
Constructor and Description
`ZkDistribStateManager(SolrZkClient zkClient)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()`
`String` `createData(String path, byte[] data, org.apache.zookeeper.CreateMode mode)` Create data (leaf) node at specified path.
`AutoScalingConfig` `getAutoScalingConfig(org.apache.zookeeper.Watcher watcher)`
`VersionedData` `getData(String path, org.apache.zookeeper.Watcher watcher)`
`PerReplicaStates` `getReplicaStates(String path)`
`SolrZkClient` `getZkClient()`
`boolean` `hasData(String path)`
`List<String>` `listData(String path)`
`List<String>` `listData(String path, org.apache.zookeeper.Watcher watcher)`
`void` `makePath(String path)`
`void` `makePath(String path, byte[] data, org.apache.zookeeper.CreateMode createMode, boolean failOnExists)`
`List<org.apache.zookeeper.OpResult>` `multi(Iterable<org.apache.zookeeper.Op> ops)`
`void` `removeData(String path, int version)`
`void` `setData(String path, byte[] data, int version)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.solr.client.solrj.cloud.DistribStateManager

`getAutoScalingConfig, getData, listTree, removeRecursively`

### Methods inherited from interface org.apache.solr.common.SolrCloseable

`isClosed`

### Constructor Detail

#### ZkDistribStateManager

    public ZkDistribStateManager(SolrZkClient zkClient)

### Method Detail

#### hasData

    public boolean hasData(String path)
                    throws IOException,
                           org.apache.zookeeper.KeeperException,
                           InterruptedException

Specified by:
  `hasData` in interface `DistribStateManager`
Throws:
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### listData

    public List<String> listData(String path,
                                 org.apache.zookeeper.Watcher watcher)
                          throws NoSuchElementException,
                                 IOException,
                                 org.apache.zookeeper.KeeperException,
                                 InterruptedException

Specified by:
  `listData` in interface `DistribStateManager`
Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### listData

    public List<String> listData(String path)
                          throws NoSuchElementException,
                                 IOException,
                                 org.apache.zookeeper.KeeperException,
                                 InterruptedException

Specified by:
  `listData` in interface `DistribStateManager`
Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### getData

    public VersionedData getData(String path,
                                 org.apache.zookeeper.Watcher watcher)
                          throws NoSuchElementException,
                                 IOException,
                                 org.apache.zookeeper.KeeperException,
                                 InterruptedException

Specified by:
  `getData` in interface `DistribStateManager`
Throws:
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### makePath

    public void makePath(String path)
                  throws AlreadyExistsException,
                         IOException,
                         org.apache.zookeeper.KeeperException,
                         InterruptedException

Specified by:
  `makePath` in interface `DistribStateManager`
Throws:
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### makePath

    public void makePath(String path,
                         byte[] data,
                         org.apache.zookeeper.CreateMode createMode,
                         boolean failOnExists)
                  throws AlreadyExistsException,
                         IOException,
                         org.apache.zookeeper.KeeperException,
                         InterruptedException

Specified by:
  `makePath` in interface `DistribStateManager`
Throws:
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### createData

    public String createData(String path,
                             byte[] data,
                             org.apache.zookeeper.CreateMode mode)
                      throws NoSuchElementException,
                             AlreadyExistsException,
                             IOException,
                             org.apache.zookeeper.KeeperException,
                             InterruptedException

Description copied from interface: `DistribStateManager`
Create data (leaf) node at specified path.

Specified by:
  `createData` in interface `DistribStateManager`
Parameters:
  `path` - base path name of the node.
  `data` - data to be stored.
  `mode` - creation mode.
Returns:
  actual path of the node - in case of sequential nodes this will differ from the base path because of the appended sequence number.
Throws:
  `NoSuchElementException`
  `AlreadyExistsException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### removeData

    public void removeData(String path,
                           int version)
                    throws NoSuchElementException,
                           BadVersionException,
                           NotEmptyException,
                           IOException,
                           org.apache.zookeeper.KeeperException,
                           InterruptedException

Specified by:
  `removeData` in interface `DistribStateManager`
Throws:
  `NoSuchElementException`
  `BadVersionException`
  `NotEmptyException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### setData

    public void setData(String path,
                        byte[] data,
                        int version)
                 throws BadVersionException,
                        NoSuchElementException,
                        IOException,
                        org.apache.zookeeper.KeeperException,
                        InterruptedException

Specified by:
  `setData` in interface `DistribStateManager`
Throws:
  `BadVersionException`
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### multi

    public List<org.apache.zookeeper.OpResult> multi(Iterable<org.apache.zookeeper.Op> ops)
                                              throws BadVersionException,
                                                     AlreadyExistsException,
                                                     NoSuchElementException,
                                                     IOException,
                                                     org.apache.zookeeper.KeeperException,
                                                     InterruptedException

Specified by:
  `multi` in interface `DistribStateManager`
Throws:
  `BadVersionException`
  `AlreadyExistsException`
  `NoSuchElementException`
  `IOException`
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### getAutoScalingConfig

    public AutoScalingConfig getAutoScalingConfig(org.apache.zookeeper.Watcher watcher)
                                           throws InterruptedException,
                                                  IOException

Specified by:
  `getAutoScalingConfig` in interface `DistribStateManager`
Throws:
  `InterruptedException`
  `IOException`

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Throws:
  `IOException`

#### getZkClient

    public SolrZkClient getZkClient()

#### getReplicaStates

    public PerReplicaStates getReplicaStates(String path)
                                      throws org.apache.zookeeper.KeeperException,
                                             InterruptedException

Specified by:
  `getReplicaStates` in interface `DistribStateManager`
Throws:
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`