[
https://issues.apache.org/jira/browse/HIVE-16534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15989294#comment-15989294
]
Eugene Koifman commented on HIVE-16534:
---------------------------------------
another thought: I think implementation of isTxnRangeAborted() is problematic
suppose we do an insert in Table1/part1 with txnid=5. Then there is no
activity on this table for a month.
Then there is another insert into Table1/part1 with txnid=1000000.
After compaction we get a delta_5_1000000.
so now this method is going to do 1M binary searches....
If (isAborted(minTxnId) && isAborted(maxTxnId) && (the number of on bits in
BitSet between index of minTxnId and maxTxnId is max - min + 1) - then all txns
in range in question are aborted - this gives ALL
I'm not sure how to do NONE/SOME efficiently
> Add capability to tell aborted transactions apart from open transactions in
> ValidTxnList
> ----------------------------------------------------------------------------------------
>
> Key: HIVE-16534
> URL: https://issues.apache.org/jira/browse/HIVE-16534
> Project: Hive
> Issue Type: Bug
> Components: Transactions
> Reporter: Wei Zheng
> Assignee: Wei Zheng
> Attachments: HIVE-16534.1.patch, HIVE-16534.2.patch
>
>
> Currently in ValidReadTxnList, open transactions and aborted transactions are
> stored together in one array. That makes it impossible to extract just
> aborted transactions or open transactions.
> For ValidCompactorTxnList this is fine, since we only store aborted
> transactions but no open transactions.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)