Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.0
-
None
Description
Have compactor open a transaction and run the job in that transaction.
- make compactor produced base/delta include this txn id in the folder name, e.g. base_7_c17 where 17 is the txnid.
- add CQ_TXN_ID bigint to COMPACTION_QUEUE and COMPLETED_COMPACTIONS to record this txn id
- make sure AcidUtils.getAcidState() pays attention to this transaction on read and ignores this dir if this txn id is not committed in the current snapshot
- this means not only validWriteIdList but ValidTxnIdList should be passed along in config (if it isn't yet)
- once this is done, CompactorMR.createCompactorMarker() can be eliminated and AcidUtils.isValidBase modified accordingly
- modify Cleaner so that it doesn't clean old files until new file is visible to all readers
Attachments
Attachments
Issue Links
- causes
-
HIVE-21213 Acid table bootstrap replication needs to handle directory created by compaction with txn id
- Closed
- is depended upon by
-
HIVE-22755 Cleaner/Compaction can skip the read locks and use the min open txn id
- Open
- is required by
-
HIVE-20960 Make MM compactor run in a transaction and remove CompactorMR.createCompactorMarker()
- Closed
- relates to
-
HIVE-20948 Eliminate file rename in compactor
- Resolved
-
HIVE-20901 running compactor when there is nothing to do produces duplicate data
- Closed
-
HIVE-20699 Query based compactor for full CRUD Acid tables
- Resolved
- supercedes
-
HIVE-18772 Make Acid Cleaner use MIN_HISTORY_LEVEL
- Closed
- links to