[
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)