You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by si...@apache.org on 2022/10/24 23:24:14 UTC
[hudi] branch master updated: [MINOR] Skip loading last completed txn for single writer (#6660)
This is an automated email from the ASF dual-hosted git repository.
sivabalan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new ceb402564d [MINOR] Skip loading last completed txn for single writer (#6660)
ceb402564d is described below
commit ceb402564de8fa83acc4f23792b9a08576b56f99
Author: Yuwei XIAO <yw...@gmail.com>
AuthorDate: Tue Oct 25 07:24:09 2022 +0800
[MINOR] Skip loading last completed txn for single writer (#6660)
Co-authored-by: sivabalan <n....@gmail.com>
---
.../src/main/java/org/apache/hudi/client/BaseHoodieWriteClient.java | 3 ++-
.../java/org/apache/hudi/client/transaction/TransactionManager.java | 3 +++
.../org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java | 3 ++-
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieWriteClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieWriteClient.java
index 146889c8db..4a3f6bd311 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieWriteClient.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieWriteClient.java
@@ -492,7 +492,8 @@ public abstract class BaseHoodieWriteClient<T extends HoodieRecordPayload, I, K,
public void preWrite(String instantTime, WriteOperationType writeOperationType,
HoodieTableMetaClient metaClient) {
setOperationType(writeOperationType);
- this.lastCompletedTxnAndMetadata = TransactionUtils.getLastCompletedTxnInstantAndMetadata(metaClient);
+ this.lastCompletedTxnAndMetadata = txnManager.isOptimisticConcurrencyControlEnabled()
+ ? TransactionUtils.getLastCompletedTxnInstantAndMetadata(metaClient) : Option.empty();
this.pendingInflightAndRequestedInstants = TransactionUtils.getInflightAndRequestedInstants(metaClient);
this.pendingInflightAndRequestedInstants.remove(instantTime);
if (null == this.asyncCleanerService) {
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/TransactionManager.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/TransactionManager.java
index e9329fece6..bcf8ef6ea5 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/TransactionManager.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/TransactionManager.java
@@ -97,4 +97,7 @@ public class TransactionManager implements Serializable {
return currentTxnOwnerInstant;
}
+ public boolean isOptimisticConcurrencyControlEnabled() {
+ return isOptimisticConcurrencyControlEnabled;
+ }
}
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java
index 1227c444f2..5f406d8920 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/BaseCommitActionExecutor.java
@@ -91,7 +91,8 @@ public abstract class BaseCommitActionExecutor<T extends HoodieRecordPayload, I,
this.taskContextSupplier = context.getTaskContextSupplier();
// TODO : Remove this once we refactor and move out autoCommit method from here, since the TxnManager is held in {@link BaseHoodieWriteClient}.
this.txnManager = new TransactionManager(config, table.getMetaClient().getFs());
- this.lastCompletedTxn = TransactionUtils.getLastCompletedTxnInstantAndMetadata(table.getMetaClient());
+ this.lastCompletedTxn = txnManager.isOptimisticConcurrencyControlEnabled()
+ ? TransactionUtils.getLastCompletedTxnInstantAndMetadata(table.getMetaClient()) : Option.empty();
this.pendingInflightAndRequestedInstants = TransactionUtils.getInflightAndRequestedInstants(table.getMetaClient());
this.pendingInflightAndRequestedInstants.remove(instantTime);
if (!table.getStorageLayout().writeOperationSupported(operationType)) {