diff --git a/.github/workflows/daily-it.yml b/.github/workflows/daily-it.yml index 3783e563e35f..0f8bf9fbe3d9 100644 --- a/.github/workflows/daily-it.yml +++ b/.github/workflows/daily-it.yml @@ -49,3 +49,59 @@ jobs: name: cluster-log-java${{ matrix.java }}-${{ runner.os }} path: integration-test/target/cluster-logs retention-days: 3 + SingleRegionTableModel: + strategy: + fail-fast: false + max-parallel: 15 + matrix: + java: [ 8, 17 ] + runs-on: [ self-hosted, iotdb ] + # group: self-hosted + # labels: iotdb + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: liberica + java-version: 17 + - name: Cache Maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2- + - name: Adjust network dynamic TCP ports range + if: ${{ runner.os == 'Windows' }} + shell: pwsh + run: | + netsh int ipv4 set dynamicport tcp start=32768 num=32768 + netsh int ipv4 set dynamicport udp start=32768 num=32768 + netsh int ipv6 set dynamicport tcp start=32768 num=32768 + netsh int ipv6 set dynamicport udp start=32768 num=32768 + - name: Adjust Linux kernel somaxconn + if: ${{ runner.os == 'Linux' }} + shell: bash + run: sudo sysctl -w net.core.somaxconn=65535 + # - name: Adjust Mac kernel somaxconn + # if: ${{ runner.os == 'macOS' }} + # shell: bash + # run: sudo sysctl -w kern.ipc.somaxconn=65535 + - name: IT/UT Test + shell: bash + # we do not compile client-cpp for saving time, it is tested in client.yml + # we can skip influxdb-protocol because it has been tested separately in influxdb-protocol.yml + run: | + mvn clean verify \ + -P with-integration-tests \ + -DskipUTs \ + -DintegrationTest.forkCount=2 -DDataNodeMaxHeapSize=1024 -DintegrationTest.dataRegionPerDataNode=1\ + -pl integration-test \ + -am -PTableSimpleIT + - name: Upload Artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: table-standalone-log-java${{ matrix.java }}-${{ runner.os }} + path: integration-test/target/cluster-logs + retention-days: 3 \ No newline at end of file diff --git a/integration-test/pom.xml b/integration-test/pom.xml index 02c54ceb8a9f..43e30ace4ea9 100644 --- a/integration-test/pom.xml +++ b/integration-test/pom.xml @@ -37,6 +37,7 @@ 200m true true + 0 Simple @@ -300,6 +301,7 @@ ${integrationTest.testEnv} ${integrationTest.randomSelectWriteNode} ${integrationTest.readAndVerifyWithMultiNode} + ${integrationTest.dataRegionPerDataNode} ${lightWeightStandaloneMode.configNodeNumber} ${lightWeightStandaloneMode.dataNodeNumber} ${lightWeightStandaloneMode.configNodeConsensus} diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java index 8b9a3816bcf1..2516bf665614 100644 --- a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java +++ b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/ClusterConstant.java @@ -43,6 +43,7 @@ public class ClusterConstant { public static final String DEFAULT_DATA_NODE_PROPERTIES = "DefaultDataNodeProperties"; public static final String DEFAULT_DATA_NODE_COMMON_PROPERTIES = "DefaultDataNodeCommonProperties"; + public static final String DATA_REGION_PER_DATANODE = "integrationTest.dataRegionPerDataNode"; // Cluster Configurations public static final String CLUSTER_CONFIGURATIONS = "ClusterConfigurations"; @@ -202,6 +203,7 @@ public class ClusterConstant { "schema_region_ratis_log_appender_buffer_size_max"; public static final String DATA_REGION_RATIS_LOG_APPENDER_BUFFER_SIZE_MAX = "data_region_ratis_log_appender_buffer_size_max"; + public static final String DATA_REGION_PER_DATA_NODE = "data_region_per_data_node"; // Paths public static final String USER_DIR = "user.dir"; diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java index 127f9b331857..aca112048cdd 100644 --- a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java +++ b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java @@ -36,6 +36,8 @@ import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATANODE_MAX_HEAP_SIZE; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATA_NODE_NAME; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATA_REGION_CONSENSUS_PROTOCOL_CLASS; +import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATA_REGION_PER_DATANODE; +import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATA_REGION_PER_DATA_NODE; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATA_REGION_RATIS_LOG_APPENDER_BUFFER_SIZE_MAX; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DATA_REPLICATION_FACTOR; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DEFAULT_DATA_NODE_COMMON_PROPERTIES; @@ -82,6 +84,8 @@ public class DataNodeWrapper extends AbstractNodeWrapper { private final String defaultCommonPropertiesFile; + private final int regionPerDataNode; + public DataNodeWrapper( final String seedConfigNode, final String testClassName, @@ -103,6 +107,7 @@ public DataNodeWrapper( EnvUtils.getFilePathFromSysVar(DEFAULT_DATA_NODE_PROPERTIES, clusterIndex); this.defaultCommonPropertiesFile = EnvUtils.getFilePathFromSysVar(DEFAULT_DATA_NODE_COMMON_PROPERTIES, clusterIndex); + this.regionPerDataNode = EnvUtils.getIntFromSysVar(DATA_REGION_PER_DATANODE, 0, clusterIndex); // Initialize mutable properties reloadMutableFields(); @@ -209,6 +214,7 @@ protected void reloadMutableFields() { mutableNodeProperties.setProperty(WAL_BUFFER_SIZE_IN_BYTE, "16777216"); mutableNodeProperties.setProperty(SCHEMA_REGION_RATIS_LOG_APPENDER_BUFFER_SIZE_MAX, "8388608"); mutableNodeProperties.setProperty(DATA_REGION_RATIS_LOG_APPENDER_BUFFER_SIZE_MAX, "8388608"); + mutableNodeProperties.setProperty(DATA_REGION_PER_DATA_NODE, String.valueOf(regionPerDataNode)); } @Override