You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "Danny Chen (Jira)" <ji...@apache.org> on 2023/04/28 03:35:00 UTC

[jira] [Closed] (HUDI-6114) Rollback handling in AbstractHoodieLogRecordReader may not work correctly when multi-writer is enabled

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

Danny Chen closed HUDI-6114.
----------------------------
    Resolution: Fixed

Fixed via master branch: a8c7d48325a74663dd4a4de8d1d8c0407eb7c258

> Rollback handling in AbstractHoodieLogRecordReader may not work correctly when multi-writer is enabled
> ------------------------------------------------------------------------------------------------------
>
>                 Key: HUDI-6114
>                 URL: https://issues.apache.org/jira/browse/HUDI-6114
>             Project: Apache Hudi
>          Issue Type: Bug
>            Reporter: Prashant Wason
>            Assignee: Prashant Wason
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 0.13.1, 0.14.0
>
>
> When a ROLLBACK command block is encountered, only the last log block is potentially rolled back. This may not work in case of multi-writers where the rollback may be aplicable to an older block.
> E.g. Assume two processed P1 and P2 which are writing data to the MOR table. P1 started at time t1 and P2 started at t2. Lets assume P1 writes the log block and then p2 writes the log block.
>  
> So the log file has two blocks now [LBlock1(instantTime=t1), LBlock2(instantTime=t2)]
> If the P1 failed after writing to log file but before the commit could be created, the inflight commit at t1 would eventually be rolled back. In that case a rollback block will be written. The log file would look like this:
> [LBlock1(instantTime=t1), LBlock2(instantTime=t2), LBlock(Rollback block with targetInstantTime=t1)]
>  
> The current AbstractHoodieLogRecordReader code will not rollback LBlock1 as it only applies rollback to the last block.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)