vinothchandar commented on a change in pull request #4035:
URL: https://github.com/apache/hudi/pull/4035#discussion_r756393001



##########
File path: 
hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
##########
@@ -138,6 +138,12 @@
       .sinceVersion("0.10.0")
       .withDocumentation("When enabled, populates all meta fields. When 
disabled, no meta fields are populated.");
 
+  public static final ConfigProperty<Boolean> 
VALIDATE_METADATA_PAYLOAD_CONSISTENCY = ConfigProperty
+      .key("_" + METADATA_PREFIX + ".validate.metadata.payload.consistency")
+      .defaultValue(false)
+      .sinceVersion("0.10.10")
+      .withDocumentation("Whether to perform validations on metadata payload 
consistency.");

Review comment:
       this needs to be bit more descriptive

##########
File path: 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/AbstractHoodieWriteClient.java
##########
@@ -218,6 +218,8 @@ protected void commit(HoodieTable table, String 
commitActionType, String instant
     HoodieActiveTimeline activeTimeline = table.getActiveTimeline();
     // Finalize write
     finalizeWrite(table, instantTime, stats);
+    // update Metadata table
+    writeTableMetadata(table, instantTime, commitActionType, metadata);

Review comment:
       so this was missing before?

##########
File path: 
hudi-common/src/main/java/org/apache/hudi/metadata/BaseTableMetadata.java
##########
@@ -157,8 +157,13 @@ protected BaseTableMetadata(HoodieEngineContext 
engineContext, HoodieMetadataCon
     List<String> partitions = Collections.emptyList();
     if (hoodieRecord.isPresent()) {
       if (!hoodieRecord.get().getData().getDeletions().isEmpty()) {

Review comment:
       +1 

##########
File path: 
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieMetadataBase.java
##########
@@ -290,6 +292,7 @@ protected HoodieWriteConfig getWriteConfig(boolean 
autoCommit, boolean useFileLi
             .enableFullScan(enableFullScan)
             .enableMetrics(enableMetrics)
             .withPopulateMetaFields(false)
+        .validateMetadataPayloadConsistency(validateMetadataPayloadConsistency)

Review comment:
       +1 
   
   

##########
File path: 
hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
##########
@@ -138,6 +138,12 @@
       .sinceVersion("0.10.0")
       .withDocumentation("When enabled, populates all meta fields. When 
disabled, no meta fields are populated.");
 
+  public static final ConfigProperty<Boolean> 
VALIDATE_METADATA_PAYLOAD_CONSISTENCY = ConfigProperty
+      .key("_" + METADATA_PREFIX + ".validate.metadata.payload.consistency")
+      .defaultValue(false)
+      .sinceVersion("0.10.10")
+      .withDocumentation("Whether to perform validations on metadata payload 
consistency.");

Review comment:
       can we can this something like `.ignore.spurious.deletes` which is what 
it is. i.e deleting something that did not exist in the first place. 
validatexxxx makes it sound like something essential being turned off

##########
File path: 
hudi-common/src/main/java/org/apache/hudi/metadata/BaseTableMetadata.java
##########
@@ -191,8 +196,13 @@ protected BaseTableMetadata(HoodieEngineContext 
engineContext, HoodieMetadataCon
     FileStatus[] statuses = {};
     if (hoodieRecord.isPresent()) {
       if (!hoodieRecord.get().getData().getDeletions().isEmpty()) {
-        throw new HoodieMetadataException("Metadata record for partition " + 
partitionName + " is inconsistent: "
-            + hoodieRecord.get().getData());
+        if (metadataConfig.validateMetadataPayloadConsistency()) {

Review comment:
       avoid code duplication and use methods?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to