[HUDI-3072] Fixing conflict resolution in transaction management code path for auto commit code path (#4588)
* Fixing conflict resolution in transaction management code path for auto commit code path * Addressing comments * Fixing test failures
This commit is contained in:
committed by
GitHub
parent
cfde45b548
commit
e00a9042e9
@@ -181,6 +181,11 @@ public class SparkBootstrapCommitActionExecutor<T extends HoodieRecordPayload<T>
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setCommitMetadata(HoodieWriteMetadata<JavaRDD<WriteStatus>> result) {
|
||||
result.setCommitMetadata(Option.of(new HoodieCommitMetadata()));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void commit(Option<Map<String, String>> extraMetadata, HoodieWriteMetadata<JavaRDD<WriteStatus>> result) {
|
||||
// Perform bootstrap index write and then commit. Make sure both record-key and bootstrap-index
|
||||
|
||||
@@ -273,6 +273,13 @@ public abstract class BaseSparkCommitActionExecutor<T extends HoodieRecordPayloa
|
||||
return table.getMetaClient().getCommitActionType();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setCommitMetadata(HoodieWriteMetadata<JavaRDD<WriteStatus>> result) {
|
||||
result.setCommitMetadata(Option.of(CommitUtils.buildMetadata(result.getWriteStatuses().map(WriteStatus::getStat).collect(),
|
||||
result.getPartitionToReplaceFileIds(),
|
||||
extraMetadata, operationType, getSchemaToStoreInCommit(), getCommitActionType())));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void commit(Option<Map<String, String>> extraMetadata, HoodieWriteMetadata<JavaRDD<WriteStatus>> result) {
|
||||
context.setJobStatus(this.getClass().getSimpleName(), "Commit write status collect");
|
||||
@@ -288,8 +295,7 @@ public abstract class BaseSparkCommitActionExecutor<T extends HoodieRecordPayloa
|
||||
finalizeWrite(instantTime, writeStats, result);
|
||||
try {
|
||||
HoodieActiveTimeline activeTimeline = table.getActiveTimeline();
|
||||
HoodieCommitMetadata metadata = CommitUtils.buildMetadata(writeStats, result.getPartitionToReplaceFileIds(),
|
||||
extraMetadata, operationType, getSchemaToStoreInCommit(), getCommitActionType());
|
||||
HoodieCommitMetadata metadata = result.getCommitMetadata().get();
|
||||
writeTableMetadata(metadata, actionType);
|
||||
activeTimeline.saveAsComplete(new HoodieInstant(true, getCommitActionType(), instantTime),
|
||||
Option.of(metadata.toJsonString().getBytes(StandardCharsets.UTF_8)));
|
||||
|
||||
Reference in New Issue
Block a user