From 7c213f9f260fa911db3fbdbc74cb4f723edf3dbc Mon Sep 17 00:00:00 2001 From: Danny Chan Date: Fri, 21 May 2021 11:29:54 +0800 Subject: [PATCH] [HUDI-1917] Remove the metadata sync logic in HoodieFlinkWriteClient#preWrite because it is not thread safe (#2971) --- .../apache/hudi/client/HoodieFlinkWriteClient.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkWriteClient.java b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkWriteClient.java index 9ba0961a8..aa930f7b0 100644 --- a/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkWriteClient.java +++ b/hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/HoodieFlinkWriteClient.java @@ -20,7 +20,6 @@ package org.apache.hudi.client; import org.apache.hudi.client.common.HoodieFlinkEngineContext; import org.apache.hudi.client.embedded.EmbeddedTimelineService; -import org.apache.hudi.client.utils.TransactionUtils; import org.apache.hudi.common.engine.HoodieEngineContext; import org.apache.hudi.common.fs.FSUtils; import org.apache.hudi.common.model.FileSlice; @@ -243,15 +242,9 @@ public class HoodieFlinkWriteClient extends @Override protected void preWrite(String instantTime, WriteOperationType writeOperationType, HoodieTableMetaClient metaClient) { setOperationType(writeOperationType); - this.lastCompletedTxnAndMetadata = TransactionUtils.getLastCompletedTxnInstantAndMetadata(metaClient); - this.txnManager.beginTransaction(Option.of(new HoodieInstant(HoodieInstant.State.INFLIGHT, metaClient.getCommitActionType(), instantTime)), lastCompletedTxnAndMetadata - .isPresent() - ? Option.of(lastCompletedTxnAndMetadata.get().getLeft()) : Option.empty()); - try { - syncTableMetadata(); - } finally { - this.txnManager.endTransaction(); - } + // Note: the code to read the commit metadata is not thread safe for JSON deserialization, + // remove the table metadata sync + // remove the async cleaning }