This is an automated email from the ASF dual-hosted git repository.
yihua 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 a91bdece2c1 [HUDI-7079] Disable new file format for metadata table
(#10058)
a91bdece2c1 is described below
commit a91bdece2c1782410009915881ff6488fdfbf973
Author: Jon Vexler <[email protected]>
AuthorDate: Fri Nov 10 13:04:42 2023 -0500
[HUDI-7079] Disable new file format for metadata table (#10058)
Disable the new file format for the metadata table because we haven't
implemented hfile base files yet. Also made new method for duplicated code
Co-authored-by: Jonathan Vexler <=>
---
.../java/org/apache/hudi/client/BaseHoodieTableServiceClient.java | 2 +-
.../src/main/java/org/apache/hudi/table/HoodieTable.java | 2 +-
.../java/org/apache/hudi/table/action/compact/CompactHelpers.java | 2 +-
.../org/apache/hudi/common/bootstrap/index/HFileBootstrapIndex.java | 4 +---
.../java/org/apache/hudi/common/table/HoodieTableMetaClient.java | 5 +++++
.../src/main/scala/org/apache/hudi/DefaultSource.scala | 4 ++--
6 files changed, 11 insertions(+), 8 deletions(-)
diff --git
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java
index 8b39a46cb07..112b8111004 100644
---
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java
+++
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/BaseHoodieTableServiceClient.java
@@ -952,7 +952,7 @@ public abstract class BaseHoodieTableServiceClient<I, T, O>
extends BaseHoodieCl
// from the async indexer (`HoodieIndexer`).
// TODO(HUDI-5733): This should be cleaned up once the proper fix of
rollbacks in the
// metadata table is landed.
- if (isMetadataTable(metaClient.getBasePathV2().toString())) {
+ if (metaClient.isMetadataTable()) {
return
inflightInstantsStream.map(HoodieInstant::getTimestamp).filter(entry -> {
if (curInstantTime.isPresent()) {
return !entry.equals(curInstantTime.get());
diff --git
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java
index c44d3b0f4cb..aa521fcc3e5 100644
---
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java
+++
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/HoodieTable.java
@@ -1010,7 +1010,7 @@ public abstract class HoodieTable<T, I, K, O> implements
Serializable {
// Only execute metadata table deletion when all the following conditions
are met
// (1) This is data table
// (2) Metadata table is disabled in HoodieWriteConfig for the writer
- return !HoodieTableMetadata.isMetadataTable(metaClient.getBasePath())
+ return !metaClient.isMetadataTable()
&& !config.isMetadataTableEnabled();
}
diff --git
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/CompactHelpers.java
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/CompactHelpers.java
index 6a1e3f14062..78ea56fd9ad 100644
---
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/CompactHelpers.java
+++
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/CompactHelpers.java
@@ -106,7 +106,7 @@ public class CompactHelpers<T, I, K, O> {
}
public Option<InstantRange> getInstantRange(HoodieTableMetaClient
metaClient) {
- return
HoodieTableMetadata.isMetadataTable(metaClient.getBasePathV2().toString())
+ return metaClient.isMetadataTable()
? Option.of(getMetadataLogReaderInstantRange(metaClient)) :
Option.empty();
}
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/bootstrap/index/HFileBootstrapIndex.java
b/hudi-common/src/main/java/org/apache/hudi/common/bootstrap/index/HFileBootstrapIndex.java
index 27314f150dc..744f3dc3a2d 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/bootstrap/index/HFileBootstrapIndex.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/bootstrap/index/HFileBootstrapIndex.java
@@ -34,7 +34,6 @@ import org.apache.hudi.common.util.collection.Pair;
import org.apache.hudi.exception.HoodieException;
import org.apache.hudi.exception.HoodieIOException;
import org.apache.hudi.io.storage.HoodieHFileUtils;
-import org.apache.hudi.metadata.HoodieTableMetadata;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
@@ -106,8 +105,7 @@ public class HFileBootstrapIndex extends BootstrapIndex {
FileSystem fs = metaClient.getFs();
// The metadata table is never bootstrapped, so the bootstrap index is
always absent
// for the metadata table. The fs.exists calls are avoided for metadata
table.
- isPresent =
!HoodieTableMetadata.isMetadataTable(metaClient.getBasePathV2().toString())
- && fs.exists(indexByPartitionPath) && fs.exists(indexByFilePath);
+ isPresent = !metaClient.isMetadataTable() &&
fs.exists(indexByPartitionPath) && fs.exists(indexByFilePath);
} catch (IOException ioe) {
throw new HoodieIOException(ioe.getMessage(), ioe);
}
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
b/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
index e7aba0b502b..9512e61f089 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
@@ -57,6 +57,7 @@ import org.apache.hudi.exception.TableNotFoundException;
import org.apache.hudi.hadoop.CachingPath;
import org.apache.hudi.hadoop.SerializablePath;
import org.apache.hudi.keygen.constant.KeyGeneratorType;
+import org.apache.hudi.metadata.HoodieTableMetadata;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
@@ -382,6 +383,10 @@ public class HoodieTableMetaClient implements Serializable
{
return timelineLayoutVersion;
}
+ public Boolean isMetadataTable() {
+ return HoodieTableMetadata.isMetadataTable(getBasePathV2().toString());
+ }
+
/**
* Get the FS implementation for this table.
*/
diff --git
a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DefaultSource.scala
b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DefaultSource.scala
index bdaf1257e57..c619f61cb2c 100644
---
a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DefaultSource.scala
+++
b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DefaultSource.scala
@@ -235,8 +235,8 @@ object DefaultSource {
Option(schema)
}
- val useNewPaquetFileFormat = parameters.getOrElse(
- USE_NEW_HUDI_PARQUET_FILE_FORMAT.key,
USE_NEW_HUDI_PARQUET_FILE_FORMAT.defaultValue).toBoolean
+ val useNewPaquetFileFormat =
parameters.getOrElse(USE_NEW_HUDI_PARQUET_FILE_FORMAT.key,
+ USE_NEW_HUDI_PARQUET_FILE_FORMAT.defaultValue).toBoolean &&
!metaClient.isMetadataTable
if (metaClient.getCommitsTimeline.filterCompletedInstants.countInstants()
== 0) {
new EmptyRelation(sqlContext, resolveSchema(metaClient, parameters,
Some(schema)))
} else if (isCdcQuery) {