Example Workloads#
Complete workload configs you can run directly or use as starting points for your own.
| Workload | Description |
|---|---|
| Aggregation | Demonstrates aggregation functions (sum, avg, min, max, count, distinct) |
| Anomalies | Read/write anomaly patterns (lost update, stale read, write skew) for isolation level testing |
| Bank | Bank account operations for contention and correctness testing |
| CH-benCHmark | Mixed OLTP+OLAP workload combining TPC-C transactions with TPC-H-style analytical queries |
| Batch | Demonstrates query_batch and exec_batch query types for batch inserts and updates |
| Blob | Binary data with blob() (all databases) and bytes() (PostgreSQL/CockroachDB) |
| Cassandra | Cassandra (CQL) with keyspaces, tables, batch inserts, and reference data |
| Consistency | Concurrency anomaly stress test (dirty reads, phantoms, write skew, lost updates) with EDG_NO_ATOMIC_TX toggle |
| Composite Types | PostgreSQL/CockroachDB composite types (CREATE TYPE ... AS (...)) as column types with ROW(...)::type construction and (col).field access |
| Distributions | All five distribution functions (uniform, zipf, norm_f, exp_f, lognorm_f) |
| Temporal Patterns | Data drift over time - Zipf skew interpolates from uniform to concentrated using global_iter() |
| E-Commerce | E-commerce with categories, products, customers, and orders |
| Each Cartesian | Cartesian product seeding with ref_each across multiple tables |
| Environment | Demonstrates fetching and using environment variables |
| Failing | Map lookup with fail() to validate environment variables and stop workers on unknown values |
| Exclusive Columns | Mutually exclusive columns - either col_a or col_b, never both |
| Expectations | Post-run assertions for CI/CD gating on error rate, latency, and throughput |
| Expressions | Demonstrates expr-lang built-in features (array, map, string, bitwise, etc.) |
| Index Comparison | Comparison test using expectations to assert indexed lookups outperform unindexed (avg and p99 latency) |
| Geo Spatial | Dating app workload with location-based discovery (ST_DWithin, GiST index), swipes, matches, and messaging |
| Global Sequences | Globally unique auto-incrementing sequences shared across all workers with seq_global |
| Includes | Splitting and reusing config fragments with the !include directive |
| Invoice Lines | Correlated parent-child data with distribute_sum() and distribute_weighted() for totals that always balance |
| IoT | IoT devices, sensors, and time-series readings |
| LTREE | Hierarchical org chart using PostgreSQL’s ltree extension with ltree() path builder |
| Locale | Locale-aware PII generation (gen_locale) with deterministic masking (mask) across JP and DE regions |
| Minimal | Starter workload for building familiarity with edg (create, seed, read, update, cleanup) |
| MongoDB | MongoDB with BSON/JSON command syntax, collection operations, and reference data |
| Multi-Row DML | __values__ token for cross-driver multi-row INSERT, UPSERT, and UPDATE (pgx, mysql, mssql, oracle, spanner) |
| Normal | Product reviews with normal distribution ratings |
| Named Args | Map-style args with arg('name') instead of arg(0) |
| Nullable | Demonstrates nullable(expr, probability) for injecting NULLs with controlled frequency |
| Objects | Reusable arg templates with the objects config section, shared across seed and run queries |
| Observability | Prometheus metrics and Grafana dashboard with queries, writes, and rollback-prone transactions |
| Org Tree | Hierarchical org chart (CEO -> VPs -> Directors -> Managers -> ICs) using seed capture for self-referential generation |
| Output | stage command output formats (SQL, JSON, CSV, Parquet, stdout) without a database connection |
| Pipeline | Multi-table sequential reads and writes |
| Populate | Billion-row data population benchmark |
| Prepared | Prepared statements for reduced parse overhead in high-throughput workloads |
Live aggregated stats with print expressions (frequency, min/avg/max, custom agg) | |
| Reference Data | Static reference datasets without database queries |
| SaaS | Multi-tenant SaaS with tenants, users, projects, and tasks |
| SEATS | Airline reservation system benchmark with flight booking contention |
| Social | Social network with users, posts, follows, and tags |
| Stages | Staged execution with different worker counts and durations per phase |
| Stages Run Weights | Per-stage run_weights overrides to shift the workload mix alongside worker count |
| Sync | Dual-write consistency testing across databases (CockroachDB + MySQL) with batched verification |
| Sysbench Insert | Pure insert micro-benchmark (oltp_insert) for ingestion throughput |
| Sysbench Point Select | Pure point-select micro-benchmark (oltp_point_select) for read latency |
| Sysbench Read Write | Mixed read-write micro-benchmark (oltp_read_write) with scans, updates, and deletes |
| Sysbench Update Index | Pure indexed-column update micro-benchmark (oltp_update_index) |
| TATP | Telecom Application Transaction Processing benchmark (80% reads, 20% writes) |
| TPC-C | Full TPC-C benchmark with all 5 transaction profiles |
| Transaction | Multi-statement transactions with read-then-write patterns (SQL, MongoDB sessions, Cassandra logged batches) |
| Vector | pgvector-compatible embeddings with clustered vectors for similarity search |
| Workers | Background worker queries on a fixed schedule alongside the main run loop (job queue with lease expiry) |
| Workload | Built-in workloads (bank, ch, kv, movr, seats, sysbench-insert, sysbench-point-select, sysbench-read-write, sysbench-update-index, tatp, tpcc, tpch, ttlbench, ttllogger, ycsb) without a config file |
| YCSB | Yahoo! Cloud Serving Benchmark with a single usertable and configurable workload profiles |