Skip to content

Commit c9d2e1a

Browse files
committed
Merge branch 'master' into alter_column_datatype_draft
# Conflicts: # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/CnToDnAsyncRequestType.java # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/schema/ClusterSchemaManager.java # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java # iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureType.java # iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java # iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java # iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java # iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java # iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java # iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/column/TsTableColumnSchema.java
2 parents 72fb3a4 + 16ad6c1 commit c9d2e1a

1,566 files changed

Lines changed: 105423 additions & 13905 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: AINode Code Style Check
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- "rc/*"
8+
paths:
9+
- 'iotdb-core/ainode/**'
10+
pull_request:
11+
branches:
12+
- master
13+
- "rc/*"
14+
paths:
15+
- 'iotdb-core/ainode/**'
16+
# allow manually run the action:
17+
workflow_dispatch:
18+
19+
concurrency:
20+
group: ${{ github.workflow }}-${{ github.ref }}
21+
cancel-in-progress: true
22+
23+
env:
24+
MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
25+
MAVEN_ARGS: --batch-mode --no-transfer-progress
26+
27+
jobs:
28+
check-style:
29+
runs-on: ubuntu-latest
30+
steps:
31+
- name: Checkout code
32+
uses: actions/checkout@v4
33+
34+
- name: Set up Python 3.10
35+
uses: actions/setup-python@v5
36+
with:
37+
python-version: "3.10"
38+
39+
- name: Install dependencies
40+
run: |
41+
pip3 install black==25.1.0 isort==6.0.1
42+
- name: Check code formatting (Black)
43+
run: |
44+
cd iotdb-core/ainode
45+
black --check .
46+
continue-on-error: false
47+
48+
- name: Check import order (Isort)
49+
run: |
50+
cd iotdb-core/ainode
51+
isort --check-only --profile black .
52+
continue-on-error: false

.github/workflows/pipe-it.yml

Lines changed: 95 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,91 @@ jobs:
431431
name: cluster-log-dual-tree-manual-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
432432
path: integration-test/target/cluster-logs
433433
retention-days: 30
434-
subscription-arch-verification:
434+
subscription-tree-arch-verification:
435+
strategy:
436+
fail-fast: false
437+
max-parallel: 15
438+
matrix:
439+
java: [ 17 ]
440+
# StrongConsistencyClusterMode is ignored now because RatisConsensus has not been supported yet.
441+
cluster1: [ ScalableSingleNodeMode, PipeConsensusBatchMode, PipeConsensusStreamMode ]
442+
cluster2: [ ScalableSingleNodeMode ]
443+
os: [ ubuntu-latest ]
444+
runs-on: ${{ matrix.os }}
445+
steps:
446+
- uses: actions/checkout@v4
447+
- name: Set up JDK ${{ matrix.java }}
448+
uses: actions/setup-java@v4
449+
with:
450+
distribution: liberica
451+
java-version: ${{ matrix.java }}
452+
- name: Cache Maven packages
453+
uses: actions/cache@v4
454+
with:
455+
path: ~/.m2
456+
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
457+
restore-keys: ${{ runner.os }}-m2-
458+
- name: Sleep for a random duration between 0 and 10000 milliseconds
459+
run: |
460+
sleep $(( $(( RANDOM % 10000 + 1 )) / 1000))
461+
- name: IT Test
462+
shell: bash
463+
# we do not compile client-cpp for saving time, it is tested in client.yml
464+
# we can skip influxdb-protocol because it has been tested separately in influxdb-protocol.yml
465+
run: |
466+
retry() {
467+
local -i max_attempts=3
468+
local -i attempt=1
469+
local -i retry_sleep=5
470+
local test_output
471+
472+
while [ $attempt -le $max_attempts ]; do
473+
mvn clean verify \
474+
-P with-integration-tests \
475+
-DskipUTs \
476+
-DintegrationTest.forkCount=1 -DConfigNodeMaxHeapSize=256 -DDataNodeMaxHeapSize=1024 -DDataNodeMaxDirectMemorySize=768 \
477+
-DClusterConfigurations=${{ matrix.cluster1 }},${{ matrix.cluster2 }} \
478+
-pl integration-test \
479+
-am -PMultiClusterIT2SubscriptionTreeArchVerification \
480+
-ntp >> ~/run-tests-$attempt.log && return 0
481+
test_output=$(cat ~/run-tests-$attempt.log)
482+
483+
echo "==================== BEGIN: ~/run-tests-$attempt.log ===================="
484+
echo "$test_output"
485+
echo "==================== END: ~/run-tests-$attempt.log ======================"
486+
487+
if ! mv ~/run-tests-$attempt.log integration-test/target/cluster-logs/ 2>/dev/null; then
488+
echo "Failed to move log file ~/run-tests-$attempt.log to integration-test/target/cluster-logs/. Skipping..."
489+
fi
490+
491+
if echo "$test_output" | grep -q "Could not transfer artifact"; then
492+
if [ $attempt -lt $max_attempts ]; then
493+
echo "Test failed with artifact transfer issue, attempt $attempt. Retrying in $retry_sleep seconds..."
494+
sleep $retry_sleep
495+
attempt=$((attempt + 1))
496+
else
497+
echo "Test failed after $max_attempts attempts due to artifact transfer issue."
498+
echo "Treating this as a success because the issue is likely transient."
499+
return 0
500+
fi
501+
elif [ $? -ne 0 ]; then
502+
echo "Test failed with a different error."
503+
return 1
504+
else
505+
echo "Tests passed"
506+
return 0
507+
fi
508+
done
509+
}
510+
retry
511+
- name: Upload Artifact
512+
if: failure()
513+
uses: actions/upload-artifact@v4
514+
with:
515+
name: cluster-log-subscription-tree-arch-verification-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
516+
path: integration-test/target/cluster-logs
517+
retention-days: 30
518+
subscription-table-arch-verification:
435519
strategy:
436520
fail-fast: false
437521
max-parallel: 15
@@ -476,7 +560,7 @@ jobs:
476560
-DintegrationTest.forkCount=1 -DConfigNodeMaxHeapSize=256 -DDataNodeMaxHeapSize=1024 -DDataNodeMaxDirectMemorySize=768 \
477561
-DClusterConfigurations=${{ matrix.cluster1 }},${{ matrix.cluster2 }} \
478562
-pl integration-test \
479-
-am -PMultiClusterIT2SubscriptionArchVerification \
563+
-am -PMultiClusterIT2SubscriptionTableArchVerification \
480564
-ntp >> ~/run-tests-$attempt.log && return 0
481565
test_output=$(cat ~/run-tests-$attempt.log)
482566
@@ -512,17 +596,17 @@ jobs:
512596
if: failure()
513597
uses: actions/upload-artifact@v4
514598
with:
515-
name: cluster-log-subscription-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
599+
name: cluster-log-subscription-table-arch-verification-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
516600
path: integration-test/target/cluster-logs
517601
retention-days: 30
518-
subscription-regression-consumer:
602+
subscription-tree-regression-consumer:
519603
strategy:
520604
fail-fast: false
521605
max-parallel: 15
522606
matrix:
523607
java: [ 17 ]
524608
# do not use HighPerformanceMode here, otherwise some tests will cause the GH runner to receive a shutdown signal
525-
cluster1: [ ScalableSingleNodeMode ]
609+
cluster1: [ ScalableSingleNodeMode, PipeConsensusBatchMode, PipeConsensusStreamMode ]
526610
cluster2: [ ScalableSingleNodeMode ]
527611
os: [ ubuntu-latest ]
528612
runs-on: ${{ matrix.os }}
@@ -560,7 +644,7 @@ jobs:
560644
-DintegrationTest.forkCount=1 -DConfigNodeMaxHeapSize=256 -DDataNodeMaxHeapSize=1024 -DDataNodeMaxDirectMemorySize=768 \
561645
-DClusterConfigurations=${{ matrix.cluster1 }},${{ matrix.cluster2 }} \
562646
-pl integration-test \
563-
-am -PMultiClusterIT2SubscriptionRegressionConsumer \
647+
-am -PMultiClusterIT2SubscriptionTreeRegressionConsumer \
564648
-ntp >> ~/run-tests-$attempt.log && return 0
565649
test_output=$(cat ~/run-tests-$attempt.log)
566650
@@ -596,17 +680,17 @@ jobs:
596680
if: failure()
597681
uses: actions/upload-artifact@v4
598682
with:
599-
name: cluster-log-subscription-regression-consumer-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
683+
name: cluster-log-subscription-tree-regression-consumer-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
600684
path: integration-test/target/cluster-logs
601685
retention-days: 30
602-
subscription-regression-misc:
686+
subscription-tree-regression-misc:
603687
strategy:
604688
fail-fast: false
605689
max-parallel: 15
606690
matrix:
607691
java: [ 17 ]
608692
# do not use HighPerformanceMode here, otherwise some tests will cause the GH runner to receive a shutdown signal
609-
cluster1: [ ScalableSingleNodeMode ]
693+
cluster1: [ ScalableSingleNodeMode, PipeConsensusBatchMode, PipeConsensusStreamMode ]
610694
cluster2: [ ScalableSingleNodeMode ]
611695
os: [ ubuntu-latest ]
612696
runs-on: ${{ matrix.os }}
@@ -644,7 +728,7 @@ jobs:
644728
-DintegrationTest.forkCount=1 -DConfigNodeMaxHeapSize=256 -DDataNodeMaxHeapSize=1024 -DDataNodeMaxDirectMemorySize=768 \
645729
-DClusterConfigurations=${{ matrix.cluster1 }},${{ matrix.cluster2 }} \
646730
-pl integration-test \
647-
-am -PMultiClusterIT2SubscriptionRegressionMisc \
731+
-am -PMultiClusterIT2SubscriptionTreeRegressionMisc \
648732
-ntp >> ~/run-tests-$attempt.log && return 0
649733
test_output=$(cat ~/run-tests-$attempt.log)
650734
@@ -680,7 +764,7 @@ jobs:
680764
if: failure()
681765
uses: actions/upload-artifact@v4
682766
with:
683-
name: cluster-log-subscription-regression-misc-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
767+
name: cluster-log-subscription-tree-regression-misc-java${{ matrix.java }}-${{ runner.os }}-${{ matrix.cluster1 }}-${{ matrix.cluster2 }}
684768
path: integration-test/target/cluster-logs
685769
retention-days: 30
686770
dual-table-manual-basic:

LICENSE

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,3 +270,18 @@ The following files include code modified from Apache Kafka project.
270270

271271
Project page: https://github.com/apache/kafka
272272
License: https://github.com/apache/kafka/blob/trunk/LICENSE
273+
274+
--------------------------------------------------------------------------------
275+
276+
The following files include code modified from Stream-Lib project.
277+
278+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Counter.java
279+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java
280+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java
281+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ITopK.java
282+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ListNode2.java
283+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Pair.java
284+
./iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/StreamSummary.java
285+
286+
Project page: https://github.com/addthis/stream-lib
287+
License: https://github.com/addthis/stream-lib/blob/master/LICENSE.txt

0 commit comments

Comments
 (0)