This is an automated email from the ASF dual-hosted git repository. pingtimeout pushed a commit to branch benchmarks-ppc in repository https://gitbox.apache.org/repos/asf/polaris-tools.git
commit 83db995aa896bd900b787eb8625c48a0d27fa42a Author: Pierre Laporte <pie...@pingtimeout.fr> AuthorDate: Mon Jun 2 18:12:05 2025 +0200 Add a parameter for namespace throughput reads --- benchmarks/src/gatling/resources/benchmark-defaults.conf | 5 +++++ .../org/apache/polaris/benchmarks/parameters/BenchmarkConfig.scala | 1 + .../polaris/benchmarks/parameters/ReadTreeDatasetParameters.scala | 3 +++ .../org/apache/polaris/benchmarks/simulations/ReadTreeDataset.scala | 3 ++- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/benchmarks/src/gatling/resources/benchmark-defaults.conf b/benchmarks/src/gatling/resources/benchmark-defaults.conf index e25937d..dced98c 100644 --- a/benchmarks/src/gatling/resources/benchmark-defaults.conf +++ b/benchmarks/src/gatling/resources/benchmark-defaults.conf @@ -138,6 +138,11 @@ workload { # Configuration for the ReadTreeDataset simulation read-tree-dataset { + # Number of namespace operations to perform simultaneously + # This controls the concurrency level for namespace operations + # Default: 20 + namespace-concurrency = 20 + # Number of table operations to perform simultaneously # This controls the concurrency level for table operations # Default: 20 diff --git a/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/BenchmarkConfig.scala b/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/BenchmarkConfig.scala index 728b7c5..40d841b 100644 --- a/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/BenchmarkConfig.scala +++ b/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/BenchmarkConfig.scala @@ -51,6 +51,7 @@ object BenchmarkConfig { ccConfig.getInt("duration-in-minutes") ), ReadTreeDatasetParameters( + rtdConfig.getInt("namespace-concurrency"), rtdConfig.getInt("table-concurrency"), rtdConfig.getInt("view-concurrency") ), diff --git a/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/ReadTreeDatasetParameters.scala b/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/ReadTreeDatasetParameters.scala index 82c1aa0..4af93e3 100644 --- a/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/ReadTreeDatasetParameters.scala +++ b/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/parameters/ReadTreeDatasetParameters.scala @@ -22,13 +22,16 @@ package org.apache.polaris.benchmarks.parameters /** * Case class to hold the parameters for the ReadTreeDataset simulation. * + * @param namespaceThroughput The number of namespace operations to perform per second. * @param tableThroughput The number of table operations to perform per second. * @param viewThroughput The number of view operations to perform per second. */ case class ReadTreeDatasetParameters( + namespaceThroughput: Int, tableThroughput: Int, viewThroughput: Int ) { + require(namespaceThroughput >= 0, "Namespace throughput cannot be negative") require(tableThroughput >= 0, "Table throughput cannot be negative") require(viewThroughput >= 0, "View throughput cannot be negative") } diff --git a/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/simulations/ReadTreeDataset.scala b/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/simulations/ReadTreeDataset.scala index 6c04cb6..379f6e3 100644 --- a/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/simulations/ReadTreeDataset.scala +++ b/benchmarks/src/gatling/scala/org/apache/polaris/benchmarks/simulations/ReadTreeDataset.scala @@ -155,6 +155,7 @@ class ReadTreeDataset extends Simulation { .disableCaching // Get the configured throughput for tables and views + private val namespaceThroughput = wp.readTreeDataset.namespaceThroughput private val tableThroughput = wp.readTreeDataset.tableThroughput private val viewThroughput = wp.readTreeDataset.viewThroughput @@ -163,7 +164,7 @@ class ReadTreeDataset extends Simulation { waitForAuthentication .inject(atOnceUsers(1)) .andThen(verifyCatalogs.inject(atOnceUsers(1)).protocols(httpProtocol)) - .andThen(verifyNamespaces.inject(atOnceUsers(dp.nsDepth)).protocols(httpProtocol)) + .andThen(verifyNamespaces.inject(atOnceUsers(namespaceThroughput)).protocols(httpProtocol)) .andThen(verifyTables.inject(atOnceUsers(tableThroughput)).protocols(httpProtocol)) .andThen(verifyViews.inject(atOnceUsers(viewThroughput)).protocols(httpProtocol)) .andThen(stopRefreshingToken.inject(atOnceUsers(1)).protocols(httpProtocol))