[
https://issues.apache.org/jira/browse/HIVE-29572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marta Kuczora resolved HIVE-29572.
----------------------------------
Fix Version/s: 4.3.0
Resolution: Won't Fix
> ACID Compaction: Cleaner should mark a compaction failed when its txn is
> aborted
> --------------------------------------------------------------------------------
>
> Key: HIVE-29572
> URL: https://issues.apache.org/jira/browse/HIVE-29572
> Project: Hive
> Issue Type: Task
> Reporter: Marta Kuczora
> Assignee: Marta Kuczora
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.3.0
>
>
> It can happen that a compaction is marked as finished and get into "ready for
> cleaning" state, but the compaction txn stays open. And when the timeout
> reached, the txn gets aborted.
> With min.history.level, a compaction like this can block the cleaning for all
> consecutive compaction.
> This is what happens:
> * Cleaner picks compaction1 and finds nothing to delete, because it doesn’t
> find valid base (which is correct as this cleaner should only see what
> compaction 1 did and its txn is not committed)
> * Deletes nothing but finds obsolete deltas (because here the txn range is
> cleared and finds the base), so puts back the compaction to the queue with
> ‘ready-for-cleaning’ state.
> * The other compaction’s are not fetched by the cleaner.
> * The problem is that even after the txn of compaction 1 is aborted, the
> same will happen, so the cleaner will be blocked forever.
> To avoid this blocking, the cleaner should check the state of the compaction
> txn and if it is already aborted, mark the compaction as failed and delete
> nothing.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)