[ 
https://issues.apache.org/jira/browse/HIVE-12927?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alan Gates updated HIVE-12927:
------------------------------
    Attachment: HIVE-12927.patch

This patch does a couple of things:
# It introduces the concept of raw tables in HBaseConnection.  This allows 
HBaseReadWrite to use checkAndPut for tables that aren't part of the 
transaction manager.  This is important because none of the transactions 
managers we're thinking of using (Tephra, Omid) support checkAndPut (nor is it 
clear how any txn manager could).  Thus once a table is declared raw it cannot 
be used in a transaction with any of the tables that would be used in 
transactions.  Currently only the sequences table is declared raw.  Currently 
it is only used to store master keys.  In the future we'll use it to store 
sequences for ACID.
# It changes the sequences table to have a row for each sequence.  Originally 
it had one row with a separate column for each sequence, which is a horrible 
design as it means every sequence has to lock the same row (yes I did that).


> HBase metastore: sequences are not safe
> ---------------------------------------
>
>                 Key: HIVE-12927
>                 URL: https://issues.apache.org/jira/browse/HIVE-12927
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Sergey Shelukhin
>            Priority: Critical
>         Attachments: HIVE-12927.patch
>
>
> {noformat}
>   long getNextSequence(byte[] sequence) throws IOException {
> {noformat}
> Is not safe in presence of any concurrency. It should use HBase increment API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to