This is an automated email from the ASF dual-hosted git repository. danny0405 pushed a change to branch HUDI-8990-V2 in repository https://gitbox.apache.org/repos/asf/hudi.git
from f03fc80498c code review add 8c58ef5d78a [HUDI-7037] Fix colstats reading for Decimal field (#12993) add 07cec68850a [HUDI-9212] Fix metadata compaction failure post downgrade (#13022) add 5e6795d0534 [MINOR] Improve CI to parallelize tests more and reduce completion time (#13031) add 4f63cc06e74 [MINOR] Fix flaky test testCreateNewInstantTimes (#13032) add fb8d27bc4e1 [HUDI-9216] Ignore validation of empty databaseName in HoodieTableMetaClient (#13033) add 0185ede3beb [MINOR] Follow up HUDI-8803, optimize vectorized reader by cache 'batchIdxField' (#13023) add 550c39b9383 [HUDI-9088] Fix unnecessary scanning of target table in MERGE INTO on Spark (#12934) add aef7a33fb54 [MINOR] Use configutils to handle defaults for all zk lock provider configs (#13039) add b6957f020d0 [HUDI-9205] Refactor Flink tests to avoid sleeping for data results (#13027) add e794f091d07 [HUDI-9227] Fix bulk insert overwrite after a failed insert overwrite (#13041) add 07328c76019 [HUDI-9221] Fix tests in TestHoodieBackedMetadata after new default indexes enabled (#13035) add eae549d24bd [HUDI-9233] Handle empty table edge case for col stats initialization (#13045) add badee10d290 [HUDI-9167] Remove redundant classes in hudi-utilities-slim-bundle (#12962) add b0ef89aaa02 [HUDI-9218] Implement HoodieRecordMerger for Flink HoodieRecord (#13040) add 906747a5bfb [HUDI-9042] Support `TimestampType.DATE_STRING` by `RowDataKeyGen` (#13037) add 12fa7d27084 [HUDI-9238] Fix bug with HudiIncrSource when source is table version 6 (#13048) add baea182cfc7 [HUDI-9239] Fix the bug of Spark Cache not releasing cleanly (#13050) add 5a5117c98d8 [HUDI-9133] Fallback to legacy schema fetching in case of IllegalAccessError from schema registry client (#13030) add bec60f2f6ae [HUDI-9240] Bump spark 35 version to 3.5.5 (#13053) add 9cd1b610ffe [HUDI-9228] Support rowdata writing for MOR table with consistent hasing (#13043) add ee50661db20 [HUDI-9231] Show complete DAG for one single query in spark web ui while inserting into hudi table (#13044) add 666eb312acd [HUDI-9236] Handle markers for log files in table version 6 (#13007) add 0d2877631a2 [HUDI-8409] Fixing merge mode config during upgrade and downgrade from version 7 to 8 and back (#13046) add 5e713cf95fd [HUDI-8635] Support numWrites metric for compaction (#13047) add d54f3432beb Merge branch 'master' into HUDI-8990-V2 No new revisions were added by this update. Summary of changes: .github/workflows/bot.yml | 380 ++++++++++++++++++-- azure-pipelines-20230430.yml | 137 ++++++-- .../apache/hudi/client/BaseHoodieWriteClient.java | 8 +- .../apache/hudi/client/CommitMetadataResolver.java | 48 +++ .../hudi/client/CommitMetadataResolverFactory.java | 43 +++ .../client/MarkerBasedCommitMetadataResolver.java | 257 ++++++++++++++ .../NoOpCommitMetadataResolver.java} | 33 +- .../lock/BaseZookeeperBasedLockProvider.java | 27 +- .../java/org/apache/hudi/io/HoodieWriteHandle.java | 5 +- .../keygen/TimestampBasedAvroKeyGenerator.java | 2 +- .../metadata/HoodieBackedTableMetadataWriter.java | 5 +- .../action/commit/BaseCommitActionExecutor.java | 8 +- .../rollback/BaseRollbackActionExecutor.java | 11 +- .../rollback/ListingBasedRollbackStrategy.java | 39 ++- .../rollback/MarkerBasedRollbackStrategy.java | 49 ++- ...BaseRollbackHelper.java => RollbackHelper.java} | 13 +- .../action/rollback/RollbackHelperFactory.java} | 27 +- .../table/action/rollback/RollbackHelperV1.java | 389 +++++++++++++++++++++ .../marker/AppendMarkerHandler.java} | 23 +- .../hudi/table/marker/DirectWriteMarkers.java | 58 +-- .../hudi/table/marker/DirectWriteMarkersV1.java | 103 ++++++ .../marker/TimelineServerBasedWriteMarkers.java | 9 +- .../marker/TimelineServerBasedWriteMarkersV1.java | 74 ++++ .../org/apache/hudi/table/marker/WriteMarkers.java | 19 + .../hudi/table/marker/WriteMarkersFactory.java | 31 +- .../hudi/table/upgrade/DowngradeHandler.java | 7 +- .../upgrade/EightToSevenDowngradeHandler.java | 43 ++- .../table/upgrade/FiveToFourDowngradeHandler.java | 6 +- .../table/upgrade/FourToThreeDowngradeHandler.java | 6 +- .../table/upgrade/OneToZeroDowngradeHandler.java | 5 +- .../table/upgrade/SevenToEightUpgradeHandler.java | 68 +++- .../table/upgrade/SevenToSixDowngradeHandler.java | 6 +- .../table/upgrade/SixToFiveDowngradeHandler.java | 7 +- .../table/upgrade/ThreeToTwoDowngradeHandler.java | 6 +- .../table/upgrade/TwoToOneDowngradeHandler.java | 5 +- .../hudi/table/upgrade/UpgradeDowngrade.java | 57 ++- .../table/upgrade/ZeroToOneUpgradeHandler.java | 4 +- .../client/utils/TestCommitMetadataResolver.java | 242 +++++++++++++ .../rollback/TestMarkerBasedRollbackStrategy.java | 17 +- ...RollbackHelper.java => TestRollbackHelper.java} | 6 +- .../hudi/table/marker/TestWriteMarkersFactory.java | 71 ++-- .../upgrade/TestEightToSevenDowngradeHandler.java | 45 ++- .../upgrade/TestSevenToEightUpgradeHandler.java | 60 +++- .../client/model/CommitTimeFlinkRecordMerger.java} | 13 +- .../client/model/EventTimeFlinkRecordMerger.java | 57 ++- .../hudi/client/model/HoodieFlinkRecord.java | 2 +- .../client/model/HoodieFlinkRecordMerger.java} | 9 +- .../hudi/merge/TestHoodieFlinkRecordMerger.java | 180 ++++++++++ .../org/apache/hudi/data/HoodieJavaPairRDD.java | 8 + .../apache/hudi/data/TestHoodieJavaPairRDD.java | 110 ++++++ .../TestMarkerBasedRollbackStrategy.java | 27 +- .../hudi/table/marker/TestDirectWriteMarkers.java | 15 +- .../table/marker/TestDirectWriteMarkersV1.java | 35 +- .../TestTimelineServerBasedWriteMarkers.java | 14 +- .../TestTimelineServerBasedWriteMarkersV1.java | 52 +++ .../hudi/table/marker/TestWriteMarkersBase.java | 61 +++- .../hudi/common/data/HoodieListPairData.java | 27 ++ .../apache/hudi/common/data/HoodiePairData.java | 12 + .../java/org/apache/hudi/common/model/IOType.java | 1 + .../hudi/common/table/HoodieTableMetaClient.java | 2 +- .../table/log/BaseHoodieLogRecordReader.java | 1 + .../hudi/common/table/marker/MarkerOperation.java | 2 + .../common/table/read/FileGroupRecordBuffer.java | 10 + .../table/read/HoodieFileGroupRecordBuffer.java | 5 + .../read/PositionBasedFileGroupRecordBuffer.java | 18 +- .../hudi/metadata/HoodieTableMetadataUtil.java | 39 +-- .../hudi/metadata/MetadataPartitionType.java | 5 +- .../common/data/TestHoodieListDataPairData.java | 34 ++ .../hudi/common/testutils/FileCreateUtils.java | 56 +++ .../apache/hudi/configuration/OptionsResolver.java | 3 +- .../hudi/sink/RowDataStreamWriteFunction.java | 2 +- .../org/apache/hudi/sink/StreamWriteOperator.java | 2 +- .../sink/bucket/BucketStreamWriteOperator.java | 18 +- ...RowDataConsistentBucketStreamWriteFunction.java | 99 ++++++ .../org/apache/hudi/sink/bulk/RowDataKeyGen.java | 5 + .../FlinkConsistentBucketUpdateStrategy.java | 8 +- ... => RowDataConsistentBucketUpdateStrategy.java} | 89 +++-- .../apache/hudi/sink/ITTestDataStreamWrite.java | 56 +-- .../apache/hudi/sink/bulk/TestRowDataKeyGen.java | 17 + .../utils/BucketStreamWriteFunctionWrapper.java | 4 +- ...ConsistentBucketStreamWriteFunctionWrapper.java | 12 +- .../sink/utils/StreamWriteFunctionWrapper.java | 4 +- .../org/apache/hudi/sink/utils/TestWriteBase.java | 2 +- .../apache/hudi/table/ITTestHoodieDataSource.java | 172 ++++----- .../apache/hudi/table/ITTestSchemaEvolution.java | 4 - .../org/apache/hudi/utils/FlinkMiniCluster.java | 11 + .../org/apache/hudi/utils/TestConfigurations.java | 15 +- .../utils/factory/CollectSinkTableFactory.java | 62 +++- .../common/table/TestHoodieTableMetaClient.java | 4 +- .../hudi/common/testutils/HoodieTestTable.java | 41 ++- .../hudi/hadoop/TestHoodieHFileInputFormat.java | 4 +- .../hudi/hadoop/TestHoodieParquetInputFormat.java | 4 +- .../org/apache/hudi/storage/HoodieStorage.java | 5 +- .../org/apache/hudi/storage/StorageSchemes.java | 15 + .../BaseDatasetBulkInsertCommitActionExecutor.java | 1 + .../org/apache/hudi/ColumnStatsIndexSupport.scala | 15 +- .../scala/org/apache/hudi/DataSourceOptions.scala | 2 +- .../org/apache/hudi/HoodieSparkSqlWriter.scala | 10 +- .../scala/org/apache/hudi/HoodieWriterUtils.scala | 46 ++- .../org/apache/hudi/TestHoodieWriterUtils.java | 46 +++ .../spark/sql/hudi/analysis/HoodieAnalysis.scala | 15 +- .../command/CreateHoodieTableAsSelectCommand.scala | 12 +- .../command/InsertIntoHoodieTableCommand.scala | 25 +- .../hudi/command/MergeIntoHoodieTableCommand.scala | 50 +-- .../functional/TestHoodieBackedMetadata.java | 139 ++++++-- ...e.java => HoodieSparkFunctionalTestSuiteA.java} | 3 +- ...e.java => HoodieSparkFunctionalTestSuiteB.java} | 5 +- .../functional/TestNewHoodieParquetFileFormat.java | 2 +- .../hudi/table/TestHoodieMergeOnReadTable.java | 4 + .../table/action/compact/TestHoodieCompactor.java | 22 +- ...arkCopyOnWriteTableRollbackTableVersionSix.java | 63 ++++ .../TestHoodieSparkMergeOnReadTableCompaction.java | 227 +++++++++++- .../TestHoodieSparkMergeOnReadTableRollback.java | 233 +++++++++--- .../table/functional/TestHoodieSparkRollback.java | 307 ++++++++++++++++ .../hudi/functional/ColumnStatIndexTestBase.scala | 66 +++- .../hudi/functional/TestColumnStatsIndex.scala | 43 ++- .../hudi/functional/TestPartitionStatsIndex.scala | 2 +- .../hudi/functional/TestSevenToEightUpgrade.scala | 220 +++++++++++- .../sql/hudi/common/HoodieSparkSqlTestBase.scala | 16 +- .../spark/sql/hudi/dml/TestInsertTable.scala | 45 ++- .../spark/sql/hudi/dml/TestMergeIntoTable.scala | 208 ++++++----- .../hudi/feature/index/TestSecondaryIndex.scala | 4 +- .../Spark3HoodieVectorizedParquetRecordReader.java | 8 +- .../hudi/timeline/service/RequestHandler.java | 8 + .../timeline/service/handlers/MarkerHandler.java | 10 + .../utilities/schema/SchemaRegistryProvider.java | 62 ++++ .../hudi/utilities/sources/HoodieIncrSource.java | 6 +- .../schema/TestSchemaRegistryProvider.java | 24 ++ .../utilities/sources/TestHoodieIncrSource.java | 174 ++++----- packaging/bundle-validation/flink/insert.sql | 2 + packaging/bundle-validation/validate.sh | 2 +- packaging/hudi-spark-bundle/pom.xml | 9 - packaging/hudi-utilities-slim-bundle/pom.xml | 37 -- pom.xml | 63 +++- rfc/README.md | 2 +- 135 files changed, 5152 insertions(+), 998 deletions(-) create mode 100644 hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataResolver.java create mode 100644 hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataResolverFactory.java create mode 100644 hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/MarkerBasedCommitMetadataResolver.java copy hudi-client/hudi-client-common/src/main/java/org/apache/hudi/{table/upgrade/SupportsUpgradeDowngrade.java => client/NoOpCommitMetadataResolver.java} (55%) rename hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/{BaseRollbackHelper.java => RollbackHelper.java} (96%) copy hudi-client/{hudi-spark-client/src/test/java/org/apache/hudi/index/hbase/TestHBaseIndexUsage.java => hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/RollbackHelperFactory.java} (60%) create mode 100644 hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/RollbackHelperV1.java copy hudi-client/hudi-client-common/src/main/java/org/apache/hudi/{client/timeline/HoodieTimelineArchiver.java => table/marker/AppendMarkerHandler.java} (58%) create mode 100644 hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/DirectWriteMarkersV1.java create mode 100644 hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/marker/TimelineServerBasedWriteMarkersV1.java create mode 100644 hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/utils/TestCommitMetadataResolver.java rename hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/rollback/{TestBaseRollbackHelper.java => TestRollbackHelper.java} (98%) copy hudi-client/{hudi-spark-client/src/main/java/org/apache/hudi/OverwriteWithLatestSparkRecordMerger.java => hudi-flink-client/src/main/java/org/apache/hudi/client/model/CommitTimeFlinkRecordMerger.java} (75%) copy hudi-hadoop-mr/src/main/java/org/apache/hudi/hadoop/DefaultHiveRecordMerger.java => hudi-client/hudi-flink-client/src/main/java/org/apache/hudi/client/model/EventTimeFlinkRecordMerger.java (59%) copy hudi-client/{hudi-spark-client/src/main/java/org/apache/hudi/HoodieSparkRecordMerger.java => hudi-flink-client/src/main/java/org/apache/hudi/client/model/HoodieFlinkRecordMerger.java} (81%) create mode 100644 hudi-client/hudi-flink-client/src/test/java/org/apache/hudi/merge/TestHoodieFlinkRecordMerger.java create mode 100644 hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/data/TestHoodieJavaPairRDD.java copy hudi-io/src/main/java/org/apache/hudi/io/ByteArraySeekableDataInputStream.java => hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/marker/TestDirectWriteMarkersV1.java (58%) create mode 100644 hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/marker/TestTimelineServerBasedWriteMarkersV1.java create mode 100644 hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/bucket/RowDataConsistentBucketStreamWriteFunction.java copy hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/clustering/update/strategy/{FlinkConsistentBucketUpdateStrategy.java => RowDataConsistentBucketUpdateStrategy.java} (62%) create mode 100644 hudi-spark-datasource/hudi-spark-common/src/test/java/org/apache/hudi/TestHoodieWriterUtils.java copy hudi-spark-datasource/hudi-spark/src/test/java/org/apache/hudi/functional/{HoodieSparkFunctionalTestSuite.java => HoodieSparkFunctionalTestSuiteA.java} (95%) rename hudi-spark-datasource/hudi-spark/src/test/java/org/apache/hudi/functional/{HoodieSparkFunctionalTestSuite.java => HoodieSparkFunctionalTestSuiteB.java} (93%) create mode 100644 hudi-spark-datasource/hudi-spark/src/test/java/org/apache/hudi/table/functional/TestHoodieSparkCopyOnWriteTableRollbackTableVersionSix.java create mode 100644 hudi-spark-datasource/hudi-spark/src/test/java/org/apache/hudi/table/functional/TestHoodieSparkRollback.java