This is an automated email from the ASF dual-hosted git repository.

vhs pushed a change to branch release-1.0.2
in repository https://gitbox.apache.org/repos/asf/hudi.git


    from c05acf387e8 [MINOR] Update release version to reflect published 
version 1.0.1
     add 0f13d027fce [HUDI-8953] Update bundle validation workflow on a release 
candidate (#12755)
     add f5f09c33368 [HUDI-8767] Add bundle validation for release artifacts in 
Maven central (#12488)
     add 4197ab85150 [HUDI-8950] Explicitly set base path in sync config #12754
     add 9c85c2c12a2 [HUDI-8278] Add log message about different primary keys 
for HoodieTableFactory (#12766)
     add e47f0bb8f8a [HUDI-8951] Disabled flaky 
`TestHoodieDeltaStreamer::testHoodieIndexerExecutionAfterClustering` (#12769)
     add 9411bb6b7b9 [MINOR] Fix code issues reported by SonarQube (#12767)
     add a2e945ef2ae [MINOR] Move field ordering lookup outside of loop for 
proto conversion (#12271)
     add e7b28c6a8ea [HUDI-8966] Claim RFC-88 for New 
Schema/DataType/Expression Abstractions (#12791)
     add 39c91dc26ce [HUDI-8958] Enable record index validation by default 
(#12785)
     add 5eb23e95b56 [MINOR] Fix jenkins compile issue (#12810)
     add 64bb2c33a4c [HUDI-8989] Fixing Compaction scheduling for tbl v6 
(#12805)
     add 31ca2cbbc7f [MINOR] Updating doap for release 1.0.1 (#12816)
     add c8c9abb899d [HUDI-8569] Fix Insert overwrite / update MOR with global 
index does not work (#12819)
     add 7216fcf4488 [HUDI-8967] Add a config to fail job if duplicate data 
files detected during reconcileAgainstMarkers (#12792)
     add c4ba42182f3 [HUDI-8965] Fix Hoodie Hive Sync Tool to Throw Exceptions 
on Sync Failures (#12790)
     add 41edbfc2974 [HUDI-8959] HoodieMetadataTableValidator can skip 
validation if data table is not found (#12775)
     add fc7b3c49559 [HUDI-8998] Improve handling of zero scale decimals in 
MercifulJsonConverter (#12822)
     add 0387e8605ac [HUDI-8922] Avoid scheduling existing rollbacks (#12715)
     add 151fbddc34f [HUDI-8941] Stop spark context with proper exit code in 
HoodieStreamer (#12742)
     add de87824f7f7 [HUDI-8798] Validate Metadata Table Enabled during 
Archival (#12549)
     add 339079bd957 [HUDI-5612] Add support for using metadata table with 
spillable map based file system views (#12110)
     add f7737e4b846 [HUDI-8885] Improve the efficiency of initializing the 
metadata table and table services (#12665)
     add a3dbee527ff [HUDI-8971] Fixing metadata metrics to honor metrics 
prefix (#12797)
     add a3fd66d1d48 [HUDI-8992] Initial changes to allow us to use streams 
instead of byte arrays (#12814)
     add bc5cac6c4e9 [HUDI-9009] Fix potential race condition when listing 
files by leveraging exception type #12834
     add a57f19791cb [HUDI-8701] prevent lock metrics failure from failing 
process (#12458)
     add 34dcd5068bc [MINOR] Register more classes with Kryo (#12268)
     add eb96dec4068 [HUDI-8972] Fixing heart beats for failed writes in 
HoodieStreamer (#12802)
     add 35b2f578759 [MINOR] Fix skew in clustering operator (#12765)
     add f8cdfe08257 [MINOR] Rebalance Azure CI jobs (2025-02-13) (#12840)
     add 1b7304b1b7b [HUDI-8985] Fix avg record size estimator to avoid parsing 
all commit metadata of active timeline (#12803)
     add 21d0ed46ef8 [HUDI-7596] Enable Jacoco code coverage report across 
multiple modules (#12842)
     add 632cd5b5f68 [HUDI-8962] Adding more logs during indexing (#12787)
     add 9da6a935e12 [HUDI-7222] Fix Scala style check (#12837)
     add 2800d550c47 [HUDI-9038] Enable Codecov tracking and comment on code 
coverage (#12845)
     add 32172275203 [MINOR] Rebalance Azure CI jobs (2025-02-14) (#12844)
     add 659c8f8a5f5 [HUDI-9039] Run do init table transaction only when 
required (#12847)
     add 0e7d23d15ae [HUDI-7624] Fixing source read and index tagging duration 
(#12789)
     add b521d5ca721 [HUDI-8882] Support Compaction/Rollback/Clean Timeline 
Instant Metrics in HoodieMetrics (#12681)
     add 8de749ade2b [HUDI-8126] Persist sourceRdd to optimise writeStatus DAG 
for error table (#11844)
     add 90a41f8d96b [HUDI-8883] Add ability to configure 
HoodieCompactionPlanGenerator using reflection (#12664)
     add d844ceb55c6 [HUDI-9045] Spillable Map operational improvements (#12850)
     add 26690f58e83 [HUDI-8442] Reduce timeline loads while rolling back 
failed writes (#12164)
     add fc5f16ddede [HUDI-9016] Fix the HoodieCompactor schedule parameter 
alias name #12836
     add 4818545e18a [MINOR] Increase timeout of hudi-utilities tests in Azure 
CI (#12862)
     add c2ea6423ec6 [HUDI-8988] Implement retry logic for all HTTP calls to 
timeline server including remote file system view and markers (#12804)
     add cf9e9aac7d2 [HUDI-9059] Fix ordering of getInstantTimes in 
CompletionTimeQueryViewV2 (#12858)
     add b4ece02e561 [HUDI-9060] Remove validations for clustering metadata 
(#12860)
     add 8362c715b67 [HUDI-8126] Support proto messages for spark kryo 
serializer excluding DynamicMessages (#12052)
     add 5649baae374 [HUDI-8786] IntelliJ automatic code cleanup tool (#12524)
     add 92eae7d71d7 [HUDI-8868] Use external spillable map for 
cachedAllInputFileSlices in BaseHoodieTableFileIndex (#12647)
     add b1721e19897 [HUDI-8126] Use union to parallelize data and error table 
writes (#12813)
     add 4a5e405dcdf [HUDI-8501] Improve SizeAwareDataInputStream to implement 
idempotent (#12231)
     add b45fb40a4d3 [HUDI-8378] Fix Avro schema deserializer failing with 
schema evolution (#12111)
     add c376d7207bf [HUDI-8955] Resolve Kafka beginning offsets with retention 
to prevent OffsetOutOfRange exception (#12762)
     add 17bfb1cc830 [MINOR] Add StorageSchemes for Aliyun Apsara File Storage 
for HDFS (#12872)
     add 71a30ca0ef5 [HUDI-9070] Fix Hudi cli bundle script to use 
HUDI_CONF_DIR environment variable (#12876)
     add cd61b4e0496 [HUDI-8901] Fix Timeline Server to process requests from 
multiple storage lakes (#12696)
     add 1310170aae9 [hudi-9041] Send commit ack event when reusing current 
instant (#12849)
     add 2f25a0a25f0 [HUDI-9061] JSON to AVRO schema converter (#12864)
     add 456256f99f5 [HUDI-9071] MDT validator can configure if log truncation 
applies (#12877)
     add 935e5105712 [HUDI-9040] Set the correct table path when renaming 
tables (#12848)
     add 36dabc6ce7a [HUDI-8954] Reconstruct writer schema while clustering by 
spark row writer (#12758)
     add 83cdf4c7cdc [HUDI-9072] Support decimal in JsonKafkaSource (#12879)
     add d5e783a9839 [HUDI-8992] Fix serde issues in commit metadata (#12829)
     add 91c92dc686f [HUDI-8940] Fix Bloom Index Partitioner to distribute keys 
uniformly across partitions (#12741)
     add 21d945fb756 [HUDI-8577] Use config default for query type in default 
source in Spark (#12435)
     add 642927e58e2 [HUDI-7985] Add more test cases around timestamp and 
decimal formats in Json Avro converter (#11629)
     add 3a9fa5ec7f7 [HUDI-9065] Adding new filters to ArchivedTimelineV1 
(#12869)
     add ff2a76a57f7 [HUDI-8486] Enforce data type match for required columns 
in Spark SQL MERGE INTO (#12798)
     add a341dc77095 [HUDI-8486] Add column mismatch test coverage (#12800)
     add 2532445d5c1 [HUDI-9086] Disabling failing test to unblock master 
(#12890)
     add fb044e89198 [HUDI-9093] Fix the HoodieClusteringJob duplicate 
parameter alias (#12897)
     add ec5cc0bf976 [HUDI-8992] Deprecate all byte array usage in metadata 
deserialization path (#12826)
     add a97a89fb5c9 [HUDI-9079] Log the exception message properly to handle 
the 'default' partition value migration steps (#12911)
     add 222363166c5 [HUDI-9092] Deprecate byte array of serialization of 
instants (#12900)
     add 6b2520d055e [HUDI-8826] Extend MIT partial update test (#12915)
     add 3c45727564d [HUDI-8745] Add tests for record index and secondary index 
with insert dups policy (#12914)
     add 9f99365b4e2 [HUDI-9067] Fixing num spark tasks for clean action 
(#12874)
     add c32ac40e4fe [HUDI-5387] Add bundle validation for hudi-cli-bundle 
(#12882)
     add 53dd14fbd93 [HUDI-8219] Add concurrent schema evolution conflict 
detection (#12781)
     add 757d01c31e0 [HUDI-9030] Compatibility fixes for table version 6 with 
1.0 (#12888)
     add 5e6ff97260f [MINOR] Fix generating file id with wrong bucket index 
(#12917)
     add 499ae7dbc29 [HUDI-9115] Deprecate Hudi CLI script (#12916)
     add 36e41591dec [MINOR] Add retries and logs to merging Jacoco execution 
data files (#12921)
     add 99b0c6bf5ad [HUDI-9057] Fixing ClassNotFound issue w/ 
ProtoBufSchemaProvider (#12913)
     add ae3d58ee588 [HUDI-9086] Re-enable flaky tests and fixing spark context 
not shutting down (#12909)
     add c93c32c76ed [MINOR] Skip merging Jacoco execution data file from Azure 
Job 1 FT (#12942)
     add 78e22fa8559 [MINOR] Fix cleaner config compatibility with older 
releases (#12943)
     add 021053cae17 [HUDI-8768] Support bloom filter options when creating 
expr index using bloom filter (#12919)
     add 9cb777f1fd6 [HUDI-9125] Pass compaction/merge related props to 
HoodieBaseFileGroupRecordBuffer (#12925)
     add 8bdde9b3e1c [HUDI-9132] Avoid empty string row key for delete and 
update operations (#12929)
     add 9f7a584120a [HUDI-9068] Fix cloudwatch metrics (#12873)
     add c9b4bf09f7f [HUDI-9141] Handle the case that dbName is empty in 
HoodieFileIndex (#12885)
     add 3cf7daa70bd [HUDI-9152] Improve read/write/compaction performance by 
reusing avro schema (#12949)
     add 444a47ed423 [MINOR] Remove storage instance variable from 
HoodieIngestionMetrics (#12937)
     add 6b8ba985798 [HUDI-7803] Fix bundle validation on Flink 1.18 (#12959)
     add 5e18470cc94 Fix hadoop deps from hudi-common (#12965)
     add 152976492aa [MINOR] Improve error logs on mdt validation job (#12973)
     add 563e7d02b91 [HUDI-9166] Static cleanup method that doesn't hold 
references to DiskMap instances (#12956)
     add d11b67400cf [HUDI-9166] Introduce schema pruning for delete-record 
(#12961)
     add 2b77eae3d7e [HUDI-9173] Fix issue with inflight compaction and global 
index lookup (#12976)
     add 1d63f5a0b06 [HUDI-9186] Remove tableState from 
HoodieFileGroupReaderBasedParquetFileFormat constructor  (#12981)
     add a00fa5f7afc [HUDI-9168] Refactor hudi-client-common to not import 
hudi-aws (#12969)
     add b4b9c74b75a [HUDI-8345] Delete partition stats index for a partition 
that is deleted (#12953)
     add 450ec195922 [HUDI-7375] Enable 
testLogReaderWithDifferentVersionsOfDeleteBlocks (#12668)
     add d268f8c77d6 [HUDI-9175] Remove the unnecessary MDT metadata check for 
col_stats index config update (#12977)
     add 982340a223c [HUDI-9127] Fixing completion time generation to honor 
timezone from table config (#12926)
     add 951e55c5293 [HUDI-9170] Fixing schema projection with file group 
reader (#12970)
     add 69081732a12 [HUDI-9083] Fixing flakiness with multi writer test 
(#12987)
     add 87dfa0225ed [HUDI-9013] Add backwards compatible MDT writer support 
and reader support with tbl v6 (#12948)
     add 72287ca4674 [HUDI-9120] Fix merge mode inference for table version 6 
in file group reader (#12991)
     add 93f798e319f [HUDI-9120] Remove HUDI-9130 code changes relating to FGR 
(#12935)
     add bdd946c3c4f [HUDI-9198] Support rate limit for append mode (#12999)
     add 89f79c8c190 [HUDI-9207] Spark Insert Overwrite Support Row Writer 
(#13014)
     add 350050461ff [HUDI-9022] Handle records with custom delete markers in 
FG reader (#12843)
     add b13299de034 [HUDI-9215] Set partitionColumnsWithKeyGenerator based on 
table version (#13025)
     add 12e2ff01010 [HUDI-9211] Fix bug with config in DataHubSyncTool (#13018)
     add aed1b81cf21 [HUDI-9216] Fallback to spark.catalog.currentDatabase if 
tableConfig.databaseName is null or empty (#13026)
     add 022cbbec0eb [HUDI-9220] Cannot find write operation type if run inline 
log compaction (#13029)
     add b57dbfa2c8e [HUDI-7037] Fix colstats reading for Decimal field (#12993)
     add 6c7f09d0516 [HUDI-9212] Fix metadata compaction failure post downgrade 
(#13022)
     add d2971a22c96 [MINOR] Fix flaky test testCreateNewInstantTimes (#13032)
     add af3219be16f [HUDI-9216] Ignore validation of empty databaseName in 
HoodieTableMetaClient (#13033)
     add c6b5af2b1cf [MINOR] Follow up HUDI-8803, optimize vectorized reader by 
cache 'batchIdxField' (#13023)
     add b2af5e40b82 [HUDI-9088] Fix unnecessary scanning of target table in 
MERGE INTO on Spark (#12934)
     add 311fff14a6d [MINOR] Use configutils to handle defaults for all zk lock 
provider configs (#13039)
     add 8c2822849e6 [HUDI-9227] Fix bulk insert overwrite after a failed 
insert overwrite (#13041)
     add 480192df898 [HUDI-9233] Handle empty table edge case for col stats 
initialization (#13045)
     add d5db06e9d20 [HUDI-9167] Remove redundant classes in 
hudi-utilities-slim-bundle (#12962)
     add c51e5b43800 [HUDI-9238] Fix bug with HudiIncrSource when source is 
table version 6 (#13048)
     add d51851a842b [HUDI-9239] Fix the bug of Spark Cache not releasing 
cleanly (#13050)
     add 3788a024c68 [HUDI-9133] Fallback to legacy schema fetching in case of 
IllegalAccessError from schema registry client (#13030)
     add 80dedd4e0ab [HUDI-9231] Show complete DAG for one single query in 
spark web ui while inserting into hudi table (#13044)
     add 872e35432ef [HUDI-9236] Handle markers for log files in table version 
6 (#13007)
     add 5ea5d4cf5ce [HUDI-8409] Fixing merge mode config during upgrade and 
downgrade from version 7 to 8 and back  (#13046)
     add fc77caeff3f [HUDI-8635] Support numWrites metric for compaction 
(#13047)
     add 0370b2177a1 [MINOR]Fix typo and Add implementation class name in 
interface method of HoodieRecordMerger (#13059)
     add ffa7706d5dc [HUDI-9206] Support reading inflight instants with 
HoodieLogRecordReader (#13010)
     add ffbd0f5f022 [HUDI-9252] BaseHoodieWriteClient should only check for 
upgrade (#13073)
     add 6bce0272e3a [MINOR] Remove warning around table version six (#13080)
     add 5135d2f5dd1 [MINOR] Fixing master for build failure (#13085)
     add 5a3f33e2f25 [MINOR] Fix NumberFormatException while updating metrics 
for MDT in table version 6 (#13056)
     add 6e1a7b29cee [HUDI-9255] Fix inferring correct merge behavior for few 
scenarios  (#13079)
     add 8fce95c1b53 [HUDI-9259] Fixing marker reconciliation for failures 
during deleting additional files (#13088)
     add 56fef2ec15d [HUDI-9258] Disable partial update when global index is 
used (#13086)
     add 3ef8ba3adb9 [HUDI-9247] Flip default value of reuse of TimeGenerator 
instance (#13077)
     add 8f3afe7a6fd [MINOR] Upgrade jetty version to 9.4.57.v20241219 to fix 
CVE-2024-8184 (#13058)
     add d0adc56df2c [MINOR] Update javadocs in MergeIntoHoodieTableCommand 
(#13093)
     add 666b3218496 [MINOR] Fix logging issue with 
EightToSevenDowngradeHandler (#13096)
     add 02b484c7625 [HUDI-9155] Add scaffolding for lock provider using 
conditional writes (#12954)
     add fd7149b914a [HUDI-9156] Add lock provider heartbeat manager (#12958)
     add 6a9233d9652 [HUDI-9258] Disable partial update for CUSTOM merge mode 
(#13092)

No new revisions were added by this update.

Summary of changes:
 .codecov.yml                                       |  15 +-
 .github/workflows/bot.yml                          |   2 +-
 ...alidation.yml => maven_artifact_validation.yml} |  26 +-
 .github/workflows/release_candidate_validation.yml |  14 +-
 .gitignore                                         |   4 +-
 azure-pipelines-20230430.yml                       | 368 ++++++---
 doap_HUDI.rdf                                      |   7 +
 hudi-aws/pom.xml                                   |   5 +
 .../cloudwatch/CloudWatchMetricsReporter.java      |   3 +-
 .../cloudwatch/CloudWatchReporter.java             |  15 +-
 .../hudi/aws/sync/AWSGlueCatalogSyncClient.java    |   9 +-
 ...amoDBBasedImplicitPartitionKeyLockProvider.java |   2 +-
 .../java/org/apache/hudi/aws/utils/S3Utils.java    |  27 -
 .../cloudwatch/TestCloudWatchMetricsReporter.java  |  61 +-
 .../cloudwatch/TestCloudWatchReporter.java         |  30 +-
 .../org/apache/hudi/aws/utils/TestS3Utils.java     |  59 --
 hudi-cli/hudi-cli.sh                               |  31 -
 .../apache/hudi/cli/commands/CleansCommand.java    |  10 +-
 .../apache/hudi/cli/commands/CommitsCommand.java   |  64 +-
 .../hudi/cli/commands/CompactionCommand.java       |  24 +-
 .../org/apache/hudi/cli/commands/DiffCommand.java  |  18 +-
 .../apache/hudi/cli/commands/ExportCommand.java    |  10 +-
 .../hudi/cli/commands/FileSystemViewCommand.java   |   5 +-
 .../apache/hudi/cli/commands/MetadataCommand.java  |  10 +-
 .../apache/hudi/cli/commands/RestoresCommand.java  |  12 +-
 .../apache/hudi/cli/commands/RollbacksCommand.java |   9 +-
 .../org/apache/hudi/cli/commands/StatsCommand.java |   9 +-
 .../apache/hudi/cli/commands/TimelineCommand.java  |  15 +-
 .../java/org/apache/hudi/cli/utils/CLIUtils.java   |   6 +-
 .../java/org/apache/hudi/cli/utils/CommitUtil.java |   5 +-
 .../apache/hudi/cli/utils/InputStreamConsumer.java |   2 +-
 .../hudi/cli/utils/SparkTempViewProvider.java      |   4 +-
 .../hudi/cli/commands/TestCleansCommand.java       |   4 +-
 .../hudi/cli/commands/TestCompactionCommand.java   |  10 +-
 .../cli/commands/TestFileSystemViewCommand.java    |   4 +-
 .../hudi/cli/commands/TestRestoresCommand.java     |   7 +-
 .../hudi/cli/commands/TestRollbacksCommand.java    |   7 +-
 .../HoodieTestCommitMetadataGenerator.java         |  11 +-
 .../cli/testutils/HoodieTestCommitUtilities.java   |   4 +-
 hudi-client/hudi-client-common/pom.xml             |  12 +-
 .../org/apache/hudi/async/AsyncCompactService.java |   2 +-
 .../util/HoodieWriteCommitCallbackUtil.java        |   4 +-
 .../hudi/client/BaseHoodieTableServiceClient.java  |  68 +-
 .../apache/hudi/client/BaseHoodieWriteClient.java  |  67 +-
 .../apache/hudi/client/CommitMetadataResolver.java |  48 ++
 .../hudi/client/CommitMetadataResolverFactory.java |  43 +
 .../apache/hudi/client/CompactionAdminClient.java  |  20 +-
 .../hudi/client/HoodieColumnStatsIndexUtils.java   |  47 +-
 .../client/MarkerBasedCommitMetadataResolver.java  | 257 ++++++
 .../NoOpCommitMetadataResolver.java}               |  33 +-
 .../java/org/apache/hudi/client/WriteStatus.java   |  16 +-
 .../client/embedded/EmbeddedTimelineService.java   |   7 +-
 .../timeline/versioning/v1/TimelineArchiverV1.java |   2 +-
 .../timeline/versioning/v2/LSMTimelineWriter.java  |   5 +-
 .../timeline/versioning/v2/TimelineArchiverV2.java |   2 +-
 ...ConcurrentSchemaEvolutionTableSchemaGetter.java | 276 +++++++
 .../SchemaConflictResolutionStrategy.java          |  76 ++
 .../SimpleSchemaConflictResolutionStrategy.java    | 176 +++++
 .../lock/BaseZookeeperBasedLockProvider.java       |  27 +-
 .../lock/FileSystemBasedLockProvider.java          |   4 +-
 .../hudi/client/transaction/lock/StorageLock.java  |  63 ++
 ...ZookeeperBasedImplicitBasePathLockProvider.java |   2 +-
 .../lock/metrics/HoodieLockMetrics.java            |  22 +-
 .../transaction/lock/models/HeartbeatManager.java  |  49 ++
 .../transaction/lock/models/LockGetResult.java}    |  23 +-
 .../lock/models/LockProviderHeartbeatManager.java  | 351 ++++++++
 .../transaction/lock/models/LockUpdateResult.java} |  21 +-
 .../transaction/lock/models/StorageLockData.java   |  71 ++
 .../transaction/lock/models/StorageLockFile.java   | 133 ++++
 .../utils/LegacyArchivedMetaEntryReader.java       |   9 +-
 .../hudi/client/utils/MetadataTableUtils.java      |  45 --
 .../apache/hudi/client/utils/TransactionUtils.java |  37 +-
 .../org/apache/hudi/config/HoodieCleanConfig.java  |  15 +-
 .../apache/hudi/config/HoodieCompactionConfig.java |  12 +-
 .../apache/hudi/config/HoodieErrorTableConfig.java |  11 +
 .../org/apache/hudi/config/HoodieIndexConfig.java  |  16 +-
 .../apache/hudi/config/HoodiePayloadConfig.java    |   2 +-
 .../org/apache/hudi/config/HoodieWriteConfig.java  |  85 +-
 .../hudi/estimator/AverageRecordSizeEstimator.java | 133 ++++
 .../apache/hudi/estimator/RecordSizeEstimator.java |  28 +-
 .../hudi/estimator/RecordSizeEstimatorFactory.java |  45 ++
 .../org/apache/hudi/index/HoodieIndexUtils.java    |   2 +-
 .../hudi/index/bloom/BloomIndexFileInfo.java       |  10 +-
 .../apache/hudi/index/bloom/HoodieBloomIndex.java  |   1 +
 .../index/bucket/ConsistentBucketIndexUtils.java   |   7 +-
 .../hbase/DefaultHBaseQPSResourceAllocator.java    |   2 +-
 .../java/org/apache/hudi/io/HoodieCDCLogger.java   |   5 +-
 .../java/org/apache/hudi/io/HoodieMergeHandle.java |   5 +-
 .../org/apache/hudi/io/HoodieMergedReadHandle.java |   4 +-
 .../java/org/apache/hudi/io/HoodieWriteHandle.java |  10 +-
 .../metadata/HoodieBackedTableMetadataWriter.java  | 156 ++--
 ...ieBackedTableMetadataWriterTableVersionSix.java | 343 ++++++++
 .../hudi/metadata/HoodieMetadataWriteUtils.java    |   2 +
 .../hudi/metadata/HoodieTableMetadataWriter.java   |  15 +-
 .../org/apache/hudi/metrics/HoodieMetrics.java     | 123 ++-
 .../java/org/apache/hudi/table/HoodieTable.java    |  62 +-
 .../org/apache/hudi/table/WorkloadProfile.java     |  12 +-
 .../java/org/apache/hudi/table/WorkloadStat.java   |  12 +-
 .../action/BaseTableServicePlanActionExecutor.java |   3 +-
 .../table/action/clean/CleanActionExecutor.java    |  18 +-
 .../action/clean/CleanPlanActionExecutor.java      |  37 +-
 .../hudi/table/action/clean/CleanPlanner.java      |  37 +-
 .../cluster/ClusteringPlanActionExecutor.java      |  20 +-
 .../cluster/strategy/ClusteringPlanStrategy.java   |  16 +-
 .../action/commit/BaseCommitActionExecutor.java    |  46 +-
 .../hudi/table/action/commit/BaseWriteHelper.java  |   5 +-
 .../hudi/table/action/commit/BucketInfo.java       |  10 +-
 .../table/action/commit/HoodieDeleteHelper.java    |   5 +-
 .../hudi/table/action/commit/InsertBucket.java     |   8 +-
 .../apache/hudi/table/action/commit/SmallFile.java |   8 +-
 .../hudi/table/action/compact/CompactHelpers.java  |  19 +-
 .../compact/RunCompactionActionExecutor.java       |   2 +-
 .../compact/ScheduleCompactionActionExecutor.java  |  56 +-
 .../BaseHoodieCompactionPlanGenerator.java         |   4 +
 .../strategy/CompositeCompactionStrategy.java      |   2 +-
 .../action/index/AbstractIndexingCatchupTask.java  |   7 +-
 .../index/RecordBasedIndexingCatchupTask.java      |   4 +-
 .../table/action/index/RunIndexActionExecutor.java |   7 +-
 .../action/index/ScheduleIndexActionExecutor.java  |   7 +-
 .../index/WriteStatBasedIndexingCatchupTask.java   |   4 +-
 .../action/restore/BaseRestoreActionExecutor.java  |   2 +-
 .../hudi/table/action/restore/RestoreUtils.java    |   4 +-
 .../rollback/BaseRollbackActionExecutor.java       |  16 +-
 .../rollback/BaseRollbackPlanActionExecutor.java   |   8 +-
 .../rollback/ListingBasedRollbackStrategy.java     | 105 ++-
 .../rollback/MarkerBasedRollbackStrategy.java      |  39 +-
 .../action/rollback/RestorePlanActionExecutor.java |   8 +-
 ...BaseRollbackHelper.java => RollbackHelper.java} |  13 +-
 .../rollback/RollbackHelperFactory.java}           |  22 +-
 .../table/action/rollback/RollbackHelperV1.java    | 389 +++++++++
 .../hudi/table/action/rollback/RollbackUtils.java  |   4 +-
 .../action/savepoint/SavepointActionExecutor.java  |  18 +-
 .../marker/AppendMarkerHandler.java}               |  23 +-
 .../hudi/table/marker/DirectWriteMarkers.java      |  60 +-
 .../hudi/table/marker/DirectWriteMarkersV1.java    | 103 +++
 .../marker/TimelineServerBasedWriteMarkers.java    |  48 +-
 .../marker/TimelineServerBasedWriteMarkersV1.java  |  74 ++
 .../org/apache/hudi/table/marker/WriteMarkers.java |  19 +
 .../hudi/table/marker/WriteMarkersFactory.java     |  31 +-
 .../org/apache/hudi/table/repair/RepairUtils.java  |  15 +-
 .../hudi/table/upgrade/DowngradeHandler.java       |   7 +-
 .../upgrade/EightToSevenDowngradeHandler.java      |  70 +-
 .../table/upgrade/FiveToFourDowngradeHandler.java  |   6 +-
 .../table/upgrade/FourToFiveUpgradeHandler.java    |  22 +-
 .../table/upgrade/FourToThreeDowngradeHandler.java |   6 +-
 .../table/upgrade/OneToZeroDowngradeHandler.java   |   5 +-
 .../table/upgrade/SevenToEightUpgradeHandler.java  |  73 +-
 .../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       |  70 +-
 .../hudi/table/upgrade/UpgradeDowngradeUtils.java  |   2 +-
 .../table/upgrade/ZeroToOneUpgradeHandler.java     |   4 +-
 .../org/apache/hudi/util/HttpRequestClient.java    |   2 +-
 .../org/apache/hudi/HoodieTestCommitGenerator.java |  12 +-
 .../client/TestBaseHoodieTableServiceClient.java   | 265 +++++++
 .../hudi/client/TestBaseHoodieWriteClient.java     | 221 ++++++
 .../embedded/TestEmbeddedTimelineService.java      |  14 +-
 .../timeline/TestCompletionTimeQueryView.java      |  28 +-
 ...ConcurrentSchemaEvolutionTableSchemaGetter.java | 625 +++++++++++++++
 .../TestConflictResolutionStrategyUtil.java        |   4 +-
 .../client/transaction/TestHoodieLockMetrics.java  |  70 ++
 ...TestSimpleSchemaConflictResolutionStrategy.java | 274 +++++++
 .../lock/models/StorageLockFileTest.java           | 165 ++++
 .../models/TestLockProviderHeartbeatManager.java   | 481 +++++++++++
 .../client/utils/TestCommitMetadataResolver.java   | 242 ++++++
 ...edTimeline.java => TestArchivedTimelineV2.java} |  14 +-
 .../common/testutils/HoodieMetadataTestTable.java  |   7 +-
 .../hudi/config/TestHoodieErrorTableConfig.java    |  36 +-
 .../apache/hudi/config/TestHoodieWriteConfig.java  |  14 +-
 .../estimator/TestAverageRecordSizeEstimator.java  | 275 +++++++
 .../estimator/TestRecordSizeEstimatorFactory.java  |  72 ++
 .../TestHoodieBackedTableMetadataWriter.java       | 111 +++
 .../org/apache/hudi/metrics/TestHoodieMetrics.java |  86 +-
 .../org/apache/hudi/table/TestBaseHoodieTable.java | 202 +++++
 .../org/apache/hudi/table/TestHoodieTable.java     | 132 ++++
 .../apache/hudi/table/action/TestCleanPlanner.java |  99 +--
 .../action/clean/TestCleanPlanActionExecutor.java  | 159 ++++
 .../TestScheduleCompactionActionExecutor.java      |  80 ++
 .../rollback/TestMarkerBasedRollbackStrategy.java  |  17 +-
 ...RollbackHelper.java => TestRollbackHelper.java} |   6 +-
 .../hudi/table/marker/TestWriteMarkersFactory.java |  71 +-
 .../upgrade/TestEightToSevenDowngradeHandler.java  |  45 +-
 .../upgrade/TestSevenToEightUpgradeHandler.java    |  60 +-
 .../hudi/utils/HoodieWriterClientTestHarness.java  |  28 +-
 .../hudi/utils/TestMetadataConversionUtils.java    |  53 +-
 .../hudi/client/FlinkTaskContextSupplier.java      |  12 +-
 .../hudi/client/HoodieFlinkTableServiceClient.java |  13 +-
 .../apache/hudi/client/HoodieFlinkWriteClient.java |   6 +-
 ...inkSizeBasedClusteringPlanStrategyRecently.java |   3 +-
 .../hudi/execution/ExplicitWriteHandler.java       |   2 +-
 .../row/parquet/ParquetSchemaConverter.java        |   6 +-
 .../FlinkHoodieBackedTableMetadataWriter.java      |   6 +-
 .../commit/BaseFlinkCommitActionExecutor.java      |   9 +-
 .../FlinkDeletePartitionCommitActionExecutor.java  |   3 +-
 .../commit/FlinkInsertCommitActionExecutor.java    |   2 +-
 .../commit/FlinkUpsertCommitActionExecutor.java    |   2 +-
 .../table/upgrade/FlinkUpgradeDowngradeHelper.java |   3 +-
 .../hudi/client/HoodieJavaTableServiceClient.java  |  19 -
 .../apache/hudi/client/HoodieJavaWriteClient.java  |   3 +-
 .../client/common/JavaTaskContextSupplier.java     |  10 +
 .../bulkinsert/JavaGlobalSortPartitioner.java      |  14 +-
 .../commit/BaseJavaCommitActionExecutor.java       |   7 +-
 .../commit/JavaInsertCommitActionExecutor.java     |   2 +-
 .../commit/JavaUpsertCommitActionExecutor.java     |   2 +-
 .../table/action/commit/JavaUpsertPartitioner.java |  13 +-
 .../hudi/client/TestJavaHoodieBackedMetadata.java  |  16 +-
 .../testutils/HoodieJavaClientTestHarness.java     |  19 +-
 hudi-client/hudi-spark-client/pom.xml              |  14 +
 .../apache/hudi/client/HoodieSparkCompactor.java   |   2 +-
 .../org/apache/hudi/client/SparkRDDReadClient.java |   2 +-
 .../hudi/client/SparkRDDTableServiceClient.java    |  19 -
 .../apache/hudi/client/SparkRDDWriteClient.java    |   9 +-
 .../hudi/client/SparkTaskContextSupplier.java      |  10 +
 .../MultipleSparkJobExecutionStrategy.java         |  17 +-
 ...onsistentBucketClusteringExecutionStrategy.java |   3 +-
 .../SparkSingleFileSortExecutionStrategy.java      |   3 +-
 .../SparkSortAndSizeExecutionStrategy.java         |   3 +-
 .../client/common/HoodieSparkEngineContext.java    |   4 +-
 .../client/utils/SparkMetadataWriterUtils.java     |  32 +-
 .../client/validator/SparkPreCommitValidator.java  |   8 +-
 .../org/apache/hudi/data/HoodieJavaPairRDD.java    |   8 +
 .../bulkinsert/BulkInsertMapFunction.java          |  14 +-
 .../bulkinsert/GlobalSortPartitioner.java          |   6 +-
 .../bulkinsert/RDDPartitionSortPartitioner.java    |   9 +-
 .../bloom/BucketizedBloomCheckPartitioner.java     |   2 +-
 .../index/bloom/SparkHoodieBloomIndexHelper.java   |  21 +
 .../expression/ExpressionIndexSparkFunctions.java  |  10 +-
 .../expression/HoodieSparkExpressionIndex.java     |  15 +-
 .../hudi/index/hbase/SparkHoodieHBaseIndex.java    |  37 +-
 ...HoodieSparkFileGroupReaderBasedMergeHandle.java |  21 +-
 .../hudi/io/storage/HoodieSparkParquetReader.java  |   5 +-
 .../apache/hudi/merge/SparkRecordMergingUtils.java |   5 +-
 ...eBackedTableMetadataWriterTableVersionSix.java} | 103 +--
 .../hudi/metadata/SparkMetadataWriterFactory.java  |  55 ++
 .../apache/hudi/metrics/DistributedRegistry.java   |   2 +-
 .../apache/hudi/sort/SpaceCurveSortingHelper.java  |  22 +-
 .../org/apache/hudi/table/HoodieSparkTable.java    |   6 +-
 .../action/commit/AverageRecordSizeUtils.java      |  91 ---
 .../commit/BaseSparkCommitActionExecutor.java      |  27 +-
 .../action/commit/SparkBucketIndexPartitioner.java |   2 +-
 .../SparkDeletePartitionCommitActionExecutor.java  |   6 +-
 .../table/action/commit/UpsertPartitioner.java     |  14 +-
 .../hudi/HoodieDatasetBulkInsertHelper.scala       |  47 +-
 .../SparkFileFormatInternalRowReaderContext.scala  |   6 +-
 .../org/apache/hudi/util/SparkKeyGenUtils.scala    |   6 +-
 .../apache/spark/HoodieSparkKryoRegistrar.scala    |  11 +-
 .../spark/sql/HoodieCatalystExpressionUtils.scala  |   1 -
 .../apache/spark/sql/HoodieInternalRowUtils.scala  |   5 +
 .../org/apache/spark/sql/hudi/SparkAdapter.scala   |  11 +
 .../hudi/client/TestCompactionAdminClient.java     |  10 +-
 .../java/org/apache/hudi/client/TestSavepoint.java |  11 +-
 .../hudi/client/TestSparkRDDWriteClient.java       |  36 +
 .../common/TestHoodieSparkEngineContext.java       |  57 ++
 .../functional/TestExternalPathHandling.java       |  12 +-
 .../functional/TestHoodieBackedTableMetadata.java  |  87 +-
 .../TestHoodieClientOnCopyOnWriteStorage.java      |   5 +-
 .../functional/TestHoodieFileSystemViews.java      | 299 +++++++
 .../hudi/client/functional/TestHoodieIndex.java    |  12 +-
 .../client/functional/TestHoodieMetadataBase.java  |   3 +-
 .../TestSavepointRestoreCopyOnWrite.java           |   2 +-
 .../apache/hudi/data/TestHoodieJavaPairRDD.java    | 110 +++
 .../hudi/index/bloom/TestHoodieBloomIndex.java     |  58 +-
 .../expression/TestHoodieSparkExpressionIndex.java |  90 ++-
 .../apache/hudi/io/TestHoodieTimelineArchiver.java |  37 +-
 .../java/org/apache/hudi/table/TestCleaner.java    |  11 +-
 .../apache/hudi/table/TestHoodieSparkTable.java    | 136 ++++
 .../clean/TestCleanerInsertAndCleanByCommits.java  |   4 +-
 .../clean/TestCleanerInsertAndCleanByVersions.java |   6 +-
 .../action/commit/TestAverageRecordSizeUtils.java  | 216 -----
 .../table/action/commit/TestUpsertPartitioner.java |  92 ---
 .../table/action/compact/CompactionTestBase.java   |   6 +-
 .../table/functional/TestCleanActionExecutor.java  |   8 +-
 .../table/functional/TestCleanPlanExecutor.java    |   3 +-
 .../TestMarkerBasedRollbackStrategy.java           |  27 +-
 .../hudi/table/marker/TestDirectWriteMarkers.java  |  73 +-
 .../table/marker/TestDirectWriteMarkersV1.java     |  35 +-
 .../TestTimelineServerBasedWriteMarkers.java       | 128 ++-
 .../TestTimelineServerBasedWriteMarkersV1.java     |  52 ++
 .../hudi/table/marker/TestWriteMarkersBase.java    |  73 +-
 .../hudi/table/upgrade/TestUpgradeDowngrade.java   |  39 +
 .../hudi/testutils/HoodieCleanerTestBase.java      |   7 +-
 .../hudi/testutils/HoodieClientTestUtils.java      |  12 +-
 .../testutils/HoodieSparkClientTestHarness.java    |   2 +-
 .../SparkClientFunctionalTestHarness.java          |  11 +-
 hudi-common/pom.xml                                |  11 +-
 .../src/main/avro/HoodieCommitMetadata.avsc        |  70 ++
 .../src/main/avro/HoodieReplaceCommitMetadata.avsc |   5 +
 .../org/apache/hudi/BaseHoodieTableFileIndex.java  |  33 +-
 .../java/org/apache/hudi/avro/AvroSchemaCache.java |  47 ++
 .../AvroSchemaComparatorForSchemaEvolution.java    | 343 ++++++++
 .../apache/hudi/avro/AvroSchemaCompatibility.java  |   4 +-
 .../java/org/apache/hudi/avro/HoodieAvroUtils.java |  30 +-
 .../apache/hudi/avro/MercifulJsonConverter.java    |   3 +-
 .../processors/DecimalLogicalTypeProcessor.java    |  37 +-
 .../org/apache/hudi/avro/processors/Parser.java    |   2 +-
 .../org/apache/hudi/common/HoodieJsonPayload.java  |   2 +-
 .../org/apache/hudi/common/bloom/HashFunction.java |   6 +-
 .../hudi/common/bootstrap/FileStatusUtils.java     |   2 +-
 .../index/hfile/HFileBootstrapIndexReader.java     |   6 +-
 .../hudi/common/config/HoodieCommonConfig.java     |  14 +
 .../hudi/common/config/HoodieStorageConfig.java    |   2 +-
 .../common/config/HoodieTimeGeneratorConfig.java   |   2 +-
 .../org/apache/hudi/common/data/HoodieData.java    |   3 +-
 .../hudi/common/data/HoodieListPairData.java       |  27 +
 .../apache/hudi/common/data/HoodiePairData.java    |  12 +
 .../hudi/common/engine/HoodieEngineContext.java    |   2 +-
 .../hudi/common/engine/HoodieReaderContext.java    |  33 +-
 .../common/engine/LocalTaskContextSupplier.java    |   9 +
 .../hudi/common/engine/TaskContextSupplier.java    |   7 +
 .../hudi/common/fs/ConsistencyGuardConfig.java     |  10 +-
 .../java/org/apache/hudi/common/fs/FSUtils.java    |  13 +-
 .../hudi/common/fs/SizeAwareDataInputStream.java   |  14 +-
 .../hudi/common/fs/SizeAwareDataOutputStream.java  |   4 +-
 .../org/apache/hudi/common/model/ActionType.java   |  15 +-
 .../hudi/common/model/ConsistentHashingNode.java   |   8 +-
 .../common/model/DefaultHoodieRecordPayload.java   |   2 +-
 .../org/apache/hudi/common/model/FileSlice.java    |  12 +-
 .../hudi/common/model/HoodieCommitMetadata.java    |  14 +-
 .../apache/hudi/common/model/HoodieFileGroup.java  |  30 +-
 .../org/apache/hudi/common/model/HoodieKey.java    |   8 +-
 .../hudi/common/model/HoodiePartitionMetadata.java |   5 +-
 .../org/apache/hudi/common/model/HoodieRecord.java |  10 +-
 .../common/model/HoodieRecordGlobalLocation.java   |  12 +-
 .../hudi/common/model/HoodieRecordLocation.java    |  10 +-
 .../hudi/common/model/HoodieRecordMerger.java      |  38 +-
 .../common/model/HoodieReplaceCommitMetadata.java  |  32 +-
 .../java/org/apache/hudi/common/model/IOType.java  |   1 +
 .../model/OverwriteWithLatestAvroPayload.java      |   2 +-
 .../common/model/PartialUpdateAvroPayload.java     |   2 +-
 .../hudi/common/model/RewriteAvroPayload.java      |   2 +-
 .../hudi/common/model/WriteOperationType.java      |   4 +-
 .../CustomSerializer.java}                         |  16 +-
 .../DefaultSerializer.java}                        |  23 +-
 .../serialization/HoodieFileGroupSerializer.java   |  88 +++
 .../serialization/HoodieFileSliceSerializer.java   |  33 +-
 .../hudi/common/table/HoodieTableConfig.java       |   8 +-
 .../hudi/common/table/HoodieTableMetaClient.java   |  43 +-
 .../hudi/common/table/TableSchemaResolver.java     | 171 +---
 .../hudi/common/table/cdc/HoodieCDCExtractor.java  |   2 +-
 .../common/table/cdc/HoodieCDCInferenceCase.java   |   2 +-
 .../table/log/AbstractHoodieLogRecordScanner.java  |   6 +-
 .../table/log/BaseHoodieLogRecordReader.java       |  29 +-
 .../hudi/common/table/log/HoodieLogFileReader.java |   2 +-
 .../table/log/HoodieLogFormatReverseReader.java    |   2 +-
 .../table/log/HoodieMergedLogRecordReader.java     |  29 +-
 .../table/log/HoodieMergedLogRecordScanner.java    |  15 +-
 .../common/table/log/block/HoodieDataBlock.java    |  13 +-
 .../common/table/log/block/HoodieDeleteBlock.java  |   4 +-
 .../table/log/block/HoodieParquetDataBlock.java    |   5 +-
 .../hudi/common/table/marker/MarkerOperation.java  |   2 +
 ...dler.java => FileGroupReaderSchemaHandler.java} | 147 +++-
 ...ecordBuffer.java => FileGroupRecordBuffer.java} |  76 +-
 .../common/table/read/HoodieFileGroupReader.java   |  59 +-
 .../table/read/HoodieFileGroupRecordBuffer.java    |   5 +
 ...fer.java => KeyBasedFileGroupRecordBuffer.java} |  47 +-
 ...ava => PositionBasedFileGroupRecordBuffer.java} |  74 +-
 ...andler.java => PositionBasedSchemaHandler.java} |  18 +-
 ...fer.java => UnmergedFileGroupRecordBuffer.java} |   9 +-
 .../table/timeline/ArchivedTimelineLoader.java     |   6 +-
 .../common/table/timeline/BaseHoodieTimeline.java  | 149 ++--
 .../common/table/timeline/CommitMetadataSerDe.java |  26 +-
 .../table/timeline/CompletionTimeQueryView.java    |  20 +-
 .../table/timeline/HoodieActiveTimeline.java       | 194 ++---
 .../table/timeline/HoodieArchivedTimeline.java     |  49 +-
 .../common/table/timeline/HoodieInstantReader.java |  55 ++
 .../table/timeline/HoodieInstantTimeGenerator.java |  10 +-
 .../hudi/common/table/timeline/HoodieTimeline.java | 220 +++++-
 .../table/timeline/MetadataConversionUtils.java    | 295 +++----
 .../common/table/timeline/TimelineFactory.java     |   5 +-
 .../table/timeline/TimelineMetadataUtils.java      | 138 +---
 .../hudi/common/table/timeline/TimelineUtils.java  | 108 ++-
 .../common/table/timeline/dto/TimelineDTO.java     |   6 +-
 ...enerator.java => DefaultInstantComparator.java} |   4 +-
 .../timeline/versioning/v1/ActiveTimelineV1.java   | 236 +++---
 .../versioning/v1/ArchivedTimelineLoaderV1.java    |  29 +-
 .../timeline/versioning/v1/ArchivedTimelineV1.java | 172 +++-
 .../timeline/versioning/v1/BaseTimelineV1.java     |  26 +-
 .../versioning/v1/CommitMetadataSerDeV1.java       |  62 +-
 .../versioning/v1/CompletionTimeQueryViewV1.java   |   2 +-
 .../timeline/versioning/v1/TimelineV1Factory.java  |   9 +-
 .../timeline/versioning/v2/ActiveTimelineV2.java   | 250 +++---
 .../timeline/versioning/v2/ArchivedTimelineV2.java |  38 +-
 .../timeline/versioning/v2/BaseTimelineV2.java     |  26 +-
 .../versioning/v2/CommitMetadataSerDeV2.java       |  90 ++-
 .../versioning/v2/CompletionTimeQueryViewV2.java   |   3 +-
 .../timeline/versioning/v2/TimelineV2Factory.java  |   9 +-
 .../table/view/AbstractTableFileSystemView.java    | 108 +--
 .../common/table/view/FileSystemViewManager.java   |  97 ++-
 .../table/view/HoodieFileGroupSizeEstimator.java   |  44 ++
 .../table/view/HoodieTableFileSystemView.java      |  28 +-
 .../view/HoodieTablePreCommitFileSystemView.java   |  10 +-
 .../IncrementalTimelineSyncFileSystemView.java     |  18 +-
 .../hudi/common/table/view/NoOpTableMetadata.java  | 148 ++++
 .../table/view/PriorityBasedFileSystemView.java    |  14 +-
 .../view/RemoteHoodieTableFileSystemView.java      |  56 +-
 .../table/view/RocksDbBasedFileSystemView.java     |  35 +-
 .../view/SpillableMapBasedFileSystemView.java      | 113 ++-
 .../org/apache/hudi/common/util/CleanerUtils.java  |  49 +-
 .../apache/hudi/common/util/ClusteringUtils.java   |  62 +-
 .../org/apache/hudi/common/util/CommitUtils.java   |  12 +-
 .../apache/hudi/common/util/CompactionUtils.java   |  23 +-
 .../org/apache/hudi/common/util/ConfigUtils.java   |  24 +-
 .../common/util/HoodieCommonKryoRegistrar.java     |   6 +-
 .../hudi/common/util/InternalSchemaCache.java      |  43 +-
 ...oSchemaCache.java => LocalAvroSchemaCache.java} |  14 +-
 ...DefaultSizeEstimator.java => LogicalClock.java} |  16 +-
 .../org/apache/hudi/common/util/MarkerUtils.java   |   7 +-
 .../{VisibleForTesting.java => SystemClock.java}   |  14 +-
 .../common/util/collection/BitCaskDiskMap.java     |  49 +-
 .../hudi/common/util/collection/DiskMap.java       |  77 +-
 .../util/collection/ExternalSpillableMap.java      |  35 +-
 .../common/util/collection/LazyFileIterable.java   |  17 +-
 .../apache/hudi/common/util/collection/Pair.java   |   2 +-
 .../hudi/common/util/collection/RocksDBDAO.java    |  55 +-
 .../common/util/collection/RocksDbDiskMap.java     |  12 +-
 .../apache/hudi/common/util/collection/Triple.java |   4 +-
 .../apache/hudi/common/util/hash/JenkinsHash.java  |  12 +-
 .../apache/hudi/common/util/hash/MurmurHash.java   |   8 +-
 .../common/util/queue/DisruptorMessageQueue.java   |   2 +-
 .../hudi/config/metrics/HoodieMetricsConfig.java   |   5 +
 .../metrics/HoodieMetricsPrometheusConfig.java     |   2 +-
 ... HoodieDuplicateDataFileDetectedException.java} |   9 +-
 ...=> HoodieSchemaEvolutionConflictException.java} |  15 +-
 .../org/apache/hudi/expression/Predicates.java     |   6 +-
 .../index/expression/HoodieExpressionIndex.java    |  19 +
 .../hudi/index/secondary/HoodieSecondaryIndex.java |   1 -
 .../internal/schema/InternalSchemaBuilder.java     |   1 -
 .../org/apache/hudi/internal/schema/Types.java     |   3 +-
 .../schema/action/InternalSchemaChangeApplier.java |   4 +-
 .../hudi/internal/schema/action/TableChange.java   |   4 +-
 .../io/FileBasedInternalSchemaStorageManager.java  |   6 +-
 .../internal/schema/utils/InternalSchemaUtils.java |   6 +-
 .../hudi/internal/schema/utils/SerDeHelper.java    |   4 +-
 .../metadata/FileSystemBackedTableMetadata.java    |  21 +
 .../hudi/metadata/HoodieBackedTableMetadata.java   |  53 +-
 .../metadata/HoodieMetadataFileSystemView.java     | 123 ---
 .../hudi/metadata/HoodieMetadataMetrics.java       |   8 +-
 .../apache/hudi/metadata/HoodieTableMetadata.java  |   7 +
 .../hudi/metadata/HoodieTableMetadataUtil.java     | 146 ++--
 .../hudi/metadata/MetadataPartitionType.java       |   5 +-
 .../SecondaryIndexRecordGenerationUtils.java       |   3 +-
 .../hudi/metrics/MetricsGraphiteReporter.java      |   4 +-
 .../hudi/metrics/MetricsReporterFactory.java       |   2 +-
 .../custom/CustomizableMetricsReporter.java        |   4 +-
 .../hudi/metrics/datadog/DatadogReporter.java      |   2 +-
 .../hudi/timeline/TimelineServiceClient.java       |  76 ++
 .../hudi/timeline/TimelineServiceClientBase.java   | 140 ++++
 .../hudi/avro/MercifulJsonConverterTestBase.java   | 215 ++++-
 ...TestAvroSchemaComparatorForSchemaEvolution.java | 499 ++++++++++++
 .../org/apache/hudi/avro/TestHoodieAvroUtils.java  |  71 +-
 .../hudi/avro/TestMercifulJsonConverter.java       | 149 +++-
 .../common/data/TestHoodieListDataPairData.java    |  34 +
 .../common/fs/TestSizeAwareDataInputStream.java    | 115 +++
 .../common/model/TestHoodieCommitMetadata.java     |  82 +-
 .../model/TestHoodieReplaceCommitMetadata.java     |   1 -
 .../serialization/TestDefaultSerializer.java       |  52 ++
 .../TestHoodieFileGroupSerializer.java             |  82 ++
 .../TestHoodieFileSliceSerializer.java             |  65 ++
 .../hudi/common/table/log/TestLogFileIterator.java |   5 +-
 .../table/read/TestFileGroupRecordBuffer.java      | 368 +++++++++
 .../table/read/TestHoodieFileGroupReaderBase.java  |  11 +-
 .../read/TestHoodieFileGroupRecordBuffer.java      |  56 --
 .../versioning/BaseTestCommitMetadataSerDe.java    | 338 ++++++++
 .../versioning/v1/TestCommitMetadataSerDeV1.java}  |  31 +-
 .../versioning/v2/TestCommitMetadataSerDeV2.java   |  72 ++
 .../view/TestHoodieFileGroupSizeEstimator.java     |  62 ++
 .../view/TestPriorityBasedFileSystemView.java      | 103 +--
 .../hudi/common/testutils/CompactionTestUtils.java |   3 +-
 .../hudi/common/testutils/FileCreateUtils.java     | 184 +++--
 .../common/testutils/FileCreateUtilsLegacy.java    |  64 +-
 .../common/testutils/HoodieTestDataGenerator.java  |  79 +-
 .../hudi/common/testutils/HoodieTestUtils.java     |  25 +-
 .../reader/HoodieFileGroupReaderTestUtils.java     |  27 +-
 .../apache/hudi/common/util/TestCleanerUtils.java  |  59 ++
 .../apache/hudi/common/util/TestConfigUtils.java   |  17 +
 .../apache/hudi/common/util/TestHoodieTimer.java   |  25 +-
 ...emaCache.java => TestLocalAvroSchemaCache.java} |  38 +-
 .../apache/hudi/common/util/TestSystemClock.java   |  34 +-
 .../hudi/metrics/TestMetricsReporterFactory.java   |  38 +-
 .../hudi/timeline/TestTimelineServiceClient.java   | 223 ++++++
 .../avro-schema-evo/schema-allshapes-A.txt         |  80 ++
 .../avro-schema-evo/schema-allshapes-B.txt         | 123 +++
 ...e.avsc => decimal-logical-type-zero-scale.avsc} |   2 +-
 .../quickstart/utils/QuickstartConfigurations.java |  14 +-
 .../examples/quickstart/utils/SchemaBuilder.java   |   4 +-
 .../spark/HoodieSparkBootstrapExample.java         |   2 +-
 .../examples/spark/HoodieWriteClientExample.java   |   6 +-
 .../hudi/sink/StreamWriteOperatorCoordinator.java  |   5 +
 .../AppendWriteFunctionWithRateLimit.java}         |  19 +-
 .../AppendWriteFunctions.java}                     |  19 +-
 .../hudi/sink/append/AppendWriteOperator.java      |   2 +-
 .../bucket/ConsistentBucketAssignFunction.java     |   3 +-
 .../apache/hudi/sink/bulk/sort/SortOperator.java   |   2 +-
 .../hudi/sink/clustering/ClusteringPlanEvent.java  |  17 +
 .../sink/clustering/ClusteringPlanOperator.java    |  18 +-
 .../FlinkConsistentBucketUpdateStrategy.java       |   4 +-
 .../sink/partitioner/profile/WriteProfiles.java    |   5 +-
 .../hudi/sink/transform/ChainedTransformer.java    |   2 +-
 .../RowDataToHoodieFunctionWithRateLimit.java      |   2 +-
 .../java/org/apache/hudi/sink/utils/Pipelines.java |   8 +-
 .../apache/hudi/source/ExpressionEvaluators.java   |   4 +-
 .../org/apache/hudi/table/HoodieTableFactory.java  |   3 +
 .../org/apache/hudi/table/HoodieTableSource.java   |  12 +-
 .../org/apache/hudi/table/format/FormatUtils.java  |  11 +-
 .../hudi/table/format/cdc/CdcInputFormat.java      |   4 +-
 .../hudi/table/lookup/HoodieLookupFunction.java    |   2 +-
 .../org/apache/hudi/util/FlinkWriteClients.java    |   3 +-
 .../apache/hudi/util/RowDataToAvroConverters.java  |   4 +-
 .../org/apache/hudi/sink/TestWriteCopyOnWrite.java |  24 +
 .../hudi/sink/TestWriterWithPartitionTTl.java      |   3 +-
 .../hudi/sink/bucket/ITTestBucketStreamWrite.java  |   4 +-
 .../apache/hudi/sink/compact/TestCustomSerDe.java  |  19 +-
 .../utils/BucketStreamWriteFunctionWrapper.java    |   6 +
 .../hudi/sink/utils/BulkInsertFunctionWrapper.java |   6 +
 .../hudi/sink/utils/InsertFunctionWrapper.java     |  15 +
 .../hudi/sink/utils/MockSubtaskGateway.java}       |  35 +-
 .../sink/utils/StreamWriteFunctionWrapper.java     |   6 +
 .../hudi/sink/utils/TestFunctionWrapper.java       |  15 +-
 .../org/apache/hudi/sink/utils/TestWriteBase.java  |  13 +
 .../hudi/source/TestIncrementalInputSplits.java    |  16 +-
 .../org/apache/hudi/utils/TestClusteringUtil.java  |  15 +-
 .../org/apache/hudi/utils/TestCompactionUtil.java  |  11 +-
 .../org/apache/hudi/utils/TestStreamerUtil.java    |   4 +-
 .../test/java/org/apache/hudi/utils/TestUtils.java |   6 +-
 .../apache/hudi/adapter/ExecutionAttemptUtil.java} |  11 +-
 .../apache/hudi/adapter/ExecutionAttemptUtil.java} |  11 +-
 .../apache/hudi/adapter/ExecutionAttemptUtil.java} |  11 +-
 .../apache/hudi/adapter/ExecutionAttemptUtil.java} |  11 +-
 .../format/cow/vector/HeapMapColumnVector.java     |   4 +-
 ...odieCatalogs.java => ExecutionAttemptUtil.java} |  11 +-
 .../format/cow/vector/HeapMapColumnVector.java     |   4 +-
 .../apache/hudi/adapter/ExecutionAttemptUtil.java} |  11 +-
 .../format/cow/vector/HeapMapColumnVector.java     |   4 +-
 .../apache/hudi/adapter/ExecutionAttemptUtil.java} |  11 +-
 .../hfile/HBaseHFileBootstrapIndexReader.java      |   6 +-
 .../common/config/DFSPropertiesConfiguration.java  |   2 +-
 .../org/apache/hudi/common/util/AvroOrcUtils.java  |  18 +-
 .../apache/hudi/common/util/HadoopConfigUtils.java |   3 +-
 .../hudi/hadoop/fs/BoundedFsDataInputStream.java   |   4 +-
 .../hadoop/fs/HoodieRetryWrapperFileSystem.java    |  13 +-
 .../hadoop/fs/HoodieSerializableFileStatus.java    |  22 +-
 .../hudi/hadoop/fs/HoodieWrapperFileSystem.java    |   4 +-
 .../hudi/hadoop/fs/inline/InMemoryFileSystem.java  |   3 +-
 .../hudi/io/hadoop/HoodieAvroHFileWriter.java      |   4 +-
 .../apache/hudi/io/hadoop/HoodieAvroOrcWriter.java |   2 +-
 .../hudi/io/hadoop/HoodieBaseParquetWriter.java    |   4 +-
 .../index/TestBaseHoodieTableFileIndex.java        |  86 ++
 .../org/apache/hudi/common/fs/TestFSUtils.java     |  32 +
 .../common/fs/TestHoodieWrapperFileSystem.java     |   5 +-
 .../common/functional/TestHoodieLogFormat.java     |   8 +-
 .../hudi/common/table/TestHoodieTableConfig.java   |   8 +-
 .../common/table/TestHoodieTableMetaClient.java    |  59 +-
 .../hudi/common/table/TestTableSchemaResolver.java | 413 +---------
 .../hudi/common/table/TestTimelineUtils.java       |  53 +-
 .../TestHoodieFileGroupReaderInflightCommit.java   | 112 +++
 .../table/timeline/TestArchivedTimelineV1.java     | 749 ++++++++++++++++++
 .../table/timeline/TestHoodieActiveTimeline.java   | 156 +++-
 .../table/timeline/TestWaitBasedTimeGenerator.java |  24 +-
 .../view/TestHoodieTableFSViewWithClustering.java  |  12 +-
 .../table/view/TestHoodieTableFileSystemView.java  | 206 +++--
 .../table/view/TestIncrementalFSViewSync.java      |  28 +-
 .../TestRocksDBBasedIncrementalFSViewSync.java     |   6 +-
 .../table/view/TestRocksDbBasedFileSystemView.java |   6 +-
 .../view/TestSpillableMapBasedFileSystemView.java  |   6 +-
 ...TestSpillableMapBasedIncrementalFSViewSync.java |   6 +-
 .../common/testutils/HoodieCommonTestHarness.java  |  83 +-
 .../hudi/common/testutils/HoodieTestTable.java     | 163 ++--
 .../reader/HoodieFileGroupReaderTestHarness.java   |   9 +-
 .../hudi/common/util/TestClusteringUtils.java      |  34 +-
 .../apache/hudi/common/util/TestCommitUtils.java   |  19 +-
 .../common/util/collection/TestBitCaskDiskMap.java | 213 ++---
 .../util/collection/TestExternalSpillableMap.java  |  20 +-
 .../util/collection/TestRocksDbBasedMap.java       |  28 +-
 .../common/util/collection/TestRocksDbDiskMap.java | 225 +++---
 .../hudi/hadoop/HiveHoodieReaderContext.java       |  10 +
 .../HoodieFileGroupReaderBasedRecordReader.java    |   2 +-
 .../hudi/hadoop/HoodieHFileRecordReader.java       |   4 +-
 .../hudi/hadoop/HoodieROTablePathFilter.java       |   8 +-
 .../org/apache/hudi/hadoop/InputPathHandler.java   |   2 +-
 .../hadoop/hive/HoodieCombineHiveInputFormat.java  |  11 +-
 .../hive/HoodieCombineRealtimeFileSplit.java       |   6 +-
 .../realtime/AbstractRealtimeRecordReader.java     |  12 +-
 .../HoodieCombineRealtimeRecordReader.java         |   6 +-
 .../realtime/HoodieMergeOnReadSnapshotReader.java  |   5 +-
 .../apache/hudi/hadoop/utils/HoodieHiveUtils.java  |   2 +-
 .../hudi/hadoop/utils/HoodieInputFormatUtils.java  |  11 +-
 .../utils/HoodieRealtimeInputFormatUtils.java      |   3 +-
 .../hudi/hadoop/TestHoodieHFileInputFormat.java    |  23 +-
 .../hudi/hadoop/TestHoodieParquetInputFormat.java  |  23 +-
 .../realtime/TestHoodieRealtimeRecordReader.java   |  27 +-
 .../hudi/integ/testsuite/HoodieTestSuiteJob.java   |   5 +-
 .../dag/nodes/BaseValidateDatasetNode.java         |   5 +-
 .../testsuite/dag/nodes/ScheduleCompactNode.java   |   3 +-
 .../reader/DFSHoodieDatasetInputReader.java        |   4 +-
 .../testsuite/dag/nodes/SparkBulkInsertNode.scala  |   4 +-
 .../testsuite/dag/nodes/SparkDeleteNode.scala      |   5 +-
 .../dag/nodes/SparkDeletePartitionNode.scala       |   1 +
 .../testsuite/dag/nodes/SparkInsertNode.scala      |   5 +-
 .../testsuite/dag/nodes/SparkUpsertNode.scala      |   1 +
 .../dag/nodes/spark/sql/BaseSparkSqlNode.scala     |   3 +-
 .../nodes/spark/sql/SparkSqlCreateTableNode.scala  |   3 +-
 .../dag/nodes/spark/sql/SparkSqlDeleteNode.scala   |   3 +-
 .../dag/nodes/spark/sql/SparkSqlMergeNode.scala    |   3 +-
 .../dag/nodes/spark/sql/SparkSqlUpdateNode.scala   |   3 +-
 .../spark/sql/SparkSqlValidateDatasetNode.scala    |   3 +-
 .../StructuredStreamingSinkTestWriter.scala        |   5 +-
 .../hudi/integ/testsuite/utils/SparkSqlUtils.scala |   8 +-
 .../org/apache/hudi/integ/ITTestHoodieDemo.java    |   2 +-
 .../integ/command/ITTestHoodieSyncCommand.java     |   2 +-
 .../apache/hudi/common/util/ComparableVersion.java |   2 +-
 .../org/apache/hudi/common/util/FileIOUtils.java   |  11 +-
 .../org/apache/hudi/common/util/HoodieTimer.java   |  11 +
 .../org/apache/hudi/common/util/StringUtils.java   |   6 +-
 .../org/apache/hudi/io/hfile/HFileBlockType.java   |   2 +-
 .../apache/hudi/storage/HoodieInstantWriter.java   |  34 +-
 .../org/apache/hudi/storage/HoodieStorage.java     |  20 +-
 .../org/apache/hudi/storage/StorageSchemes.java    |  23 +-
 .../apache/hudi/common/util/TestStringUtils.java   |   4 +
 .../hudi/io/storage/TestHoodieStorageBase.java     |   3 +-
 hudi-kafka-connect/pom.xml                         |   5 +-
 .../connect/kafka/KafkaConnectControlAgent.java    |   2 +-
 .../hudi/connect/utils/KafkaConnectUtils.java      |   7 +-
 .../connect/writers/BufferedConnectWriter.java     |   5 +-
 .../timeline/HoodieMetaserverBasedTimeline.java    |  19 +-
 .../table/view/HoodieMetaserverFileSystemView.java |  11 +-
 .../client/HoodieMetaserverClientImp.java          |   4 +-
 .../main/java/org/apache/hudi/DataSourceUtils.java |   2 +-
 .../BaseDatasetBulkInsertCommitActionExecutor.java |   1 +
 ...setBulkInsertOverwriteCommitActionExecutor.java |   2 +-
 ...eamerDatasetBulkInsertCommitActionExecutor.java |   2 +-
 .../hudi/internal/BaseWriterCommitMessage.java     |   2 +-
 .../internal/DataSourceInternalWriterHelper.java   |   2 +-
 .../main/java/org/apache/hudi/sql/InsertMode.java  |   2 +-
 .../apache/hudi/AutoRecordKeyGenerationUtils.scala |   1 +
 .../org/apache/hudi/BloomFiltersIndexSupport.scala |   1 +
 .../scala/org/apache/hudi/BucketIndexSupport.scala |   3 +-
 .../org/apache/hudi/ColumnStatsIndexSupport.scala  |  22 +-
 .../scala/org/apache/hudi/DataSourceOptions.scala  |   2 +-
 .../main/scala/org/apache/hudi/DefaultSource.scala |   9 +-
 .../main/scala/org/apache/hudi/EmptyRelation.scala |   2 +-
 .../org/apache/hudi/ExpressionIndexSupport.scala   |   7 +-
 .../scala/org/apache/hudi/FileSystemRelation.scala |   3 +-
 .../scala/org/apache/hudi/HoodieBaseRelation.scala |   7 +-
 .../org/apache/hudi/HoodieBootstrapMORRDD.scala    |   4 +-
 .../apache/hudi/HoodieBootstrapMORRelation.scala   |   1 +
 .../scala/org/apache/hudi/HoodieBootstrapRDD.scala |   2 +-
 .../org/apache/hudi/HoodieBootstrapRelation.scala  |   2 +-
 .../scala/org/apache/hudi/HoodieCLIUtils.scala     |   2 +
 .../org/apache/hudi/HoodieCreateRecordUtils.scala  |  12 +-
 .../scala/org/apache/hudi/HoodieFileIndex.scala    |  31 +-
 .../hudi/HoodieHadoopFsRelationFactory.scala       |  22 +-
 .../org/apache/hudi/HoodieMergeOnReadRDDV1.scala   |   6 +-
 .../hudi/HoodiePartitionCDCFileGroupMapping.scala  |   1 +
 .../hudi/HoodiePartitionFileSliceMapping.scala     |   1 +
 .../scala/org/apache/hudi/HoodieSchemaUtils.scala  |   3 +-
 .../org/apache/hudi/HoodieSparkSqlWriter.scala     |  22 +-
 .../scala/org/apache/hudi/HoodieWriterUtils.scala  |  46 +-
 .../org/apache/hudi/IncrementalRelationV1.scala    |  12 +-
 .../org/apache/hudi/IncrementalRelationV2.scala    |   8 +-
 .../src/main/scala/org/apache/hudi/Iterators.scala |   5 +-
 .../hudi/MergeOnReadIncrementalRelationV1.scala    |   4 +-
 .../apache/hudi/PartitionStatsIndexSupport.scala   |  11 +-
 .../org/apache/hudi/RecordLevelIndexSupport.scala  |   3 +-
 .../org/apache/hudi/SecondaryIndexSupport.scala    |   2 +-
 .../org/apache/hudi/SparkBaseIndexSupport.scala    |  11 +-
 .../apache/hudi/SparkHoodieTableFileIndex.scala    |   7 +-
 .../scala/org/apache/hudi/TimelineRelation.scala   |   3 +-
 .../org/apache/hudi/cdc/CDCFileGroupIterator.scala |  16 +-
 .../scala/org/apache/hudi/cdc/CDCRelation.scala    |   4 +-
 .../datasources/HoodieInMemoryFileIndex.scala      |   5 +-
 .../sql/catalyst/catalog/HoodieCatalogTable.scala  |   6 +-
 .../datasources/HoodieMultipleBaseFileFormat.scala |   7 +-
 ...odieFileGroupReaderBasedParquetFileFormat.scala |  26 +-
 .../parquet/LegacyHoodieParquetFileFormat.scala    |   3 +-
 .../parquet/SparkParquetReaderBase.scala           |   5 +-
 .../apache/spark/sql/hudi/DataSkippingUtils.scala  |   1 +
 .../spark/sql/hudi/HoodieSqlCommonUtils.scala      |   7 +-
 .../spark/sql/hudi/ProvidesHoodieConfig.scala      |  61 +-
 .../AlterHoodieTableAddColumnsCommand.scala        |   8 +-
 .../AlterHoodieTableAddPartitionCommand.scala      |   1 +
 .../AlterHoodieTableChangeColumnCommand.scala      |   3 +-
 .../AlterHoodieTableDropPartitionCommand.scala     |   1 +
 .../command/AlterHoodieTableRenameCommand.scala    |   4 +-
 .../hudi/command/CreateHoodieTableCommand.scala    |   5 +-
 .../command/CreateHoodieTableLikeCommand.scala     |   1 +
 .../sql/hudi/command/DropHoodieTableCommand.scala  |   1 +
 .../sql/hudi/command/MergeIntoKeyGenerator.scala   |   3 +-
 .../hudi/command/RepairHoodieTableCommand.scala    |   3 +-
 .../command/ShowHoodieTablePartitionsCommand.scala |   1 +
 .../spark/sql/hudi/command/SqlKeyGenerator.scala   |   4 +-
 .../hudi/command/TruncateHoodieTableCommand.scala  |   1 +
 .../sql/hudi/streaming/HoodieMetadataLog.scala     |   1 +
 .../sql/hudi/streaming/HoodieStreamSourceV1.scala  |   9 +-
 .../sql/hudi/streaming/HoodieStreamSourceV2.scala  |   5 +-
 .../java/org/apache/hudi/TestDataSourceUtils.java  |   1 +
 .../org/apache/hudi/TestHoodieWriterUtils.java     |  46 ++
 .../hudi/testutils/SparkDatasetTestUtils.java      |   7 +-
 .../org/apache/hudi/TestDataSourceOptions.scala    |   1 +
 .../apache/hudi/TestRecordLevelIndexSupport.scala  |   1 +
 .../apache/hudi/TestSecondaryIndexSupport.scala    |   1 +
 .../cdc/TestInternalRowToJsonStringConverter.scala |   1 +
 .../hudi/schema/TestHoodieSparkSchemaUtils.scala   |   1 +
 .../datasources/TestHoodieInMemoryFileIndex.scala  |   3 +-
 ...stSparkFileFormatInternalRowReaderContext.scala |   2 +-
 .../spark/sql/hive/TestHiveClientUtils.scala       |   5 +-
 .../spark/sql/hudi/TestHoodieFileIndex.scala       |  22 +-
 .../spark/sql/hudi/TestProvidesHoodieConfig.scala  |   5 +-
 .../spark/sql/hudi/TestSparkConfigUtils.scala      |   1 +
 .../main/java/org/apache/hudi/QuickstartUtils.java |  31 +-
 .../apache/hudi/cli/BootstrapExecutorUtils.java    |   4 +-
 .../apache/hudi/cli/HDFSParquetImporterUtils.java  |   4 +-
 .../spark/sql/hudi/analysis/HoodieAnalysis.scala   |  15 +-
 .../analysis/HoodiePruneFileSourcePartitions.scala |   6 +-
 .../hudi/command/CallProcedureHoodieCommand.scala  |   2 +-
 .../hudi/command/CompactionHoodiePathCommand.scala |   2 +-
 .../command/CompactionHoodieTableCommand.scala     |   2 +-
 .../command/CompactionShowHoodiePathCommand.scala  |   2 +-
 .../command/CompactionShowHoodieTableCommand.scala |   2 +-
 .../command/CreateHoodieTableAsSelectCommand.scala |  16 +-
 .../hudi/command/DeleteHoodieTableCommand.scala    |  41 +-
 .../spark/sql/hudi/command/IndexCommands.scala     |   5 +-
 .../command/InsertIntoHoodieTableCommand.scala     |  27 +-
 .../hudi/command/MergeIntoHoodieTableCommand.scala | 348 ++++++--
 .../hudi/command/UpdateHoodieTableCommand.scala    |   6 +-
 .../hudi/command/payload/ExpressionPayload.scala   |   4 +-
 .../procedures/CommitsCompareProcedure.scala       |   4 +-
 .../procedures/CreateMetadataTableProcedure.scala  |   4 +-
 .../procedures/DropPartitionProcedure.scala        |   3 +-
 .../procedures/ExportInstantsProcedure.scala       |  10 +-
 .../procedures/InitMetadataTableProcedure.scala    |   4 +-
 .../RepairCorruptedCleanFilesProcedure.scala       |   5 +-
 .../procedures/RepairDeduplicateProcedure.scala    |   2 +-
 .../command/procedures/RunBootstrapProcedure.scala |   3 +-
 .../procedures/RunClusteringProcedure.scala        |   8 +-
 .../procedures/RunCompactionProcedure.scala        |   2 +-
 .../RunRollbackInflightTableServiceProcedure.scala |   1 +
 .../procedures/ShowArchivedCommitsProcedure.scala  |   7 +-
 .../procedures/ShowClusteringProcedure.scala       |   3 +-
 .../ShowColumnStatsOverlapProcedure.scala          |  21 +-
 .../ShowCommitExtraMetadataProcedure.scala         |  10 +-
 .../procedures/ShowCommitFilesProcedure.scala      |   9 +-
 .../procedures/ShowCommitPartitionsProcedure.scala |  13 +-
 .../procedures/ShowCommitWriteStatsProcedure.scala |  13 +-
 .../command/procedures/ShowCommitsProcedure.scala  |   7 +-
 .../procedures/ShowFileStatusProcedure.scala       |  17 +-
 .../procedures/ShowFileSystemViewProcedure.scala   |  16 +-
 .../ShowHoodieLogFileMetadataProcedure.scala       |   2 +-
 .../ShowHoodieLogFileRecordsProcedure.scala        |   4 +-
 .../procedures/ShowInvalidParquetProcedure.scala   |  10 +-
 .../ShowMetadataTableColumnStatsProcedure.scala    |  26 +-
 .../procedures/ShowRollbacksProcedure.scala        |  12 +-
 .../StatsWriteAmplificationProcedure.scala         |   5 +-
 .../procedures/TruncateTableProcedure.scala        |   1 +
 .../procedures/UpgradeOrDowngradeProcedure.scala   |   2 +-
 .../procedures/ValidateHoodieSyncProcedure.scala   |   7 +-
 .../spark/sql/parser/HoodieCommonSqlParser.scala   |   6 +-
 .../hudi/TestHoodieMergeHandleWithSparkMerger.java |   2 +-
 ...=> TestPositionBasedFileGroupRecordBuffer.java} |  12 +-
 .../hudi/client/TestHoodieClientMultiWriter.java   | 294 ++++++-
 .../functional/TestHoodieBackedMetadata.java       | 137 +++-
 .../TestMetadataUtilRLIandSIRecordGeneration.java  |  23 +-
 .../TestRemoteFileSystemViewWithMetadataTable.java |  12 +-
 .../TestSavepointRestoreMergeOnRead.java           |   2 +-
 .../TestColStatsRecordWithMetadataRecord.java      |  10 +
 .../TestHoodieDatasetBulkInsertHelper.java         |   2 +-
 .../functional/TestSparkClusteringCornerCases.java |  80 ++
 .../apache/hudi/functional/TestWriteClient.java    |   3 +-
 .../hudi/table/TestHoodieMergeOnReadTable.java     |  29 +-
 .../table/action/compact/TestAsyncCompaction.java  |  42 +-
 .../table/action/compact/TestHoodieCompactor.java  |  26 +-
 .../TestMergeOnReadRollbackActionExecutor.java     |  13 +-
 ...arkCopyOnWriteTableRollbackTableVersionSix.java |  63 ++
 .../TestHoodieSparkMergeOnReadTableCompaction.java | 275 ++++++-
 .../TestHoodieSparkMergeOnReadTableRollback.java   | 258 ++++--
 .../table/functional/TestHoodieSparkRollback.java  | 307 +++++++
 .../apache/hudi/testutils/DataSourceTestUtils.java |  33 +-
 .../src/test/resources/exampleEvolvedSchema.txt    |   5 +
 .../src/test/resources/exampleSchema.txt           |   5 +
 .../src/test/resources/sql-statements.sql          |  16 +-
 .../TestIncrementalQueryWithArchivedInstants.scala |  10 +-
 .../apache/hudi/HoodieSparkWriterTestBase.scala    |   2 +-
 .../org/apache/hudi/TestAutoKeyGenForSQL.scala     |   1 +
 .../org/apache/hudi/TestAvroConversionUtils.scala  |   3 +-
 .../hudi/TestAvroSchemaResolutionSupport.scala     |   2 +-
 .../org/apache/hudi/TestDataSkippingUtils.scala    |   4 +-
 .../org/apache/hudi/TestDataSourceDefaults.scala   |   2 +-
 .../hudi/TestGenericRecordAndRowConsistency.scala  |   2 +-
 .../apache/hudi/TestHoodieDataSourceHelper.scala   |   6 +-
 .../org/apache/hudi/TestHoodieFileIndex.scala      |  14 +-
 .../org/apache/hudi/TestHoodieSparkSqlWriter.scala |  55 +-
 .../TestHoodieSparkSqlWriterPartitionTTL.scala     |   3 +-
 .../apache/hudi/TestHoodieSparkSqlWriterUtc.scala  |   2 +-
 .../org/apache/hudi/TestHoodieSparkUtils.scala     |   2 +-
 .../org/apache/hudi/TestInsertDedupPolicy.scala    |  26 +-
 .../hudi/TestMultipleTableVersionWriting.scala     |   1 +
 .../hudi/TestParquetReaderCompatibility.scala      |   4 +-
 .../org/apache/hudi/TestSparkFilterHelper.scala    |   2 +-
 .../hudi/TestTableSchemaResolverWithSparkSQL.scala |   2 +-
 .../model/TestHoodieRecordSerialization.scala      |   8 +-
 .../read/TestHoodieFileGroupReaderOnSpark.scala    | 145 +++-
 .../hudi/functional/ColumnStatIndexTestBase.scala  | 114 ++-
 .../hudi/functional/HoodieStatsIndexTestBase.scala |   5 +-
 .../functional/PartitionStatsIndexTestBase.scala   |   1 +
 .../hudi/functional/RecordLevelIndexTestBase.scala |   7 +-
 .../TestAutoGenerationOfRecordKeys.scala           |  12 +-
 .../hudi/functional/TestBasicSchemaEvolution.scala |   6 +-
 .../functional/TestBloomFiltersIndexSupport.scala  |  16 +-
 .../hudi/functional/TestBucketIndexSupport.scala   |   6 +-
 .../apache/hudi/functional/TestCOWDataSource.scala | 119 +--
 .../hudi/functional/TestColumnStatsIndex.scala     | 184 +++--
 .../functional/TestColumnStatsIndexWithSQL.scala   |  18 +-
 .../functional/TestDataSourceForBootstrap.scala    |   2 +
 .../apache/hudi/functional/TestEmptyCommit.scala   |   4 +-
 .../hudi/functional/TestHoodieActiveTimeline.scala |   9 +-
 .../TestHoodieMultipleBaseFileFormat.scala         |   9 +-
 .../TestIncrementalReadWithFullTableScan.scala     |   7 +-
 .../hudi/functional/TestLayoutOptimization.scala   |   6 +-
 .../apache/hudi/functional/TestMORDataSource.scala | 133 ++--
 .../hudi/functional/TestMORDataSourceStorage.scala |   7 +-
 .../hudi/functional/TestMetadataRecordIndex.scala  |   6 +-
 .../TestMetadataTableWithSparkDataSource.scala     |   4 +-
 .../hudi/functional/TestMetricsReporter.scala      |   4 +-
 .../functional/TestPartialUpdateAvroPayload.scala  |   4 +-
 .../hudi/functional/TestPartitionStatsIndex.scala  |  26 +-
 .../TestPartitionStatsIndexWithSql.scala           |  25 +-
 .../functional/TestPartitionStatsPruning.scala     |   1 +
 .../hudi/functional/TestRecordLevelIndex.scala     |  43 +-
 .../TestRecordLevelIndexTableVersionSix.scala      |  16 +-
 .../functional/TestRecordLevelIndexWithSQL.scala   |  10 +-
 .../functional/TestSecondaryIndexPruning.scala     |  27 +-
 .../hudi/functional/TestSevenToEightUpgrade.scala  | 221 +++++-
 .../functional/TestSixToFiveDowngradeHandler.scala |   8 +-
 .../hudi/functional/TestSparkDataSource.scala      | 135 +++-
 .../hudi/functional/TestSparkSqlCoreFlow.scala     |   6 +-
 .../TestSparkSqlWithCustomKeyGenerator.scala       |   3 +-
 .../TestSparkSqlWithTimestampKeyGenerator.scala    |   1 +
 ...TestStreamSourceReadByStateTransitionTime.scala |   1 -
 .../hudi/functional/TestStreamingSource.scala      |   3 +-
 .../hudi/functional/TestTimeTravelQuery.scala      |  11 +-
 .../functional/TestWriteTableVersionConfig.scala   |   6 +-
 .../hudi/functional/cdc/HoodieCDCTestBase.scala    |  16 +-
 .../functional/cdc/TestCDCDataFrameSuite.scala     |  11 +-
 .../functional/cdc/TestCDCStreamingSuite.scala     |   4 +-
 .../org/apache/hudi/util/JavaConversions.scala     |   2 +-
 .../spark/hudi/benchmark/HoodieBenchmark.scala     |   1 -
 .../execution/benchmark/AvroSerDerBenchmark.scala  |   3 +-
 .../benchmark/BoundInMemoryExecutorBenchmark.scala |   2 +-
 .../benchmark/CowTableReadBenchmark.scala          |   2 +-
 .../benchmark/LSMTimelineReadBenchmark.scala       |  10 +-
 .../TestHoodiePruneFileSourcePartitions.scala      |   4 +-
 .../analysis/TestMergeIntoHoodieTableCommand.scala | 108 +++
 .../sql/hudi/common/HoodieSparkSqlTestBase.scala   |  78 +-
 .../hudi/common/TestHoodieInternalRowUtils.scala   |   6 +-
 .../apache/spark/sql/hudi/common/TestSqlConf.scala |   5 +-
 .../hudi/common/TestTableColumnTypeMismatch.scala  | 879 +++++++++++++++++++++
 .../apache/spark/sql/hudi/ddl/TestAlterTable.scala |  83 +-
 .../sql/hudi/ddl/TestAlterTableDropPartition.scala |  13 +-
 .../sql/hudi/{dml => ddl}/TestDropTable.scala      |  28 +-
 .../sql/hudi/{dml => ddl}/TestRepairTable.scala    |  15 +-
 .../sql/hudi/{dml => ddl}/TestShowPartitions.scala |  28 +-
 .../sql/hudi/{dml => ddl}/TestTruncateTable.scala  |  15 +-
 .../spark/sql/hudi/dml/TestDeleteFromTable.scala   |   1 -
 .../spark/sql/hudi/dml/TestDeleteTable.scala       |  50 ++
 .../spark/sql/hudi/dml/TestInsertTable.scala       | 102 ++-
 .../sql/hudi/dml/TestMergeIntoLogOnlyTable.scala   |   4 +-
 .../spark/sql/hudi/dml/TestMergeIntoTable.scala    | 413 +++++-----
 .../spark/sql/hudi/dml/TestMergeIntoTable2.scala   | 208 +++--
 .../TestMergeIntoTableWithNonRecordKeyField.scala  |   6 +-
 .../hudi/dml/TestMergeModeCommitTimeOrdering.scala |   3 +
 .../hudi/dml/TestMergeModeEventTimeOrdering.scala  |   5 +-
 .../hudi/dml/TestPartialUpdateForMergeInto.scala   | 159 +++-
 .../spark/sql/hudi/dml/TestUpdateTable.scala       |  54 +-
 .../hudi/{dml => feature}/TestCDCForSparkSQL.scala |  28 +-
 .../{dml => feature}/TestCompactionTable.scala     |  28 +-
 .../{dml => feature}/TestDataSkippingQuery.scala   |   2 +-
 .../TestQueryMergeOnReadOptimizedTable.scala       |  28 +-
 .../index/TestExpressionIndex.scala                |  65 +-
 .../sql/hudi/feature/index/TestGlobalIndex.scala   |  96 +++
 .../index/TestIndexSyntax.scala                    |   3 +-
 .../index/TestSecondaryIndex.scala                 |  15 +-
 .../sql/hudi/procedure/TestCallCommandParser.scala |   3 +-
 .../hudi/procedure/TestClusteringProcedure.scala   |  11 +-
 .../procedure/TestDropPartitionProcedure.scala     |  14 +-
 .../procedure/TestHdfsParquetImportProcedure.scala |   2 +
 ...tRunRollbackInflightTableServiceProcedure.scala |   1 +
 .../procedure/TestShowFileStatusProcedure.scala    |   5 +-
 .../TestShowInvalidParquetProcedure.scala          |   6 +-
 .../sql/hudi/procedure/TestTTLProcedure.scala      |   2 +-
 .../procedure/TestTruncateTableProcedure.scala     |   7 +-
 .../TestUpgradeOrDowngradeProcedure.scala          |   5 +-
 .../Spark3HoodieVectorizedParquetRecordReader.java |  13 +-
 .../scala/org/apache/hudi/Spark3RowSerDe.scala     |   1 +
 .../spark/sql/HoodieSpark3CatalogUtils.scala       |   1 +
 .../spark/sql/HoodieSpark3CatalystPlanUtils.scala  |   1 +
 .../spark/sql/adapter/BaseSpark3Adapter.scala      |   8 +-
 .../HoodieFileSystemViewTableValuedFunction.scala  |   1 +
 .../sql/catalyst/plans/logcal/HoodieQuery.scala    |   1 +
 .../logcal/HoodieTimelineTableValuedFunction.scala |   1 +
 .../datasources/Spark3ParsePartitionUtil.scala     |   3 +-
 .../Spark3ParquetSchemaEvolutionUtils.scala        |  11 +-
 .../sql/hudi/analysis/HoodieSpark3Analysis.scala   |   2 +-
 .../spark/sql/hudi/catalog/BasicStagedTable.scala  |   1 +
 .../spark/sql/hudi/catalog/HoodieCatalog.scala     |  12 +-
 .../sql/hudi/catalog/HoodieInternalV2Table.scala   |   5 +-
 .../spark/sql/hudi/command/AlterTableCommand.scala |  15 +-
 .../sql/HoodieSpark33CatalystExpressionUtils.scala |   2 +-
 .../spark/sql/HoodieSpark33CatalystPlanUtils.scala |   2 +-
 .../apache/spark/sql/adapter/Spark3_3Adapter.scala |   6 +
 .../apache/spark/sql/avro/AvroDeserializer.scala   |  10 +-
 .../org/apache/spark/sql/avro/AvroSerializer.scala |   4 +-
 .../Spark33LegacyHoodieParquetFileFormat.scala     |  12 +-
 .../hudi/Spark33ResolveHudiAlterTableCommand.scala |   1 +
 .../sql/hudi/analysis/HoodieSpark33Analysis.scala  |   2 +-
 .../HoodieSpark3_3ExtendedSqlAstBuilder.scala      |  15 +-
 .../parser/HoodieSpark3_3ExtendedSqlParser.scala   |   6 +-
 .../sql/HoodieSpark34CatalystExpressionUtils.scala |   2 +-
 .../spark/sql/HoodieSpark34CatalystPlanUtils.scala |   2 +-
 .../apache/spark/sql/adapter/Spark3_4Adapter.scala |  14 +-
 .../apache/spark/sql/avro/AvroDeserializer.scala   |  11 +-
 .../org/apache/spark/sql/avro/AvroSerializer.scala |   5 +-
 .../org/apache/spark/sql/avro/AvroUtils.scala      |   9 +-
 .../datasources/Spark34NestedSchemaPruning.scala   |   1 +
 .../Spark34LegacyHoodieParquetFileFormat.scala     |  11 +-
 .../hudi/Spark34ResolveHudiAlterTableCommand.scala |   1 +
 .../sql/hudi/analysis/HoodieSpark34Analysis.scala  |   4 +-
 .../HoodieSpark3_4ExtendedSqlAstBuilder.scala      |  19 +-
 .../parser/HoodieSpark3_4ExtendedSqlParser.scala   |   9 +-
 .../sql/HoodieSpark35CatalystExpressionUtils.scala |   2 +-
 .../apache/spark/sql/adapter/Spark3_5Adapter.scala |   8 +-
 .../apache/spark/sql/avro/AvroDeserializer.scala   |  11 +-
 .../org/apache/spark/sql/avro/AvroSerializer.scala |   5 +-
 .../org/apache/spark/sql/avro/AvroUtils.scala      |   9 +-
 .../HoodieSpark35PartitionedFileUtils.scala        |   1 +
 .../datasources/Spark35NestedSchemaPruning.scala   |   1 +
 .../parquet/Spark35DataSourceUtils.scala           |   2 +-
 .../Spark35LegacyHoodieParquetFileFormat.scala     |  11 +-
 .../datasources/parquet/Spark35ParquetReader.scala |   2 +-
 .../hudi/Spark35ResolveHudiAlterTableCommand.scala |   1 +
 .../HoodieSpark3_5ExtendedSqlAstBuilder.scala      |  17 +-
 .../parser/HoodieSpark3_5ExtendedSqlParser.scala   |   9 +-
 .../HoodieBulkInsertInternalWriterTestBase.java    |   4 +-
 .../TestHoodieBulkInsertDataInternalWriter.java    |  14 +-
 .../TestHoodieDataSourceInternalBatchWrite.java    |   6 +-
 hudi-sync/hudi-datahub-sync/pom.xml                |  15 +
 .../hudi/sync/datahub/DataHubTableProperties.java  |   4 +-
 .../sync/datahub/TestDataHubTableProperties.java   |  77 ++
 .../apache/hudi/hive/util/ColumnNameXLator.java    |   6 +-
 .../org/apache/hudi/hive/util/HiveSchemaUtil.java  |   4 +-
 .../org/apache/hudi/hive/TestHiveSyncTool.java     |  50 ++
 .../hudi/hive/testutils/HiveTestCluster.java       |   8 +-
 .../apache/hudi/hive/testutils/HiveTestUtil.java   |  28 +-
 .../org/apache/hudi/hive/SchemaDifference.java     |   6 +-
 .../apache/hudi/sync/common/HoodieSyncConfig.java  |   2 +-
 .../hudi/sync/common/HoodieSyncException.java      |   2 +-
 .../sync/common/metrics/HoodieMetaSyncMetrics.java |   2 +-
 .../hudi/sync/common/util/SyncUtilHelpers.java     |   2 +
 hudi-tests-common/pom.xml                          |   5 +
 .../hudi/timeline/service/RequestHandler.java      |  23 +-
 .../hudi/timeline/service/TimelineService.java     |  21 +-
 .../timeline/service/handlers/BaseFileHandler.java |   6 +-
 .../service/handlers/FileSliceHandler.java         |   6 +-
 .../hudi/timeline/service/handlers/Handler.java    |  13 +-
 .../service/handlers/InstantStateHandler.java      |  10 +-
 .../timeline/service/handlers/MarkerHandler.java   |  23 +-
 .../timeline/service/handlers/TimelineHandler.java |   6 +-
 .../AsyncTimelineServerBasedDetectionStrategy.java |   2 +-
 .../MarkerBasedEarlyConflictDetectionRunnable.java |  14 +-
 .../service/handlers/marker/MarkerDirState.java    |   2 +-
 .../timeline/service/MockHoodieHadoopStorage.java  |  92 +++
 .../hudi/timeline/service/TestRequestHandler.java  | 147 ++++
 .../hudi/timeline/service/TestTimelineService.java |   7 +-
 .../service/TimelineServiceTestHarness.java        | 192 +++++
 .../TestRemoteHoodieTableFileSystemView.java       | 100 +--
 hudi-utilities/pom.xml                             |  27 +-
 .../apache/hudi/utilities/HDFSParquetImporter.java |  12 +-
 .../org/apache/hudi/utilities/HoodieCleaner.java   |   7 +-
 .../apache/hudi/utilities/HoodieClusteringJob.java |   2 +-
 .../org/apache/hudi/utilities/HoodieCompactor.java |   4 +-
 .../hudi/utilities/HoodieDataTableValidator.java   |   4 +-
 .../hudi/utilities/HoodieDropPartitionsTool.java   |   6 +-
 .../org/apache/hudi/utilities/HoodieIndexer.java   |   2 +-
 .../utilities/HoodieMetadataTableValidator.java    | 121 +--
 .../apache/hudi/utilities/HoodieRepairTool.java    |   2 +-
 .../hudi/utilities/HoodieSnapshotCopier.java       |   4 +-
 .../hudi/utilities/HoodieSnapshotExporter.java     |   8 +-
 .../org/apache/hudi/utilities/HoodieTTLJob.java    |   7 +-
 .../org/apache/hudi/utilities/TableSizeStats.java  |   4 +-
 .../utilities/callback/SourceCommitCallback.java   |   6 +
 .../kafka/HoodieWriteCommitKafkaCallback.java      |   6 +-
 ...heckpointFromAnotherHoodieTimelineProvider.java |   5 +-
 .../checkpointing/KafkaConnectHdfsProvider.java    |   2 +-
 .../hudi/utilities/config/KafkaSourceConfig.java   |  10 +
 .../ingestion/HoodieIngestionMetrics.java          |  14 +-
 .../hudi/utilities/perf/TimelineServerPerf.java    |   4 +-
 .../utilities/schema/FilebasedSchemaProvider.java  |  60 +-
 .../utilities/schema/JdbcbasedSchemaProvider.java  |   2 +-
 .../utilities/schema/SchemaRegistryProvider.java   |  62 ++
 .../converter/JsonToAvroSchemaConverter.java       | 464 ++++++++---
 .../converter/JsonToAvroSchemaConverterConfig.java |  51 ++
 .../hudi/utilities/sources/AvroKafkaSource.java    |  13 +-
 .../hudi/utilities/sources/HoodieIncrSource.java   |   9 +-
 .../hudi/utilities/sources/JsonKafkaSource.java    |  81 +-
 .../apache/hudi/utilities/sources/KafkaSource.java |   8 +-
 .../hudi/utilities/sources/ProtoKafkaSource.java   |   7 +
 .../org/apache/hudi/utilities/sources/Source.java  |  41 +
 .../utilities/sources/debezium/DebeziumSource.java |   8 +-
 .../sources/helpers/DatePartitionPathSelector.java |   2 +-
 .../utilities/sources/helpers/KafkaOffsetGen.java  | 138 +++-
 .../utilities/sources/helpers/KafkaSourceUtil.java |  50 ++
 .../sources/helpers/ProtoConversionUtil.java       |   3 +-
 .../utilities/sources/helpers/QueryRunner.java     |   9 +-
 .../sources/helpers/gcs/MessageValidity.java       |   2 +-
 .../utilities/streamer/BaseErrorTableWriter.java   |   5 +
 .../hudi/utilities/streamer/BootstrapExecutor.java |   7 +-
 .../streamer/HoodieMultiTableStreamer.java         |  27 +-
 .../hudi/utilities/streamer/HoodieStreamer.java    |  17 +-
 .../utilities/streamer/HoodieStreamerMetrics.java  |   2 +-
 .../utilities/streamer/HoodieStreamerUtils.java    |   8 +
 .../utilities/streamer/SourceFormatAdapter.java    |  17 +-
 .../utilities/streamer/SparkSampleWritesUtils.java |   4 +-
 .../apache/hudi/utilities/streamer/StreamSync.java | 300 ++++---
 .../streamer/StreamerCheckpointUtils.java          |   5 +-
 .../apache/hudi/utilities/TestHoodieIndexer.java   |  15 +-
 .../TestHoodieMetadataTableValidator.java          | 212 ++++-
 .../deltastreamer/HoodieDeltaStreamerTestBase.java |  41 +-
 .../deltastreamer/TestHoodieDeltaStreamer.java     | 210 ++++-
 ...TestHoodieDeltaStreamerErrorTableWriteFlow.java | 133 ++++
 ...TestHoodieDeltaStreamerSchemaEvolutionBase.java |  48 +-
 ...oodieDeltaStreamerSchemaEvolutionExtensive.java |  83 +-
 .../TestHoodieDeltaStreamerWithMultiWriter.java    |  11 +-
 .../schema/TestFilebasedSchemaProvider.java        |  35 +-
 .../schema/TestSchemaRegistryProvider.java         |  24 +
 .../converter/TestJsonToAvroSchemaConverter.java   |  59 +-
 .../utilities/sources/BaseTestKafkaSource.java     |  13 +
 .../utilities/sources/TestAvroKafkaSource.java     |  35 +
 .../utilities/sources/TestHoodieIncrSource.java    | 277 +++++--
 .../utilities/sources/TestJsonKafkaSource.java     | 201 ++++-
 .../utilities/sources/TestProtoKafkaSource.java    |  21 +-
 .../hudi/utilities/sources/TestS3EventsSource.java |  41 +-
 .../sources/helpers/TestKafkaOffsetGen.java        | 260 +++++-
 .../sources/helpers/TestKafkaSourceUtil.java       |  66 ++
 .../helpers/TestMercifulJsonToRowConverter.java    | 129 ++-
 .../streamer/TestStreamerCheckpointUtils.java      |   6 +-
 .../AbstractCloudObjectsSourceTestBase.java        |   3 +-
 .../json/array-with-item-type-union/expected.json  |  78 ++
 .../json/array-with-item-type-union/input.json     |  93 +++
 .../json/complex-json-union-types/expected.json    |  66 ++
 .../json/complex-json-union-types/input.json       |  42 +
 .../expected.json                                  |  13 +-
 .../input.json                                     |  14 +-
 .../expected_no_stripping_quotes.json              | 138 ++++
 .../expected_stripping_quotes.json                 | 138 ++++
 .../json/not-null-default-value-schema/input.json  |  67 ++
 .../json/schema-repeating-names/expected.json      | 153 ++++
 .../json/schema-repeating-names/input.json         | 124 +++
 ...e.avsc => evolved-test-with-default-value.avsc} |   5 +
 ..._uber.avsc => source_uber_encoded_decimal.avsc} |  35 +-
 .../source_uber_encoded_decimal.json               |  54 ++
 packaging/bundle-validation/README.md              |  23 +-
 packaging/bundle-validation/ci_run.sh              |  31 +-
 packaging/bundle-validation/cli/commands.txt       |   5 +
 packaging/bundle-validation/service/read.scala     |   2 -
 packaging/bundle-validation/service/write.scala    |   2 -
 packaging/bundle-validation/validate.sh            |  81 +-
 packaging/hudi-cli-bundle/hudi-cli-with-bundle.sh  |   8 +-
 packaging/hudi-integ-test-bundle/pom.xml           |   1 +
 packaging/hudi-spark-bundle/pom.xml                |  10 +-
 packaging/hudi-utilities-bundle/pom.xml            |   4 +
 packaging/hudi-utilities-slim-bundle/pom.xml       |  39 +-
 pom.xml                                            | 133 +++-
 release/release_guide.md                           |  12 +-
 rfc/README.md                                      |   3 +-
 scripts/jacoco/README.md                           | 110 +++
 .../jacoco/download_jacoco.sh                      |   7 +-
 .../generate_jacoco_coverage_report.sh}            |   9 +-
 .../merge_jacoco_exec_files.sh}                    |  26 +-
 .../jacoco/merge_jacoco_job_files.sh               |  10 +-
 style/scalastyle.xml                               |   8 +-
 1080 files changed, 29982 insertions(+), 8933 deletions(-)
 copy .github/workflows/{release_candidate_validation.yml => 
maven_artifact_validation.yml} (80%)
 rename {hudi-client/hudi-client-common/src/main/java/org/apache/hudi => 
hudi-aws/src/main/java/org/apache/hudi/aws}/metrics/cloudwatch/CloudWatchMetricsReporter.java
 (96%)
 rename hudi-aws/src/main/java/org/apache/hudi/aws/{ => 
metrics}/cloudwatch/CloudWatchReporter.java (94%)
 delete mode 100644 
hudi-aws/src/main/java/org/apache/hudi/aws/utils/S3Utils.java
 rename {hudi-client/hudi-client-common/src/test/java/org/apache/hudi => 
hudi-aws/src/test/java/org/apache/hudi/aws}/metrics/cloudwatch/TestCloudWatchMetricsReporter.java
 (53%)
 rename hudi-aws/src/test/java/org/apache/hudi/aws/{ => 
metrics}/cloudwatch/TestCloudWatchReporter.java (87%)
 delete mode 100644 
hudi-aws/src/test/java/org/apache/hudi/aws/utils/TestS3Utils.java
 delete mode 100755 hudi-cli/hudi-cli.sh
 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%)
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/ConcurrentSchemaEvolutionTableSchemaGetter.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/SchemaConflictResolutionStrategy.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/SimpleSchemaConflictResolutionStrategy.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/StorageLock.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/models/HeartbeatManager.java
 copy 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/{exception/HoodieCompactionException.java
 => client/transaction/lock/models/LockGetResult.java} (66%)
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/models/LockProviderHeartbeatManager.java
 copy 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/{exception/HoodieClusteringException.java
 => client/transaction/lock/models/LockUpdateResult.java} (63%)
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/models/StorageLockData.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/transaction/lock/models/StorageLockFile.java
 delete mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/MetadataTableUtils.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/estimator/AverageRecordSizeEstimator.java
 copy 
hudi-utilities/src/main/java/org/apache/hudi/utilities/streamer/StreamContext.java
 => 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/estimator/RecordSizeEstimator.java
 (58%)
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/estimator/RecordSizeEstimatorFactory.java
 create mode 100644 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieBackedTableMetadataWriterTableVersionSix.java
 rename 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/rollback/{BaseRollbackHelper.java
 => RollbackHelper.java} (96%)
 copy 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/{upgrade/FiveToFourDowngradeHandler.java
 => 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/TestBaseHoodieTableServiceClient.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/TestBaseHoodieWriteClient.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/transaction/TestConcurrentSchemaEvolutionTableSchemaGetter.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/transaction/TestHoodieLockMetrics.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/transaction/TestSimpleSchemaConflictResolutionStrategy.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/transaction/lock/models/StorageLockFileTest.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/client/transaction/lock/models/TestLockProviderHeartbeatManager.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/common/table/timeline/{TestHoodieArchivedTimeline.java
 => TestArchivedTimelineV2.java} (87%)
 copy hudi-io/src/test/java/org/apache/hudi/io/util/TestHFileUtils.java => 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/config/TestHoodieErrorTableConfig.java
 (51%)
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/estimator/TestAverageRecordSizeEstimator.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/estimator/TestRecordSizeEstimatorFactory.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metadata/TestHoodieBackedTableMetadataWriter.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/TestBaseHoodieTable.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/TestHoodieTable.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/clean/TestCleanPlanActionExecutor.java
 create mode 100644 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/table/action/compact/TestScheduleCompactionActionExecutor.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/metadata/{SparkHoodieBackedTableMetadataWriter.java
 => SparkHoodieBackedTableMetadataWriterTableVersionSix.java} (51%)
 create mode 100644 
hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/metadata/SparkMetadataWriterFactory.java
 delete mode 100644 
hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/table/action/commit/AverageRecordSizeUtils.java
 create mode 100644 
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieFileSystemViews.java
 create mode 100644 
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/data/TestHoodieJavaPairRDD.java
 create mode 100644 
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestHoodieSparkTable.java
 delete mode 100644 
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/action/commit/TestAverageRecordSizeUtils.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-common/src/main/java/org/apache/hudi/avro/AvroSchemaCache.java
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/avro/AvroSchemaComparatorForSchemaEvolution.java
 copy 
hudi-common/src/main/java/org/apache/hudi/common/{function/SerializableSupplier.java
 => serialization/CustomSerializer.java} (74%)
 copy 
hudi-common/src/main/java/org/apache/hudi/common/{table/timeline/CommitMetadataSerDe.java
 => serialization/DefaultSerializer.java} (61%)
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/common/serialization/HoodieFileGroupSerializer.java
 copy 
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/compact/strategy/PartitionRegexBasedCompactionStrategy.java
 => 
hudi-common/src/main/java/org/apache/hudi/common/serialization/HoodieFileSliceSerializer.java
 (50%)
 rename 
hudi-common/src/main/java/org/apache/hudi/common/table/read/{HoodieFileGroupReaderSchemaHandler.java
 => FileGroupReaderSchemaHandler.java} (57%)
 rename 
hudi-common/src/main/java/org/apache/hudi/common/table/read/{HoodieBaseFileGroupRecordBuffer.java
 => FileGroupRecordBuffer.java} (91%)
 rename 
hudi-common/src/main/java/org/apache/hudi/common/table/read/{HoodieKeyBasedFileGroupRecordBuffer.java
 => KeyBasedFileGroupRecordBuffer.java} (75%)
 rename 
hudi-common/src/main/java/org/apache/hudi/common/table/read/{HoodiePositionBasedFileGroupRecordBuffer.java
 => PositionBasedFileGroupRecordBuffer.java} (82%)
 rename 
hudi-common/src/main/java/org/apache/hudi/common/table/read/{HoodiePositionBasedSchemaHandler.java
 => PositionBasedSchemaHandler.java} (83%)
 rename 
hudi-common/src/main/java/org/apache/hudi/common/table/read/{HoodieUnmergedFileGroupRecordBuffer.java
 => UnmergedFileGroupRecordBuffer.java} (94%)
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieInstantReader.java
 copy 
hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/{DefaultInstantGenerator.java
 => DefaultInstantComparator.java} (91%)
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/common/table/view/HoodieFileGroupSizeEstimator.java
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/common/table/view/NoOpTableMetadata.java
 rename 
hudi-common/src/main/java/org/apache/hudi/common/util/{AvroSchemaCache.java => 
LocalAvroSchemaCache.java} (81%)
 copy 
hudi-common/src/main/java/org/apache/hudi/common/util/{DefaultSizeEstimator.java
 => LogicalClock.java} (70%)
 copy 
hudi-common/src/main/java/org/apache/hudi/common/util/{VisibleForTesting.java 
=> SystemClock.java} (77%)
 copy 
hudi-common/src/main/java/org/apache/hudi/exception/{CorruptedLogFileException.java
 => HoodieDuplicateDataFileDetectedException.java} (79%)
 copy 
hudi-common/src/main/java/org/apache/hudi/exception/{HoodieWriteConflictException.java
 => HoodieSchemaEvolutionConflictException.java} (71%)
 delete mode 100644 
hudi-common/src/main/java/org/apache/hudi/metadata/HoodieMetadataFileSystemView.java
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/timeline/TimelineServiceClient.java
 create mode 100644 
hudi-common/src/main/java/org/apache/hudi/timeline/TimelineServiceClientBase.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/avro/TestAvroSchemaComparatorForSchemaEvolution.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/fs/TestSizeAwareDataInputStream.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/serialization/TestDefaultSerializer.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/serialization/TestHoodieFileGroupSerializer.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/serialization/TestHoodieFileSliceSerializer.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/table/read/TestFileGroupRecordBuffer.java
 delete mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/table/read/TestHoodieFileGroupRecordBuffer.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/table/timeline/versioning/BaseTestCommitMetadataSerDe.java
 copy 
hudi-common/src/{main/java/org/apache/hudi/common/engine/LocalTaskContextSupplier.java
 => 
test/java/org/apache/hudi/common/table/timeline/versioning/v1/TestCommitMetadataSerDeV1.java}
 (58%)
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/table/timeline/versioning/v2/TestCommitMetadataSerDeV2.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieFileGroupSizeEstimator.java
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/common/util/TestCleanerUtils.java
 copy 
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/index/hbase/TestHBaseIndexUsage.java
 => hudi-common/src/test/java/org/apache/hudi/common/util/TestHoodieTimer.java 
(64%)
 rename 
hudi-common/src/test/java/org/apache/hudi/common/util/{TestAvroSchemaCache.java 
=> TestLocalAvroSchemaCache.java} (50%)
 copy hudi-cli/src/test/java/org/apache/hudi/cli/TestSparkUtil.java => 
hudi-common/src/test/java/org/apache/hudi/common/util/TestSystemClock.java (55%)
 rename {hudi-client/hudi-client-common => 
hudi-common}/src/test/java/org/apache/hudi/metrics/TestMetricsReporterFactory.java
 (75%)
 create mode 100644 
hudi-common/src/test/java/org/apache/hudi/timeline/TestTimelineServiceClient.java
 create mode 100644 
hudi-common/src/test/resources/avro-schema-evo/schema-allshapes-A.txt
 create mode 100644 
hudi-common/src/test/resources/avro-schema-evo/schema-allshapes-B.txt
 copy hudi-common/src/test/resources/{decimal-logical-type.avsc => 
decimal-logical-type-zero-scale.avsc} (95%)
 copy 
hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/{transform/RowDataToHoodieFunctionWithRateLimit.java
 => append/AppendWriteFunctionWithRateLimit.java} (75%)
 copy 
hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/sink/{transform/RowDataToHoodieFunctions.java
 => append/AppendWriteFunctions.java} (62%)
 copy 
hudi-flink-datasource/{hudi-flink1.17.x/src/main/java/org/apache/hudi/adapter/OperatorCoordinatorAdapter.java
 => 
hudi-flink/src/test/java/org/apache/hudi/sink/utils/MockSubtaskGateway.java} 
(55%)
 copy 
hudi-flink-datasource/{hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/TestHoodieCatalogs.java
 => 
hudi-flink1.14.x/src/test/java/org/apache/hudi/adapter/ExecutionAttemptUtil.java}
 (77%)
 copy 
hudi-flink-datasource/{hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/TestHoodieCatalogs.java
 => 
hudi-flink1.15.x/src/test/java/org/apache/hudi/adapter/ExecutionAttemptUtil.java}
 (77%)
 copy 
hudi-flink-datasource/{hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/TestHoodieCatalogs.java
 => 
hudi-flink1.16.x/src/test/java/org/apache/hudi/adapter/ExecutionAttemptUtil.java}
 (77%)
 copy 
hudi-flink-datasource/{hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/TestHoodieCatalogs.java
 => 
hudi-flink1.17.x/src/test/java/org/apache/hudi/adapter/ExecutionAttemptUtil.java}
 (77%)
 copy 
hudi-flink-datasource/hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/{TestHoodieCatalogs.java
 => ExecutionAttemptUtil.java} (77%)
 copy 
hudi-flink-datasource/{hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/TestHoodieCatalogs.java
 => 
hudi-flink1.19.x/src/test/java/org/apache/hudi/adapter/ExecutionAttemptUtil.java}
 (77%)
 copy 
hudi-flink-datasource/{hudi-flink1.18.x/src/test/java/org/apache/hudi/adapter/TestHoodieCatalogs.java
 => 
hudi-flink1.20.x/src/test/java/org/apache/hudi/adapter/ExecutionAttemptUtil.java}
 (77%)
 create mode 100644 
hudi-hadoop-common/src/test/java/org/apache/hudi/common/bootstrap/index/TestBaseHoodieTableFileIndex.java
 create mode 100644 
hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/read/TestHoodieFileGroupReaderInflightCommit.java
 create mode 100644 
hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestArchivedTimelineV1.java
 copy 
hudi-cli/src/test/java/org/apache/hudi/cli/testutils/HoodieCLIIntegrationTestBase.java
 => hudi-io/src/main/java/org/apache/hudi/storage/HoodieInstantWriter.java (59%)
 create mode 100644 
hudi-spark-datasource/hudi-spark-common/src/test/java/org/apache/hudi/TestHoodieWriterUtils.java
 copy 
hudi-client/hudi-client-common/src/test/java/org/apache/hudi/optimize/TestHilbertCurveUtils.java
 => 
hudi-spark-datasource/hudi-spark-common/src/test/scala/org/apache/spark/sql/hudi/TestHoodieFileIndex.scala
 (63%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/java/org/apache/hudi/{TestHoodiePositionBasedFileGroupRecordBuffer.java
 => TestPositionBasedFileGroupRecordBuffer.java} (96%)
 create mode 100644 
hudi-spark-datasource/hudi-spark/src/test/java/org/apache/hudi/functional/TestSparkClusteringCornerCases.java
 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
 copy 
hudi-aws/src/main/java/org/apache/hudi/aws/sync/util/GluePartitionFilterGenerator.java
 => 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/hudi/functional/TestRecordLevelIndexTableVersionSix.scala
 (67%)
 create mode 100644 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/analysis/TestMergeIntoHoodieTableCommand.scala
 create mode 100644 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/common/TestTableColumnTypeMismatch.scala
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> ddl}/TestDropTable.scala (93%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> ddl}/TestRepairTable.scala (94%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> ddl}/TestShowPartitions.scala (91%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> ddl}/TestTruncateTable.scala (92%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> feature}/TestCDCForSparkSQL.scala (93%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> feature}/TestCompactionTable.scala (90%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> feature}/TestDataSkippingQuery.scala (99%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{dml 
=> feature}/TestQueryMergeOnReadOptimizedTable.scala (75%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{command
 => feature}/index/TestExpressionIndex.scala (97%)
 create mode 100644 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/feature/index/TestGlobalIndex.scala
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{command
 => feature}/index/TestIndexSyntax.scala (99%)
 rename 
hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/{command
 => feature}/index/TestSecondaryIndex.scala (98%)
 create mode 100644 
hudi-sync/hudi-datahub-sync/src/test/java/org/apache/hudi/sync/datahub/TestDataHubTableProperties.java
 create mode 100644 
hudi-timeline-service/src/test/java/org/apache/hudi/timeline/service/MockHoodieHadoopStorage.java
 create mode 100644 
hudi-timeline-service/src/test/java/org/apache/hudi/timeline/service/TestRequestHandler.java
 create mode 100644 
hudi-timeline-service/src/test/java/org/apache/hudi/timeline/service/TimelineServiceTestHarness.java
 create mode 100644 
hudi-utilities/src/main/java/org/apache/hudi/utilities/schema/converter/JsonToAvroSchemaConverterConfig.java
 create mode 100644 
hudi-utilities/src/main/java/org/apache/hudi/utilities/sources/helpers/KafkaSourceUtil.java
 create mode 100644 
hudi-utilities/src/test/java/org/apache/hudi/utilities/deltastreamer/TestHoodieDeltaStreamerErrorTableWriteFlow.java
 create mode 100644 
hudi-utilities/src/test/java/org/apache/hudi/utilities/sources/helpers/TestKafkaSourceUtil.java
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/array-with-item-type-union/expected.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/array-with-item-type-union/input.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/complex-json-union-types/expected.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/complex-json-union-types/input.json
 copy 
hudi-utilities/src/test/resources/schema-provider/json/{multiple-properties => 
kafka-decimal-simple}/expected.json (61%)
 copy 
hudi-utilities/src/test/resources/schema-provider/json/{multiple-properties => 
kafka-decimal-simple}/input.json (55%)
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/not-null-default-value-schema/expected_no_stripping_quotes.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/not-null-default-value-schema/expected_stripping_quotes.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/not-null-default-value-schema/input.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/schema-repeating-names/expected.json
 create mode 100644 
hudi-utilities/src/test/resources/schema-provider/json/schema-repeating-names/input.json
 copy 
hudi-utilities/src/test/resources/schema/{simple-test-with-default-value.avsc 
=> evolved-test-with-default-value.avsc} (92%)
 copy hudi-utilities/src/test/resources/streamer-config/{source_uber.avsc => 
source_uber_encoded_decimal.avsc} (66%)
 create mode 100644 
hudi-utilities/src/test/resources/streamer-config/source_uber_encoded_decimal.json
 create mode 100644 packaging/bundle-validation/cli/commands.txt
 create mode 100644 scripts/jacoco/README.md
 copy docker/hoodie/hadoop/trinocoordinator/etc/node.properties => 
scripts/jacoco/download_jacoco.sh (82%)
 mode change 100644 => 100755
 copy scripts/{release/validate_source_rat.sh => 
jacoco/generate_jacoco_coverage_report.sh} (77%)
 copy scripts/{release/create_source_directory.sh => 
jacoco/merge_jacoco_exec_files.sh} (64%)
 copy docker/hoodie/hadoop/trinocoordinator/etc/node.properties => 
scripts/jacoco/merge_jacoco_job_files.sh (78%)
 mode change 100644 => 100755

Reply via email to