You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "Alexey Kudinkin (Jira)" <ji...@apache.org> on 2022/03/07 21:40:00 UTC

[jira] [Closed] (HUDI-3365) Make sure Metadata Records always bear full file-size

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

Alexey Kudinkin closed HUDI-3365.
---------------------------------
    Resolution: Fixed

> Make sure Metadata Records always bear full file-size
> -----------------------------------------------------
>
>                 Key: HUDI-3365
>                 URL: https://issues.apache.org/jira/browse/HUDI-3365
>             Project: Apache Hudi
>          Issue Type: Bug
>            Reporter: Alexey Kudinkin
>            Assignee: Alexey Kudinkin
>            Priority: Blocker
>              Labels: HUDI-bug, pull-request-available
>             Fix For: 0.11.0
>
>
> Currently, when log-file is appended the Metadata Table record w/ the size of appended delta will be submitted to MT. 
> MT, in turn, will sum it up with whatever record is currently persisted there at the moment (REF: [https://github.com/apache/hudi/blob/master/hudi-common/src/main/java/org/apache/hudi/metadata/HoodieMetadataPayload.java#L227)]
>  
> This is problematic in multiple ways:
>  # We're abusing FileStatus interface which unequivocally relates the size as a full file-size.
>  # MT receiving new record can't determine whether it's received a delta or a new record that have to override the old one. As such, it stick to the protocol, that if record already exists it will treat new one as a delta.
> This behavior is very implicit, and there are currently at least one bug where actually full file-size is provided, while it would lead to the incorrect file size being stored in MT.
>  
> Proposal: Unify the data flow and always provide full, up-to-date file-size to the MT. Even in the log-file appending flow, we do have a way to reconstruct full file-size (from `AppendResult`, w/o additional `getFileStatus` necessary
>  
> Currently, when log-file is appended (on FS that supports it), only the appended delta will be submitted w/in records to MT



--
This message was sent by Atlassian Jira
(v8.20.1#820001)