You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/08/20 02:18:00 UTC
[jira] [Updated] (HUDI-2338) Hoodie data update reject clustering
using SparkRejectClusteringStrategy
[ https://issues.apache.org/jira/browse/HUDI-2338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated HUDI-2338:
---------------------------------
Labels: pull-request-available (was: )
> Hoodie data update reject clustering using SparkRejectClusteringStrategy
> ------------------------------------------------------------------------
>
> Key: HUDI-2338
> URL: https://issues.apache.org/jira/browse/HUDI-2338
> Project: Apache Hudi
> Issue Type: Task
> Reporter: Yue Zhang
> Priority: Major
> Labels: pull-request-available
>
> Hudi now support async clustering in HoodieDeltaStreamer and StructStreaming and support offline clustering through HoodieClusteringJob.
> Data update conflicts with clustering is one of the more common scenarios. And now hudi can only reject data using SparkRejectUpdateStrategy and failed the ingestion.
> Sometimes, we think that clustering is an optimization service that runs in the background, and data ingestion has a higher priority than it.
> So this tickets add a new UpdateStrategy named SparkRejectClusteringStrategy.
> This SparkRejectClusteringStrategy will reject and failing clustering job and let data update success.
> When update happened after clustering plan created and before clustering executed.When update happened after clustering plan created and before clustering executed.
> 1. There will be a request replace commit.
> 2. SparkRejectClusteringStrategy will create a clustering reject file under .tmp dir named xxx.replacement.request.reject.
> 3. Before perform clustering job, hudi can check this reject file using SparkRejectClusteringStrategy.validateClustering() function.
> 3.1 if reject file is exists then abort this clustering plan and remove reject file.
> When update happened after clustering executed but not finished.
> 1. There will be a inflight replace commit.
> 2. SparkRejectClusteringStrategy will create a clustering reject file under .tmp dir named xxx.replacement.inflight.reject.
> 3. Before clustering job finished and committed, hudi can check this reject file using SparkRejectClusteringStrategy.validateClustering() function.
> 3.1 if reject file is exists then failed this clustering execution and remove reject file.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)