[HUDI-1425] Performance loss with the additional hoodieRecords.isEmpty() in HoodieSparkSqlWriter#write (#2296)
This commit is contained in:
@@ -172,6 +172,11 @@ public abstract class AbstractHoodieWriteClient<T extends HoodieRecordPayload, I
|
||||
|
||||
public boolean commitStats(String instantTime, List<HoodieWriteStat> stats, Option<Map<String, String>> extraMetadata,
|
||||
String commitActionType, Map<String, List<String>> partitionToReplaceFileIds) {
|
||||
// Skip the empty commit if not allowed
|
||||
if (!config.allowEmptyCommit() && stats.isEmpty()) {
|
||||
return true;
|
||||
}
|
||||
LOG.info("Committing " + instantTime + " action " + commitActionType);
|
||||
// Create a Hoodie table which encapsulated the commits and files visible
|
||||
HoodieTable table = createTable(config, hadoopConf);
|
||||
HoodieCommitMetadata metadata = CommitUtils.buildMetadata(stats, partitionToReplaceFileIds,
|
||||
|
||||
@@ -367,6 +367,12 @@ public class HoodieWriteConfig extends HoodieConfig {
|
||||
.withDocumentation("When enabled, records in older schema are rewritten into newer schema during upsert,delete and background"
|
||||
+ " compaction,clustering operations.");
|
||||
|
||||
public static final ConfigProperty<Boolean> ALLOW_EMPTY_COMMIT = ConfigProperty
|
||||
.key("hoodie.allow.empty.commit")
|
||||
.defaultValue(true)
|
||||
.withDocumentation("Whether to allow generation of empty commits, even if no data was written in the commit. "
|
||||
+ "It's useful in cases where extra metadata needs to be published regardless e.g tracking source offsets when ingesting data");
|
||||
|
||||
private ConsistencyGuardConfig consistencyGuardConfig;
|
||||
|
||||
// Hoodie Write Client transparently rewrites File System View config when embedded mode is enabled
|
||||
@@ -1275,6 +1281,10 @@ public class HoodieWriteConfig extends HoodieConfig {
|
||||
return getString(WRITE_META_KEY_PREFIXES_PROP);
|
||||
}
|
||||
|
||||
public boolean allowEmptyCommit() {
|
||||
return getBooleanOrDefault(ALLOW_EMPTY_COMMIT);
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
protected final HoodieWriteConfig writeConfig = new HoodieWriteConfig();
|
||||
|
||||
Reference in New Issue
Block a user