This is an automated email from the ASF dual-hosted git repository.
danny0405 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 4efc241d7a8 [MINOR] Avoid wrong way to get the latest completed
instant (#12590)
4efc241d7a8 is described below
commit 4efc241d7a89f7736b79ef0d16deab796e9e05f5
Author: TheR1sing3un <[email protected]>
AuthorDate: Wed Jan 8 15:41:34 2025 +0800
[MINOR] Avoid wrong way to get the latest completed instant (#12590)
1. avoid wrong way to get the latest completed instant
Signed-off-by: TheR1sing3un <[email protected]>
---
.../java/org/apache/hudi/aws/sync/AWSGlueCatalogSyncClient.java | 6 +-----
.../org/apache/hudi/common/table/timeline/HoodieTimeline.java | 2 +-
.../apache/spark/sql/hudi/streaming/HoodieStreamSourceV1.scala | 6 +-----
.../main/java/org/apache/hudi/sync/datahub/DataHubSyncClient.java | 8 +-------
.../src/main/java/org/apache/hudi/hive/HoodieHiveSyncClient.java | 7 +------
.../src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java | 4 +---
6 files changed, 6 insertions(+), 27 deletions(-)
diff --git
a/hudi-aws/src/main/java/org/apache/hudi/aws/sync/AWSGlueCatalogSyncClient.java
b/hudi-aws/src/main/java/org/apache/hudi/aws/sync/AWSGlueCatalogSyncClient.java
index 506023b22a7..829242c72db 100644
---
a/hudi-aws/src/main/java/org/apache/hudi/aws/sync/AWSGlueCatalogSyncClient.java
+++
b/hudi-aws/src/main/java/org/apache/hudi/aws/sync/AWSGlueCatalogSyncClient.java
@@ -896,11 +896,7 @@ public class AWSGlueCatalogSyncClient extends
HoodieSyncClient {
HoodieTimeline activeTimeline = getActiveTimeline();
Option<String> lastCommitSynced =
activeTimeline.lastInstant().map(HoodieInstant::requestedTime);
Option<String> lastCommitCompletionSynced = activeTimeline
- .getInstantsOrderedByCompletionTime()
- .skip(activeTimeline.countInstants() - 1)
- .findFirst()
- .map(i -> Option.of(i.getCompletionTime()))
- .orElse(Option.empty());
+ .getLatestCompletionTime();
if (lastCommitSynced.isPresent()) {
try {
HashMap<String, String> propertyMap = new HashMap<>();
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieTimeline.java
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieTimeline.java
index 33ea149e148..cadf45574d4 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieTimeline.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieTimeline.java
@@ -405,7 +405,7 @@ public interface HoodieTimeline extends Serializable {
Option<String> getLatestCompletionTime();
/**
- * Get the stream of instants in order by state transition timestamp of
actions.
+ * Get the stream of instants in order by completion timestamp of actions.
*/
Stream<HoodieInstant> getInstantsOrderedByCompletionTime();
diff --git
a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/hudi/streaming/HoodieStreamSourceV1.scala
b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/hudi/streaming/HoodieStreamSourceV1.scala
index a43b77551a8..82a7e804656 100644
---
a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/hudi/streaming/HoodieStreamSourceV1.scala
+++
b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/hudi/streaming/HoodieStreamSourceV1.scala
@@ -107,11 +107,7 @@ class HoodieStreamSourceV1(sqlContext: SQLContext,
filteredTimeline match {
case activeInstants if !activeInstants.empty() =>
val timestamp = if (hollowCommitHandling == USE_TRANSITION_TIME) {
- activeInstants.getInstantsOrderedByCompletionTime
- .skip(activeInstants.countInstants() - 1)
- .findFirst()
- .get()
- .getCompletionTime
+ activeInstants.getLatestCompletionTime.get()
} else {
activeInstants.lastInstant().get().requestedTime()
}
diff --git
a/hudi-sync/hudi-datahub-sync/src/main/java/org/apache/hudi/sync/datahub/DataHubSyncClient.java
b/hudi-sync/hudi-datahub-sync/src/main/java/org/apache/hudi/sync/datahub/DataHubSyncClient.java
index 44ce04f59e6..f9bb2ea2710 100644
---
a/hudi-sync/hudi-datahub-sync/src/main/java/org/apache/hudi/sync/datahub/DataHubSyncClient.java
+++
b/hudi-sync/hudi-datahub-sync/src/main/java/org/apache/hudi/sync/datahub/DataHubSyncClient.java
@@ -99,13 +99,7 @@ public class DataHubSyncClient extends HoodieSyncClient {
}
protected Option<String> getLastCommitCompletionTime() {
- int countInstants = getActiveTimeline().countInstants();
- return getActiveTimeline()
- .getInstantsOrderedByCompletionTime()
- .skip(countInstants - 1)
- .findFirst()
- .map(HoodieInstant::getCompletionTime)
- .map(Option::of).orElseGet(Option::empty);
+ return getActiveTimeline().getLatestCompletionTime();
}
@Override
diff --git
a/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HoodieHiveSyncClient.java
b/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HoodieHiveSyncClient.java
index bd00773e913..797b20aea69 100644
---
a/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HoodieHiveSyncClient.java
+++
b/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HoodieHiveSyncClient.java
@@ -404,12 +404,7 @@ public class HoodieHiveSyncClient extends HoodieSyncClient
{
// Set the last commit time and commit completion from the TBLproperties
HoodieTimeline activeTimeline = getActiveTimeline();
Option<String> lastCommitSynced =
activeTimeline.lastInstant().map(HoodieInstant::requestedTime);
- Option<String> lastCommitCompletionSynced = activeTimeline
- .getInstantsOrderedByCompletionTime()
- .skip(activeTimeline.countInstants() - 1)
- .findFirst()
- .map(i -> Option.of(i.getCompletionTime()))
- .orElse(Option.empty());
+ Option<String> lastCommitCompletionSynced =
activeTimeline.getLatestCompletionTime();
if (lastCommitSynced.isPresent()) {
try {
Table table = client.getTable(databaseName, tableName);
diff --git
a/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java
b/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java
index 9e420683e0c..11671b1e02b 100644
---
a/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java
+++
b/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/TestHiveSyncTool.java
@@ -1979,9 +1979,7 @@ public class TestHiveSyncTool {
}
private String getLastCommitCompletionTimeSynced() {
- return hiveClient.getActiveTimeline()
- .getInstantsOrderedByCompletionTime()
- .skip(hiveClient.getActiveTimeline().countInstants() -
1).findFirst().get().getCompletionTime();
+ return hiveClient.getActiveTimeline().getLatestCompletionTime().get();
}
private void reInitHiveSyncClient() {