diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index e8cf8083..6356174c 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -25,6 +25,14 @@ on: - lettuce - none default: "valkey-glide" + mode: + description: "Server topology mode" + required: false + type: choice + options: + - standalone + - cluster + default: "standalone" workload: description: "Workload config" required: true @@ -153,6 +161,7 @@ jobs: run: | PRIMARY_DRIVER="${{ github.event.inputs.primary_driver }}" SECONDARY_DRIVER="${{ github.event.inputs.secondary_driver }}" + MODE="${{ github.event.inputs.mode || 'standalone' }}" WORKLOAD="${{ github.event.inputs.workload }}" PRIMARY_VERSION="${{ github.event.inputs.primary_version }}" SECONDARY_VERSION="${{ github.event.inputs.secondary_version }}" @@ -180,6 +189,7 @@ jobs: echo "primary_driver=$PRIMARY_DRIVER" >> $GITHUB_OUTPUT echo "secondary_driver=$SECONDARY_DRIVER" >> $GITHUB_OUTPUT + echo "mode=$MODE" >> $GITHUB_OUTPUT echo "workload=$WORKLOAD" >> $GITHUB_OUTPUT echo "primary_version=$PRIMARY_VERSION" >> $GITHUB_OUTPUT echo "secondary_version=$SECONDARY_VERSION" >> $GITHUB_OUTPUT @@ -191,6 +201,7 @@ jobs: echo "========================================" echo "Primary driver: $PRIMARY_DRIVER" echo "Secondary driver: $SECONDARY_DRIVER" + echo "Mode: $MODE" echo "Workload: $WORKLOAD" echo "Primary version: '${PRIMARY_VERSION}'" echo "Secondary version: '${SECONDARY_VERSION}'" @@ -203,6 +214,7 @@ jobs: run: | PRIMARY_DRIVER="${{ steps.inputs.outputs.primary_driver }}" SECONDARY_DRIVER="${{ steps.inputs.outputs.secondary_driver }}" + MODE="${{ steps.inputs.outputs.mode }}" WORKLOAD="${{ steps.inputs.outputs.workload }}" CONFIG_DIR=".github/workflows/benchmark_configs" CUSTOM_CONFIG_DIR="/tmp/custom_configs" @@ -241,10 +253,10 @@ jobs: if [ "$SECONDARY_DRIVER" = "valkey-glide" ]; then SECONDARY_IN_FILENAME="glide" fi - DRIVER="${PRIMARY_DRIVER}-${SECONDARY_IN_FILENAME}-standalone" + DRIVER="${PRIMARY_DRIVER}-${SECONDARY_IN_FILENAME}" else # Standalone drivers (valkey-glide, jedis, lettuce, redisson) - DRIVER="${PRIMARY_DRIVER}-standalone" + DRIVER="${PRIMARY_DRIVER}" if [ "$SECONDARY_DRIVER" != "none" ] && [ -n "$SECONDARY_DRIVER" ]; then echo "Note: secondary_driver '$SECONDARY_DRIVER' ignored for standalone driver '$PRIMARY_DRIVER'" fi @@ -260,6 +272,14 @@ jobs: echo "✓ Driver config: $DRIVER_CONFIG" fi + # Handle selected driver mode (server topology) + if [ -z "$CUSTOM_DRIVER_CONFIG_INPUT" ]; then + DRIVER_CONFIG_WITH_MODE="$CUSTOM_CONFIG_DIR/driver-config.json" + jq --arg mode "$MODE" '.mode = $mode' "$DRIVER_CONFIG" > "$DRIVER_CONFIG_WITH_MODE" + DRIVER_CONFIG="$DRIVER_CONFIG_WITH_MODE" + echo "✓ Mode set to: $MODE" + fi + # Handle custom workload config CUSTOM_WORKLOAD_CONFIG_INPUT='${{ github.event.inputs.custom_workload_config }}' if [ -n "$CUSTOM_WORKLOAD_CONFIG_INPUT" ]; then @@ -414,6 +434,9 @@ jobs: sudo apt-get update sudo apt-get install -y git gcc pkg-config openssl libssl-dev unzip cmake python3-pip + # Install JDK 11 (required by valkey-glide Gradle toolchain) + sudo apt-get install -y openjdk-11-jdk-headless + # Install Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" @@ -439,6 +462,7 @@ jobs: run: | source "$HOME/.cargo/env" export PATH="$PATH:$HOME/.local/bin" + export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 COMMIT_ID="${{ steps.inputs.outputs.primary_version }}" echo "Building valkey-glide from commit: $COMMIT_ID (primary driver)" @@ -466,6 +490,7 @@ jobs: run: | source "$HOME/.cargo/env" export PATH="$PATH:$HOME/.local/bin" + export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 COMMIT_ID="${{ steps.versions.outputs.secondary_version }}" echo "Building valkey-glide from commit: $COMMIT_ID (secondary driver)" diff --git a/.github/workflows/benchmark_configs/drivers/jedis-standalone.json b/.github/workflows/benchmark_configs/drivers/jedis.json similarity index 68% rename from .github/workflows/benchmark_configs/drivers/jedis-standalone.json rename to .github/workflows/benchmark_configs/drivers/jedis.json index d4833d7b..b39851fb 100644 --- a/.github/workflows/benchmark_configs/drivers/jedis-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/jedis.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Jedis client - standalone mode", + "description": "Jedis client", "driver_id": "jedis", "mode": "standalone", "specific_driver_config": {} diff --git a/.github/workflows/benchmark_configs/drivers/lettuce-standalone.json b/.github/workflows/benchmark_configs/drivers/lettuce.json similarity index 67% rename from .github/workflows/benchmark_configs/drivers/lettuce-standalone.json rename to .github/workflows/benchmark_configs/drivers/lettuce.json index 7514fe94..94ffbce6 100644 --- a/.github/workflows/benchmark_configs/drivers/lettuce-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/lettuce.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Lettuce client - standalone mode", + "description": "Lettuce client", "driver_id": "lettuce", "mode": "standalone", "specific_driver_config": {} diff --git a/.github/workflows/benchmark_configs/drivers/redisson-standalone.json b/.github/workflows/benchmark_configs/drivers/redisson.json similarity index 67% rename from .github/workflows/benchmark_configs/drivers/redisson-standalone.json rename to .github/workflows/benchmark_configs/drivers/redisson.json index 2193ec8a..69d23e28 100644 --- a/.github/workflows/benchmark_configs/drivers/redisson-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/redisson.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Redisson client - standalone mode", + "description": "Redisson client", "driver_id": "redisson", "mode": "standalone", "specific_driver_config": {} diff --git a/.github/workflows/benchmark_configs/drivers/spring-data-redis-jedis-standalone.json b/.github/workflows/benchmark_configs/drivers/spring-data-redis-jedis.json similarity index 68% rename from .github/workflows/benchmark_configs/drivers/spring-data-redis-jedis-standalone.json rename to .github/workflows/benchmark_configs/drivers/spring-data-redis-jedis.json index fccd90d6..165e50b1 100644 --- a/.github/workflows/benchmark_configs/drivers/spring-data-redis-jedis-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/spring-data-redis-jedis.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Spring Data Redis with Jedis driver - standalone mode", + "description": "Spring Data Redis with Jedis driver", "driver_id": "spring-data-redis", "mode": "standalone", "specific_driver_config": { diff --git a/.github/workflows/benchmark_configs/drivers/spring-data-redis-lettuce-standalone.json b/.github/workflows/benchmark_configs/drivers/spring-data-redis-lettuce.json similarity index 68% rename from .github/workflows/benchmark_configs/drivers/spring-data-redis-lettuce-standalone.json rename to .github/workflows/benchmark_configs/drivers/spring-data-redis-lettuce.json index df9f3a5d..2f510406 100644 --- a/.github/workflows/benchmark_configs/drivers/spring-data-redis-lettuce-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/spring-data-redis-lettuce.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Spring Data Redis with Lettuce driver - standalone mode", + "description": "Spring Data Redis with Lettuce driver", "driver_id": "spring-data-redis", "mode": "standalone", "specific_driver_config": { diff --git a/.github/workflows/benchmark_configs/drivers/spring-data-valkey-glide-standalone.json b/.github/workflows/benchmark_configs/drivers/spring-data-valkey-glide.json similarity index 67% rename from .github/workflows/benchmark_configs/drivers/spring-data-valkey-glide-standalone.json rename to .github/workflows/benchmark_configs/drivers/spring-data-valkey-glide.json index 989e81c1..b78e78e2 100644 --- a/.github/workflows/benchmark_configs/drivers/spring-data-valkey-glide-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/spring-data-valkey-glide.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Spring Data Valkey with Valkey-Glide driver - standalone mode", + "description": "Spring Data Valkey with Valkey-Glide driver", "driver_id": "spring-data-valkey", "mode": "standalone", "specific_driver_config": { diff --git a/.github/workflows/benchmark_configs/drivers/spring-data-valkey-jedis-standalone.json b/.github/workflows/benchmark_configs/drivers/spring-data-valkey-jedis.json similarity index 68% rename from .github/workflows/benchmark_configs/drivers/spring-data-valkey-jedis-standalone.json rename to .github/workflows/benchmark_configs/drivers/spring-data-valkey-jedis.json index 8011f9c9..3b5bfed5 100644 --- a/.github/workflows/benchmark_configs/drivers/spring-data-valkey-jedis-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/spring-data-valkey-jedis.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Spring Data Valkey with Jedis driver - standalone mode", + "description": "Spring Data Valkey with Jedis driver", "driver_id": "spring-data-valkey", "mode": "standalone", "specific_driver_config": { diff --git a/.github/workflows/benchmark_configs/drivers/spring-data-valkey-lettuce-standalone.json b/.github/workflows/benchmark_configs/drivers/spring-data-valkey-lettuce.json similarity index 67% rename from .github/workflows/benchmark_configs/drivers/spring-data-valkey-lettuce-standalone.json rename to .github/workflows/benchmark_configs/drivers/spring-data-valkey-lettuce.json index 3b5fad6b..93e2df2d 100644 --- a/.github/workflows/benchmark_configs/drivers/spring-data-valkey-lettuce-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/spring-data-valkey-lettuce.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Spring Data Valkey with Lettuce driver - standalone mode", + "description": "Spring Data Valkey with Lettuce driver", "driver_id": "spring-data-valkey", "mode": "standalone", "specific_driver_config": { diff --git a/.github/workflows/benchmark_configs/drivers/valkey-glide-standalone.json b/.github/workflows/benchmark_configs/drivers/valkey-glide.json similarity index 66% rename from .github/workflows/benchmark_configs/drivers/valkey-glide-standalone.json rename to .github/workflows/benchmark_configs/drivers/valkey-glide.json index 2914bc61..1f101885 100644 --- a/.github/workflows/benchmark_configs/drivers/valkey-glide-standalone.json +++ b/.github/workflows/benchmark_configs/drivers/valkey-glide.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "description": "Valkey-Glide client - standalone mode", + "description": "Valkey-Glide client", "driver_id": "valkey-glide", "mode": "standalone", "specific_driver_config": {}