org.apache.hadoop.hbase.zookeeper.lock
Class ZKInterProcessWriteLock

java.lang.Object
  extended by org.apache.hadoop.hbase.zookeeper.lock.ZKInterProcessLockBase
      extended by org.apache.hadoop.hbase.zookeeper.lock.ZKInterProcessWriteLock
All Implemented Interfaces:
InterProcessLock

@InterfaceAudience.Private
public class ZKInterProcessWriteLock
extends ZKInterProcessLockBase

ZooKeeper based write lock:


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.hadoop.hbase.zookeeper.lock.ZKInterProcessLockBase
ZKInterProcessLockBase.AcquiredLock, ZKInterProcessLockBase.ZNodeComparator
 
Nested classes/interfaces inherited from interface org.apache.hadoop.hbase.InterProcessLock
InterProcessLock.MetadataHandler
 
Field Summary
 
Fields inherited from class org.apache.hadoop.hbase.zookeeper.lock.ZKInterProcessLockBase
acquiredLock, childZNode, fullyQualifiedZNode, handler, metadata, parentLockNode, READ_LOCK_CHILD_NODE_PREFIX, WRITE_LOCK_CHILD_NODE_PREFIX, zkWatcher
 
Constructor Summary
ZKInterProcessWriteLock(ZooKeeperWatcher zooKeeperWatcher, String znode, byte[] metadata, InterProcessLock.MetadataHandler handler)
           
 
Method Summary
protected  String getLockPath(String createdZNode, List<String> children)
          Determine based on a list of children under a ZNode, whether or not a process which created a specified ZNode has obtained a lock.
 
Methods inherited from class org.apache.hadoop.hbase.zookeeper.lock.ZKInterProcessLockBase
acquire, handleLockMetadata, handleLockMetadata, isChildOfSameType, isChildReadLock, isChildWriteLock, reapAllLocks, reapExpiredLocks, release, tryAcquire, updateAcquiredLock, visitLocks
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ZKInterProcessWriteLock

public ZKInterProcessWriteLock(ZooKeeperWatcher zooKeeperWatcher,
                               String znode,
                               byte[] metadata,
                               InterProcessLock.MetadataHandler handler)
Method Detail

getLockPath

protected String getLockPath(String createdZNode,
                             List<String> children)
                      throws IOException
Determine based on a list of children under a ZNode, whether or not a process which created a specified ZNode has obtained a lock. If a lock is not obtained, return the path that we should watch awaiting its deletion. Otherwise, return null. This method is abstract as the logic for determining whether or not a lock is obtained depends on the type of lock being implemented.

Specified by:
getLockPath in class ZKInterProcessLockBase
Parameters:
createdZNode - The ZNode created by the process attempting to acquire a lock
children - List of all child ZNodes under the lock's parent ZNode
Returns:
The path to watch, or null if myZNode can represent a correctly acquired lock.
Throws:
IOException


Copyright © 2015 The Apache Software Foundation. All rights reserved.