From 84404829777dafb68b8b9903015016a1549d54a4 Mon Sep 17 00:00:00 2001 From: lamber-ken Date: Sun, 29 Dec 2019 07:27:59 +0800 Subject: [PATCH] Fix empty content clean plan --- .../org/apache/hudi/io/HoodieCommitArchiveLog.java | 11 ++++------- .../common/table/timeline/HoodieActiveTimeline.java | 4 ++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java b/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java index a6a2aed68..e918b709c 100644 --- a/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java +++ b/hudi-client/src/main/java/org/apache/hudi/io/HoodieCommitArchiveLog.java @@ -249,7 +249,6 @@ public class HoodieCommitArchiveLog { LOG.info("Wrapper schema " + wrapperSchema.toString()); List records = new ArrayList<>(); for (HoodieInstant hoodieInstant : instants) { - try { records.add(convertToAvroRecord(commitTimeline, hoodieInstant)); if (records.size() >= this.config.getCommitArchivalBatchSize()) { @@ -291,7 +290,7 @@ public class HoodieCommitArchiveLog { case HoodieTimeline.CLEAN_ACTION: { if (hoodieInstant.isCompleted()) { archivedMetaWrapper.setHoodieCleanMetadata(CleanerUtils.getCleanerMetadata(metaClient, hoodieInstant)); - } else if (HoodieInstant.State.REQUESTED != hoodieInstant.getState()) { + } else { archivedMetaWrapper.setHoodieCleanerPlan(CleanerUtils.getCleanerPlan(metaClient, hoodieInstant)); } archivedMetaWrapper.setActionType(ActionType.clean.name()); @@ -317,11 +316,9 @@ public class HoodieCommitArchiveLog { break; } case HoodieTimeline.DELTA_COMMIT_ACTION: { - if (HoodieInstant.State.REQUESTED != hoodieInstant.getState()) { - HoodieCommitMetadata commitMetadata = HoodieCommitMetadata - .fromBytes(commitTimeline.getInstantDetails(hoodieInstant).get(), HoodieCommitMetadata.class); - archivedMetaWrapper.setHoodieCommitMetadata(commitMetadataConverter(commitMetadata)); - } + HoodieCommitMetadata commitMetadata = HoodieCommitMetadata + .fromBytes(commitTimeline.getInstantDetails(hoodieInstant).get(), HoodieCommitMetadata.class); + archivedMetaWrapper.setHoodieCommitMetadata(commitMetadataConverter(commitMetadata)); archivedMetaWrapper.setActionType(ActionType.commit.name()); break; } diff --git a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieActiveTimeline.java b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieActiveTimeline.java index a20353b08..dc2b1caeb 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieActiveTimeline.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieActiveTimeline.java @@ -472,8 +472,8 @@ public class HoodieActiveTimeline extends HoodieDefaultTimeline { Preconditions.checkArgument(instant.getState().equals(State.REQUESTED)); // Write workload to auxiliary folder createFileInAuxiliaryFolder(instant, content); - // Plan is only stored in auxiliary folder - createFileInMetaPath(instant.getFileName(), Option.empty(), false); + // Plan is only stored in auxiliary folder, here stored in meta path + createFileInMetaPath(instant.getFileName(), content, false); } private void createFileInMetaPath(String filename, Option content, boolean allowOverwrite) {