nsivabalan commented on a change in pull request #3820:
URL: https://github.com/apache/hudi/pull/3820#discussion_r733011813
##########
File path:
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/TransactionUtils.java
##########
@@ -111,16 +118,27 @@
}
}
- // override the current metadata with the metadata from the latest instant
for the specified key prefixes
- private static void overrideWithLatestCommitMetadata(HoodieTableMetaClient
metaClient, Option<HoodieCommitMetadata> thisMetadata,
- Option<HoodieInstant> thisInstant, List<String> keyPrefixes) {
+ private static void
mergeCheckpointStateFromPreviousCommit(HoodieTableMetaClient metaClient,
Option<HoodieCommitMetadata> thisMetadata) {
+ overrideWithLatestCommitMetadata(metaClient, thisMetadata,
Collections.singletonList(HoodieWriteConfig.DELTASTREAMER_CHECKPOINT_KEY));
+ }
+
+ /**
+ * Generic method allowing us to override the current metadata with the
metadata from
+ * the latest instant for the specified key prefixes
+ * @param metaClient
+ * @param thisMetadata
+ * @param keyPrefixes The key prefixes to merge from the previous commit
+ */
+ private static void overrideWithLatestCommitMetadata(HoodieTableMetaClient
metaClient,
Review comment:
I don't see a need for this method. we can just embed within
mergeCheckpointStateFromPreviousCommit. basically, rename
overrideWithLatestCommitMetadata to mergeCheckpointStateFromPreviousCommit.
##########
File path:
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java
##########
@@ -368,11 +372,13 @@
+ "OPTIMISTIC_CONCURRENCY_CONTROL: Multiple writers can operate on
the table and exactly one of them succeed "
+ "if a conflict (writes affect the same file group) is detected.");
- public static final ConfigProperty<String> WRITE_META_KEY_PREFIXES =
ConfigProperty
- .key("hoodie.write.meta.key.prefixes")
- .defaultValue("")
- .withDocumentation("Comma separated metadata key prefixes to override
from latest commit "
- + "during overlapping commits via multi writing");
+ public static final ConfigProperty<Boolean>
WRITE_CONCURRENCY_MERGE_DELTASTREAMER_STATE = ConfigProperty
+ .key("hoodie.write.concurrency.merge.deltastreamer.state")
+ .defaultValue(false)
+ .withDocumentation("If enabled, this writer will merge Deltastreamer
state "
+ + "from the previous checkpoint in order to allow both
realtime "
+ + "and batch writers to ingest into a single table. "
+ + "This should not be enabled on Deltastreamer writers.");
Review comment:
do you think we can add in a validation withiin Deltastreamer code base
that this config is not enabled. would be good to tighten it and leave it to
end user.
--
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]