From a98112518f50f96b644f513f1037916d34e0a5ee Mon Sep 17 00:00:00 2001 From: Alexandr Gorshenin Date: Wed, 25 Sep 2024 09:30:00 +0100 Subject: [PATCH 1/3] Open access to QueryClient pool stats --- query/src/main/java/tech/ydb/query/impl/QueryClientImpl.java | 5 +++-- query/src/main/java/tech/ydb/query/impl/SessionPool.java | 2 ++ query/src/main/java/tech/ydb/query/impl/TableClientImpl.java | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/query/src/main/java/tech/ydb/query/impl/QueryClientImpl.java b/query/src/main/java/tech/ydb/query/impl/QueryClientImpl.java index f4c7748df..ee76153cc 100644 --- a/query/src/main/java/tech/ydb/query/impl/QueryClientImpl.java +++ b/query/src/main/java/tech/ydb/query/impl/QueryClientImpl.java @@ -11,6 +11,7 @@ import tech.ydb.core.grpc.GrpcTransport; import tech.ydb.query.QueryClient; import tech.ydb.query.QuerySession; +import tech.ydb.table.SessionPoolStats; /** * @@ -46,8 +47,8 @@ public void updatePoolMaxSize(int maxSize) { pool.updateMaxSize(maxSize); } - SessionPool getSessionPool() { - return pool; + public SessionPoolStats getSessionPoolStats() { + return pool.getStats(); } @Override diff --git a/query/src/main/java/tech/ydb/query/impl/SessionPool.java b/query/src/main/java/tech/ydb/query/impl/SessionPool.java index be136ee53..3926af39c 100644 --- a/query/src/main/java/tech/ydb/query/impl/SessionPool.java +++ b/query/src/main/java/tech/ydb/query/impl/SessionPool.java @@ -250,6 +250,8 @@ public void destroy() { @Override public void close() { + logger.trace("QuerySession[{}] closed with broke status {}", getId(), isBroken); + stats.released.increment(); if (isBroken || isStopped) { queue.delete(this); diff --git a/query/src/main/java/tech/ydb/query/impl/TableClientImpl.java b/query/src/main/java/tech/ydb/query/impl/TableClientImpl.java index 7de8b15f4..628e05572 100644 --- a/query/src/main/java/tech/ydb/query/impl/TableClientImpl.java +++ b/query/src/main/java/tech/ydb/query/impl/TableClientImpl.java @@ -49,7 +49,7 @@ public ScheduledExecutorService getScheduler() { @Override public SessionPoolStats sessionPoolStats() { - return proxy.getSessionPool().getStats(); + return proxy.getSessionPoolStats(); } @Override From 18cca3fd175eae12ddf05d35505e472f6cd0c73a Mon Sep 17 00:00:00 2001 From: Alexandr Gorshenin Date: Tue, 24 Sep 2024 15:01:14 +0100 Subject: [PATCH 2/3] Update CI action to use JDBC driver tests --- .github/workflows/ci.yaml | 45 ++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a0566a65e..7993f0531 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,7 +4,6 @@ on: push: branches: - master - - develop - release* pull_request: type: [opened, reopened, edited, synchronize] @@ -22,10 +21,6 @@ jobs: MAVEN_ARGS: --batch-mode --update-snapshots -Dstyle.color=always -DYDB_DOCKER_ISOLATION=true steps: - - uses: actions/checkout@v4 - with: - path: sdk - - name: Set up JDK 8 uses: actions/setup-java@v4 with: @@ -33,7 +28,12 @@ jobs: distribution: 'temurin' cache: 'maven' - - name: Extract SDK version + - name: Checkout YDB Java SDK + uses: actions/checkout@v4 + with: + path: sdk + + - name: Extract YDB Java SDK version working-directory: ./sdk run: | VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) @@ -45,18 +45,18 @@ jobs: VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) echo "AUTH_API_VERSION=$VERSION" >> "$GITHUB_ENV" - - name: Download YDK SDK dependencies + - name: Download YDB Java SDK dependencies working-directory: ./sdk run: mvn $MAVEN_ARGS dependency:go-offline - - name: Build YDB SDK + - name: Build YDB Java SDK working-directory: ./sdk run: mvn $MAVEN_ARGS install - - uses: actions/checkout@v4 + - name: Checkout YDB YC Auth provider + uses: actions/checkout@v4 with: repository: ydb-platform/ydb-java-yc - ref: develop path: yc - name: Download YDB YC Auth provider dependencies @@ -67,16 +67,35 @@ jobs: working-directory: ./yc run: mvn $MAVEN_ARGS -Dydb.auth-api.version=$AUTH_API_VERSION install + - name: Checkout YDB JDBC Driver + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-jdbc-driver + path: jdbc + + - name: Extract YDB JDBC Driver version + working-directory: ./jdbc + run: | + VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) + echo "JDBC_VERSION=$VERSION" >> "$GITHUB_ENV" + + - name: Download YDB JDBC Driver dependencies + working-directory: ./jdbc + run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION dependency:go-offline + + - name: Build YDB JDBC Driver with tests + working-directory: ./jdbc + run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION install + - uses: actions/checkout@v4 with: repository: ydb-platform/ydb-java-examples - ref: master path: examples - name: Download dependencies working-directory: ./examples - run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION dependency:go-offline + run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION -Dydb.jdbc.version=$JDBC_VERSION dependency:go-offline - name: Test examples with Maven working-directory: ./examples - run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION test + run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION -Dydb.jdbc.version=$JDBC_VERSION test From f6385017683f6c5cc564652d9c8a9cacafc3e8a3 Mon Sep 17 00:00:00 2001 From: Alexandr Gorshenin Date: Wed, 25 Sep 2024 10:11:30 +0100 Subject: [PATCH 3/3] Update cache policy for CI build --- .github/workflows/ci.yaml | 124 ++++++++++++++++++++++++++------------ 1 file changed, 87 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7993f0531..627bbd55b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,29 +9,106 @@ on: type: [opened, reopened, edited, synchronize] jobs: + prepare: + name: Prepare Maven cache + runs-on: ubuntu-latest + + env: + MAVEN_ARGS: --batch-mode -Dstyle.color=always + + steps: + - name: Checkout YDB Java SDK + uses: actions/checkout@v4 + with: + path: sdk + + - name: Checkout YDB YC Auth provider + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-java-yc + path: yc + + - name: Checkout YDB JDBC Driver + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-jdbc-driver + path: jdbc + + - name: Checkout YDB Java Examples + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-java-examples + path: examples + + - name: Set up Java + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: 'temurin' + cache: 'maven' + cache-dependency-path: | + sdk/pom.xml + sdk/bom/pom.xml + yc/pom.xml + jdbc/pom.xml + + - name: Download YDB Java SDK dependencies + working-directory: ./sdk + run: mvn $MAVEN_ARGS dependency:go-offline + + - name: Download YDB YC Auth provider dependencies + working-directory: ./yc + run: mvn $MAVEN_ARGS dependency:go-offline + + - name: Download YDB JDBC Driver dependencies + working-directory: ./jdbc + run: mvn $MAVEN_ARGS dependency:go-offline + + - name: Download YDB Java Examples dependencies + working-directory: ./examples + run: mvn $MAVEN_ARGS dependency:go-offline + build: - name: YDB Java SDK CI with Maven + name: YDB Java SDK CI on JDK runs-on: ubuntu-latest + needs: prepare strategy: matrix: java: [ '8', '11', '17'] env: - MAVEN_ARGS: --batch-mode --update-snapshots -Dstyle.color=always -DYDB_DOCKER_ISOLATION=true + MAVEN_ARGS: --batch-mode -Dstyle.color=always -DYDB_DOCKER_ISOLATION=true steps: - - name: Set up JDK 8 + - name: Checkout YDB Java SDK + uses: actions/checkout@v4 + with: + path: sdk + + - name: Checkout YDB YC Auth provider + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-java-yc + path: yc + + - name: Checkout YDB JDBC Driver + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-jdbc-driver + path: jdbc + + - name: Set up Java uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} distribution: 'temurin' cache: 'maven' - - - name: Checkout YDB Java SDK - uses: actions/checkout@v4 - with: - path: sdk + cache-dependency-path: | + sdk/pom.xml + sdk/bom/pom.xml + yc/pom.xml + jdbc/pom.xml - name: Extract YDB Java SDK version working-directory: ./sdk @@ -45,57 +122,30 @@ jobs: VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) echo "AUTH_API_VERSION=$VERSION" >> "$GITHUB_ENV" - - name: Download YDB Java SDK dependencies - working-directory: ./sdk - run: mvn $MAVEN_ARGS dependency:go-offline - - name: Build YDB Java SDK working-directory: ./sdk run: mvn $MAVEN_ARGS install - - name: Checkout YDB YC Auth provider - uses: actions/checkout@v4 - with: - repository: ydb-platform/ydb-java-yc - path: yc - - - name: Download YDB YC Auth provider dependencies - working-directory: ./yc - run: mvn $MAVEN_ARGS -Dydb.auth-api.version=$AUTH_API_VERSION dependency:go-offline - - name: Build YDB YC Auth provider working-directory: ./yc run: mvn $MAVEN_ARGS -Dydb.auth-api.version=$AUTH_API_VERSION install - - name: Checkout YDB JDBC Driver - uses: actions/checkout@v4 - with: - repository: ydb-platform/ydb-jdbc-driver - path: jdbc - - name: Extract YDB JDBC Driver version working-directory: ./jdbc run: | VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) echo "JDBC_VERSION=$VERSION" >> "$GITHUB_ENV" - - name: Download YDB JDBC Driver dependencies - working-directory: ./jdbc - run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION dependency:go-offline - - name: Build YDB JDBC Driver with tests working-directory: ./jdbc run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION install - - uses: actions/checkout@v4 + - name: Checkout YDB Java Examples + uses: actions/checkout@v4 with: repository: ydb-platform/ydb-java-examples path: examples - - name: Download dependencies - working-directory: ./examples - run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION -Dydb.jdbc.version=$JDBC_VERSION dependency:go-offline - - name: Test examples with Maven working-directory: ./examples run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION -Dydb.jdbc.version=$JDBC_VERSION test