bench: aistor tables benchmark tool warp (ALPHA)#448
Merged
Conversation
Collaborator
|
Cool. I think we should keep |
klauspost
reviewed
Jan 15, 2026
klauspost
reviewed
Jan 15, 2026
klauspost
left a comment
Collaborator
There was a problem hiding this comment.
Ping me when you've reviewed this yourself.
Contributor
Author
I have resolved the comments, take a look |
8ea2801 to
de27adf
Compare
593918c to
84b12c1
Compare
e531089 to
e5ea83b
Compare
beef9a7 to
c8ad093
Compare
c27e4ef to
b06ead4
Compare
b06ead4 to
5a84c66
Compare
f84089f to
4756666
Compare
Contributor
Author
|
@klauspost take a look |
Collaborator
|
@0xMALVEE I won't have time to review - but on the other hand I don't mind merging as "alpha", meaning parameters and behaviour can change. |
Contributor
Author
yes, sure |
Collaborator
|
@0xMALVEE conflict |
Contributor
Author
resolved |
harshavardhana
approved these changes
Feb 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warp Iceberg Benchmarks
Warp provides benchmarking tools for Apache Iceberg REST catalog operations. These benchmarks test catalog metadata performance including namespace, table, and view operations.
Overview
Four benchmark commands are available:
warp iceberg catalog-readwarp iceberg catalog-commitswarp iceberg catalog-mixedwarp iceberg sustainedSupported Catalogs
--external-catalog polaris)Common Flags
All iceberg commands share these flags:
Connection
--host--access-key--secret-key--region--tls--external-catalogpolaris)Tree Configuration
--catalog-name--namespace-width--namespace-depth--tables-per-ns--views-per-ns--columns--properties--base-locationBenchmark Control
--concurrent--duration--autoterm--autoterm.dur--autoterm.pctTree Structure
The
--namespace-widthand--namespace-depthflags define an N-ary tree of namespaces. Tables and views are created only in leaf namespaces.Calculations
(width^depth - 1) / (width - 1)for width > 1width^(depth-1)leaf_namespaces * tables_per_nsleaf_namespaces * views_per_nsExample Tree (width=2, depth=3)
Multiple Hosts / Catalog Pool
Multiple catalog hosts can be specified for load balancing:
Requests are distributed across hosts using round-robin.
ICEBERG CATALOG-READ
Benchmarks Iceberg REST catalog read operations.
Usage
Workflow
Default Tree Configuration
--namespace-width: 2--namespace-depth: 3--tables-per-ns: 5--views-per-ns: 5Operation Distribution Flags
Weights control the proportion of each operation type:
--ns-list-distrib--ns-head-distrib--ns-get-distrib--table-list-distrib--table-head-distrib--table-get-distrib--view-list-distrib--view-head-distrib--view-get-distribOperations Recorded
NS_LIST,NS_HEAD,NS_GET: Namespace operationsTABLE_LIST,TABLE_HEAD,TABLE_GET: Table operationsVIEW_LIST,VIEW_HEAD,VIEW_GET: View operationsExample
ICEBERG CATALOG-COMMITS
Benchmarks Iceberg REST catalog commit generation by updating table/view properties.
Usage
Workflow
--concurrent)Default Tree Configuration
--namespace-width: 2--namespace-depth: 3--tables-per-ns: 5--views-per-ns: 5Additional Flags
--table-commits-throughput--concurrent/2)--view-commits-throughput--concurrent/2)--max-retries--retry-backoff--backoff-maxNote: When you set explicit values,
--concurrentis ignored. Total workers =table-commits-throughput + view-commits-throughput.Operations Recorded
TABLE_UPDATE: Table property updateVIEW_UPDATE: View property updateExample
ICEBERG CATALOG-MIXED
Benchmarks mixed read/write workload with configurable operation distribution.
Usage
Workflow
Default Tree Configuration
--namespace-width: 2--namespace-depth: 3--tables-per-ns: 5--views-per-ns: 5Operation Distribution Flags
All read operations from catalog-read plus update operations:
--ns-update-distrib--table-update-distrib--view-update-distribAdditional Flags
--max-retries--retry-backoff--backoff-maxOperations Recorded
NS_UPDATE,TABLE_UPDATE,VIEW_UPDATE: Update operationsExample
ICEBERG SUSTAINED
Run a sustained Iceberg workload with controlled request rates. Designed for long-running tests with specific RPS limits for commits and reads.
Usage
Workflow
--skip-upload)--rps-limit)--simulate-read, controlled by--read-rps-limit)Default Tree Configuration
--namespace-width: 1--namespace-depth: 1--tables-per-ns: 1Additional Flags
Data Configuration
--num-files--rows-per-file--cache-dirTPC-DS Data
--tpcds--scale-factor--tpcds-tableCommit Control
--files-per-commit--skip-upload--rps-limitRead Simulation
--simulate-read--read-concurrent--read-rps-limitRetry/Conflict Handling
--max-retries--backoff-base--backoff-maxOperations Recorded
UPLOAD: Parquet file upload to S3 (when not using--skip-upload)COMMIT: Iceberg table commit with file referencesTABLE_GET: LoadTable read operations (when--simulate-readenabled)Example
Apache Polaris Configuration
To benchmark an Apache Polaris catalog:
The access-key and secret-key are used as OAuth2 client credentials.
Distributed Benchmarking
Iceberg benchmarks support distributed mode with multiple warp clients:
In distributed mode:
Output and Analysis
Benchmark results are saved to
warp-operation-yyyy-mm-dd[hhmmss]-xxxx.csv.zst.Metrics Recorded
Each operation records:
Analysis Output
--analyze.v)