[HUDI-3252] Avoid creating empty requestedReplaceCommit in the startCommit method (#4515)
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
|
||||
package org.apache.hudi.common.table.timeline;
|
||||
|
||||
import org.apache.hudi.avro.model.HoodieRequestedReplaceMetadata;
|
||||
import org.apache.hudi.common.table.HoodieTableMetaClient;
|
||||
import org.apache.hudi.common.table.timeline.HoodieInstant.State;
|
||||
import org.apache.hudi.common.util.FileIOUtils;
|
||||
@@ -156,6 +157,18 @@ public class HoodieActiveTimeline extends HoodieDefaultTimeline {
|
||||
createFileInMetaPath(instant.getFileName(), Option.empty(), false);
|
||||
}
|
||||
|
||||
public void createRequestedReplaceCommit(String instantTime, String actionType) {
|
||||
try {
|
||||
HoodieInstant instant = new HoodieInstant(State.REQUESTED, actionType, instantTime);
|
||||
LOG.info("Creating a new instant " + instant);
|
||||
// Create the request replace file
|
||||
createFileInMetaPath(instant.getFileName(),
|
||||
TimelineMetadataUtils.serializeRequestedReplaceMetadata(new HoodieRequestedReplaceMetadata()), false);
|
||||
} catch (IOException e) {
|
||||
throw new HoodieIOException("Error create requested replace commit ", e);
|
||||
}
|
||||
}
|
||||
|
||||
public void saveAsComplete(HoodieInstant instant, Option<byte[]> data) {
|
||||
LOG.info("Marking instant complete " + instant);
|
||||
ValidationUtils.checkArgument(instant.isInflight(),
|
||||
|
||||
@@ -77,7 +77,7 @@ public class ClusteringUtils {
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
public static Option<HoodieRequestedReplaceMetadata> getRequestedReplaceMetadata(HoodieTableMetaClient metaClient, HoodieInstant pendingReplaceInstant) throws IOException {
|
||||
private static Option<HoodieRequestedReplaceMetadata> getRequestedReplaceMetadata(HoodieTableMetaClient metaClient, HoodieInstant pendingReplaceInstant) throws IOException {
|
||||
final HoodieInstant requestedInstant;
|
||||
if (!pendingReplaceInstant.isRequested()) {
|
||||
// inflight replacecommit files don't have clustering plan.
|
||||
|
||||
Reference in New Issue
Block a user