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

jark pushed a change to branch release-0.9
in repository https://gitbox.apache.org/repos/asf/fluss.git


    from 417c2207a [paimon] Fix union read paimon dv table issue (#2326)
     new 55e57d3d7 [docs] Update Quickstart to Use S3 (via RustFS) Instead of 
Local File System (#2569)
     new b3d1103b6 Fix list rebalance procedure throw ClassCastException (#2637)
     new e81c8c316 [hotfix][server] KvSnapshotLeaseMetadataJsonSerde serialize 
kv snapshot path use toString() instead of getPath() (#2633)
     new 294395128 [kv] Validate column data types for aggregation function 
during table creation (#2323)
     new d8c18fdc5 [docs] Improve aggregation.md with complete SQL examples for 
rbm32/rbm64 (#2643)
     new 3015f6b56 [client] Thrown exception if ServerType mismatch. (#2606)
     new f404ca361 [docs] Fix null value syntax in aggregation merge engine 
examples (#2645)
     new 09951e76b [flink] Add exactly-once sink support with undo recovery for 
aggregation tables (#2613)
     new 9ed4d34c1 [hotfix][spark] correct shaded artifact name for 
fluss-spark-common in fluss-spark-3.x (#2641)
     new 9a6e4c846 [lake/iceberg] support RowType conversion in 
FlussArrayAsIcebergList (#2649)
     new 0580ceee1 [test] Fix flaky testUndoRecoveryMultipleKeys by 
checkpointing keyIndex in FailingCountingSource
     new 657521922 [hotfix] Fix flaky testRescaleUp by fixing race condition in 
ProducerOffsetsStore.deleteSnapshot
     new 732d4bc3c [license] Keep original license headers for lightproto 
source code (#2174)
     new 4454a5a00 [docs] add introduction for auto-increment column (#2650)
     new 0f22f788a [lake/paimon] Skip readable snapshot recomputation when 
latest compacted snapshot already in ZK (#2640)
     new 176758598 [docs] Update quickstart-flink doc to use 
'kv.snapshot.interval' = 0s to avoid client obtain token issue (#2660)
     new 86f704f47 [lake/flink] Fix lake tiering doesn't work in flink 2.2 
(#2657)
     new 4bdc5d61d [kv] Introduce TabletState to support persistence of 
auto-inc buffer and row count (#2651)
     new d6fd1f1f6 [kv] Support COUNT(*) pushdown for primary key tables and 
introduce GetTableStats RPC (#2651)

The 19 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 LICENSE                                            |   30 +-
 docker/quickstart-flink/prepare_build.sh           |    4 +-
 .../java/org/apache/fluss/client/admin/Admin.java  |    8 +
 .../org/apache/fluss/client/admin/FlussAdmin.java  |  110 ++
 .../fluss/client/metadata/MetadataUpdater.java     |    5 +-
 .../fluss/client/utils/ClientRpcMessageUtils.java  |   27 +
 .../fluss/client/write/IdempotenceManager.java     |   10 +-
 .../apache/fluss/client/write/WriterClient.java    |    6 +-
 .../fluss/client/admin/FlussAdminITCase.java       |  200 ++++
 .../fluss/client/table/FlussTableITCase.java       |   49 +-
 .../fluss/client/write/RecordAccumulatorTest.java  |    3 +-
 .../org/apache/fluss/client/write/SenderTest.java  |    6 +-
 .../java/org/apache/fluss/cluster/ServerType.java  |   27 +-
 ...eption.java => InvalidServerTypeException.java} |   11 +-
 .../org/apache/fluss/metadata/AggFunction.java     |   14 +-
 .../org/apache/fluss/metadata/AggFunctionType.java |   89 +-
 .../org/apache/fluss/metadata/AggFunctions.java    |    3 +
 .../AlignedArray.java => metadata/TableStats.java} |   46 +-
 .../org/apache/fluss/utils/ProtoCodecUtils.java    |   13 +-
 .../apache/fluss/metadata/TableDescriptorTest.java |   45 +-
 .../fluss/flink/adapter/RuntimeContextAdapter.java |   24 +-
 .../flink/adapter/TypeInformationAdapter.java      |   64 ++
 .../flink/sink/Flink118UndoRecoveryITCase.java}    |    4 +-
 .../fluss/flink/tiering/Flink18TieringITCase.java  |   14 +-
 .../flink/sink/Flink119UndoRecoveryITCase.java}    |    4 +-
 .../fluss/flink/tiering/Flink19TieringITCase.java  |   14 +-
 .../flink/sink/Flink120UndoRecoveryITCase.java}    |    4 +-
 .../fluss/flink/tiering/Flink20TieringITCase.java  |   14 +-
 .../flink/adapter/TypeInformationAdapter.java      |   64 ++
 .../flink/sink/Flink22UndoRecoveryITCase.java}     |    4 +-
 .../fluss/flink/tiering/Flink22TieringITCase.java  |   14 +-
 .../apache/fluss/flink/FlinkConnectorOptions.java  |    9 +
 .../fluss/flink/adapter/RuntimeContextAdapter.java |   18 +
 .../flink/adapter/TypeInformationAdapter.java      |   73 ++
 .../fluss/flink/catalog/FlinkTableFactory.java     |   19 +-
 .../procedure/ListRebalanceProcessProcedure.java   |    2 +-
 .../apache/fluss/flink/sink/ChannelComputer.java   |   24 +
 .../flink/sink/FlinkRowDataChannelComputer.java    |   12 +-
 .../org/apache/fluss/flink/sink/FlinkSink.java     |  100 +-
 .../apache/fluss/flink/sink/FlinkTableSink.java    |   15 +-
 .../org/apache/fluss/flink/sink/FlussSink.java     |    1 +
 .../apache/fluss/flink/sink/FlussSinkBuilder.java  |   31 +-
 .../shuffle/StatisticsOrRecordTypeInformation.java |   20 +-
 .../apache/fluss/flink/sink/state/WriterState.java |  110 ++
 .../flink/sink/state/WriterStateSerializer.java    |  194 ++++
 .../{writer => }/undo/BucketRecoveryContext.java   |   13 +-
 .../flink/sink/undo/ProducerOffsetReporter.java    |   56 +
 .../flink/sink/undo/RecoveryOffsetManager.java     |  618 +++++++++++
 .../flink/sink/{writer => }/undo/UndoComputer.java |    2 +-
 .../{writer => }/undo/UndoRecoveryExecutor.java    |    2 +-
 .../{writer => }/undo/UndoRecoveryManager.java     |    2 +-
 .../flink/sink/undo/UndoRecoveryOperator.java      |  695 +++++++++++++
 .../sink/undo/UndoRecoveryOperatorFactory.java     |  417 ++++++++
 .../fluss/flink/sink/writer/UpsertSinkWriter.java  |   55 +-
 .../fluss/flink/source/FlinkTableSource.java       |    3 +-
 .../committer/CommittableMessageTypeInfo.java      |    8 +-
 .../source/TableBucketWriteResultTypeInfo.java     |    8 +-
 .../fluss/flink/utils/FlinkAggFunctionParser.java  |   15 +-
 .../flink/utils/FlinkConnectorOptionsUtils.java    |   34 +
 .../apache/fluss/flink/utils/FlinkConversions.java |    2 +-
 .../apache/fluss/flink/utils/PushdownUtils.java    |   78 +-
 .../flink/procedure/FlinkProcedureITCase.java      |    2 +-
 .../fluss/flink/sink/UndoRecoveryITCase.java       | 1098 ++++++++++++++++++++
 .../sink/state/WriterStateSerializerTest.java      |  174 ++++
 .../fluss/flink/sink/testutils/CountingSource.java |  393 +++++++
 .../sink/testutils/FailingCountingSource.java      |  620 +++++++++++
 .../flink/sink/testutils/TestAdminAdapter.java     |  313 ++++++
 .../flink/sink/undo/RecoveryOffsetManagerTest.java |  850 +++++++++++++++
 .../sink/{writer => }/undo/UndoComputerTest.java   |    2 +-
 .../undo/UndoRecoveryExecutorTest.java             |   73 +-
 .../undo/UndoRecoveryManagerITCase.java            |   16 +-
 .../flink/source/FlinkTableSourceBatchITCase.java  |   55 +-
 .../apache/fluss/flink/tiering/TieringITCase.java  |    2 +-
 .../flink/utils/FlinkAggFunctionParserTest.java    |   38 +-
 .../apache/fluss/flink/utils/TestLogScanner.java   |   10 -
 .../iceberg/source/FlussArrayAsIcebergList.java    |   13 +
 .../source/FlussRowAsIcebergRecordTest.java        |   46 +-
 .../utils/DvTableReadableSnapshotRetriever.java    |   92 +-
 .../DvTableReadableSnapshotRetrieverTest.java      |   98 +-
 .../generator/generator/NameUtilities.java         |   13 +-
 .../generator/generator/ProtoCodeGenerator.java    |   13 +-
 .../protogen/generator/generator/ProtoGen.java     |   13 +-
 .../protogen/generator/generator/ProtoGenUtil.java |   13 +-
 .../generator/ProtobufAbstractRepeated.java        |   13 +-
 .../generator/generator/ProtobufBooleanField.java  |   13 +-
 .../generator/generator/ProtobufBytesField.java    |   13 +-
 .../protogen/generator/generator/ProtobufEnum.java |   13 +-
 .../generator/generator/ProtobufEnumField.java     |   13 +-
 .../generator/generator/ProtobufField.java         |   13 +-
 .../generator/generator/ProtobufMessage.java       |   13 +-
 .../generator/generator/ProtobufMessageField.java  |   13 +-
 .../generator/generator/ProtobufNumberField.java   |   13 +-
 .../generator/generator/ProtobufRecordsField.java  |   13 +-
 .../generator/ProtobufRepeatedBytesField.java      |   13 +-
 .../generator/ProtobufRepeatedEnumField.java       |   13 +-
 .../generator/ProtobufRepeatedMessageField.java    |   13 +-
 .../generator/ProtobufRepeatedNumberField.java     |   13 +-
 .../generator/ProtobufRepeatedStringField.java     |   13 +-
 .../generator/generator/ProtobufStringField.java   |   13 +-
 .../generator/generator/RecordsFieldFinder.java    |   13 +-
 .../fluss/protogen/maven/plugin/ProtoGenMojo.java  |   13 +-
 .../rpc/entity/TableStatsResultForBucket.java      |   35 +-
 .../fluss/rpc/gateway/TabletServerGateway.java     |   10 +
 .../fluss/rpc/netty/client/ServerConnection.java   |   24 +
 .../org/apache/fluss/rpc/protocol/ApiKeys.java     |    3 +-
 fluss-rpc/src/main/proto/FlussApi.proto            |   47 +
 .../apache/fluss/rpc/TestingGatewayService.java    |    1 +
 .../fluss/rpc/TestingTabletGatewayService.java     |   10 +-
 .../rpc/netty/authenticate/AuthenticationTest.java |    4 +-
 .../authenticate/SaslAuthenticationITCase.java     |    2 +-
 .../rpc/netty/client/ServerConnectionTest.java     |   55 +
 .../org/apache/fluss/server/RpcServiceBase.java    |    1 +
 .../coordinator/producer/ProducerOffsetsStore.java |    9 +-
 .../apache/fluss/server/kv/KvRecoverHelper.java    |  254 ++++-
 .../java/org/apache/fluss/server/kv/KvTablet.java  |   75 +-
 .../fluss/server/kv/autoinc/AutoIncIDRange.java    |   84 ++
 .../server/kv/autoinc/AutoIncrementManager.java    |   28 +-
 .../autoinc/BoundedSegmentSequenceGenerator.java   |   21 +-
 .../fluss/server/kv/autoinc/SequenceGenerator.java |   14 +
 .../kv/autoinc/ZkSequenceGeneratorFactory.java     |   33 +-
 .../fluss/server/kv/prewrite/KvPreWriteBuffer.java |   69 +-
 .../aggregate/factory/FieldListaggAggFactory.java  |    2 +-
 .../aggregate/factory/FieldStringAggFactory.java   |    2 +-
 .../server/kv/snapshot/CompletedSnapshot.java      |   52 +-
 .../kv/snapshot/CompletedSnapshotJsonSerde.java    |   60 +-
 .../server/kv/snapshot/KvTabletSnapshotTarget.java |   26 +-
 .../kv/snapshot/RocksIncrementalSnapshot.java      |   12 +-
 .../fluss/server/kv/snapshot/SnapshotResult.java   |   12 +-
 .../fluss/server/kv/snapshot/SnapshotRunner.java   |    4 +-
 .../fluss/server/kv/snapshot/TabletState.java      |   74 ++
 .../org/apache/fluss/server/log/LogTablet.java     |    4 +
 .../org/apache/fluss/server/replica/Replica.java   |   43 +-
 .../fluss/server/replica/ReplicaManager.java       |   18 +
 .../apache/fluss/server/tablet/TabletService.java  |   15 +
 .../fluss/server/utils/ServerRpcMessageUtils.java  |   44 +
 .../server/utils/TableDescriptorValidation.java    |   12 +-
 .../lease/KvSnapshotLeaseMetadataJsonSerde.java    |    2 +-
 .../org/apache/fluss/server/kv/KvTabletTest.java   |  143 +++
 .../kv/autoinc/SegmentSequenceGeneratorTest.java   |   38 +
 .../autoinc/TestingSequenceGeneratorFactory.java   |    1 +
 .../server/kv/prewrite/KvPreWriteBufferTest.java   |   77 +-
 .../snapshot/CompletedSnapshotJsonSerdeTest.java   |   12 +-
 .../kv/snapshot/KvTabletSnapshotTargetTest.java    |   13 +-
 .../kv/snapshot/PeriodicSnapshotManagerTest.java   |    4 +-
 .../kv/snapshot/RocksIncrementalSnapshotTest.java  |    6 +-
 .../server/replica/KvReplicaRestoreITCase.java     |   64 +-
 .../server/tablet/TestTabletServerGateway.java     |    7 +
 .../apache/fluss/server/testutils/KvTestUtils.java |    4 +-
 .../KvSnapshotLeaseMetadataJsonSerdeTest.java      |    8 +-
 fluss-spark/fluss-spark-3.4/pom.xml                |    2 +-
 fluss-spark/fluss-spark-3.5/pom.xml                |    2 +-
 pom.xml                                            |    2 +-
 website/docs/quickstart/flink.md                   |   72 +-
 website/docs/quickstart/lakehouse.md               |  305 ++++--
 .../docs/table-design/merge-engines/aggregation.md |  142 ++-
 website/docs/table-design/table-types/pk-table.md  |   73 ++
 156 files changed, 9161 insertions(+), 722 deletions(-)
 copy 
fluss-common/src/main/java/org/apache/fluss/exception/{InvalidConfigException.java
 => InvalidServerTypeException.java} (81%)
 copy fluss-common/src/main/java/org/apache/fluss/{row/array/AlignedArray.java 
=> metadata/TableStats.java} (52%)
 create mode 100644 
fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/TypeInformationAdapter.java
 copy 
fluss-flink/{fluss-flink-1.20/src/test/java/org/apache/fluss/flink/sink/Flink120TableSinkITCase.java
 => 
fluss-flink-1.18/src/test/java/org/apache/fluss/flink/sink/Flink118UndoRecoveryITCase.java}
 (86%)
 copy 
fluss-common/src/main/java/org/apache/fluss/exception/SequenceOverflowException.java
 => 
fluss-flink/fluss-flink-1.18/src/test/java/org/apache/fluss/flink/tiering/Flink18TieringITCase.java
 (76%)
 copy 
fluss-flink/{fluss-flink-1.20/src/test/java/org/apache/fluss/flink/sink/Flink120TableSinkITCase.java
 => 
fluss-flink-1.19/src/test/java/org/apache/fluss/flink/sink/Flink119UndoRecoveryITCase.java}
 (86%)
 copy 
fluss-common/src/main/java/org/apache/fluss/exception/SequenceOverflowException.java
 => 
fluss-flink/fluss-flink-1.19/src/test/java/org/apache/fluss/flink/tiering/Flink19TieringITCase.java
 (76%)
 copy 
fluss-flink/{fluss-flink-2.2/src/test/java/org/apache/fluss/flink/sink/Flink22TableSinkITCase.java
 => 
fluss-flink-1.20/src/test/java/org/apache/fluss/flink/sink/Flink120UndoRecoveryITCase.java}
 (87%)
 copy 
fluss-common/src/main/java/org/apache/fluss/exception/SequenceOverflowException.java
 => 
fluss-flink/fluss-flink-1.20/src/test/java/org/apache/fluss/flink/tiering/Flink20TieringITCase.java
 (76%)
 create mode 100644 
fluss-flink/fluss-flink-2.2/src/main/java/org/apache/fluss/flink/adapter/TypeInformationAdapter.java
 copy 
fluss-flink/{fluss-flink-1.20/src/test/java/org/apache/fluss/flink/sink/Flink120TableSinkITCase.java
 => 
fluss-flink-2.2/src/test/java/org/apache/fluss/flink/sink/Flink22UndoRecoveryITCase.java}
 (87%)
 copy 
fluss-common/src/main/java/org/apache/fluss/exception/SequenceOverflowException.java
 => 
fluss-flink/fluss-flink-2.2/src/test/java/org/apache/fluss/flink/tiering/Flink22TieringITCase.java
 (76%)
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/TypeInformationAdapter.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/state/WriterState.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/state/WriterStateSerializer.java
 rename 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/{writer
 => }/undo/BucketRecoveryContext.java (85%)
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/undo/ProducerOffsetReporter.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/undo/RecoveryOffsetManager.java
 rename 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/{writer
 => }/undo/UndoComputer.java (99%)
 rename 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/{writer
 => }/undo/UndoRecoveryExecutor.java (99%)
 rename 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/{writer
 => }/undo/UndoRecoveryManager.java (99%)
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/undo/UndoRecoveryOperator.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/sink/undo/UndoRecoveryOperatorFactory.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/UndoRecoveryITCase.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/state/WriterStateSerializerTest.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/testutils/CountingSource.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/testutils/FailingCountingSource.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/testutils/TestAdminAdapter.java
 create mode 100644 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/undo/RecoveryOffsetManagerTest.java
 rename 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/{writer
 => }/undo/UndoComputerTest.java (99%)
 rename 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/{writer
 => }/undo/UndoRecoveryExecutorTest.java (74%)
 rename 
fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/sink/{writer
 => }/undo/UndoRecoveryManagerITCase.java (98%)
 copy fluss-common/src/main/java/org/apache/fluss/row/map/AlignedMap.java => 
fluss-rpc/src/main/java/org/apache/fluss/rpc/entity/TableStatsResultForBucket.java
 (52%)
 create mode 100644 
fluss-server/src/main/java/org/apache/fluss/server/kv/autoinc/AutoIncIDRange.java
 create mode 100644 
fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/TabletState.java

Reply via email to