hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Hadoop Wiki] Update of "Hive/Locking" by NamitJain
Date Wed, 05 May 2010 18:11:51 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.

The "Hive/Locking" page has been changed by NamitJain.
http://wiki.apache.org/hadoop/Hive/Locking?action=diff&rev1=21&rev2=22

--------------------------------------------------

  The recipe listed above will not work as specified, because of the hierarchical nature of
locks.
  
  The 'S' lock for table T is specified as follows:
-  * Call create( ) to create a node with pathname "/warehouse/T/read-". This is the lock
node used later in the protocol. Make sure to set ephemeral flag.
+  * Call create( ) to create a node with pathname "/warehouse/T/read-". This is the lock
node used later in the protocol. Make sure to set the sequence and ephemeral flag.
   * Call getChildren( ) on the lock node without setting the watch flag.
-  * If there is a child with a pathname starting with "write-", then the lock cannot be acquired.
Delete the node created in the first step and return.
+  * If there is a child with a pathname starting with "write-" and a lower sequence number
than the one obtained, the lock cannot be acquired. Delete the node created in the first step
and return.
   * For all parent znodes of T, call getChildren() without setting the watch flag.
     * If there is a child with a pathname starting with "write-", the lock cannot be acquired.
Delete the node created in the first step and return.
   * Otherwise the lock is granted.
  
  The 'X' lock for table T is specified as follows:
-  * Call create( ) to create a node with pathname "/warehouse/T/write-". This is the lock
node used later in the protocol. Make sure to set the ephemeral flag.
+  * Call create( ) to create a node with pathname "/warehouse/T/write-". This is the lock
node used later in the protocol. Make sure to set the sequence and ephemeral flag.
   * Call getChildren( ) on the lock node without setting the watch flag.
-  * If there is a child with a pathname starting with "read-" or anther one starting with
"write-", then the lock cannot be acquired. Delete the node created in the first step and
return.
+  * If there is a child with a pathname starting with "read-" or "write-" and a lower sequence
number than the one obtained, the lock cannot be acquired. Delete the node created in the
first step and return.
   * For all parent znodes of T, call getChildren() without setting the watch flag.
     * If there is a child with a pathname starting with "read-" or "write-", the lock cannot
be acquired. Delete the node created in the first step and return.
   * For all children znodes of T, call getChildren() without setting the watch flag.

Mime
View raw message