min_version: "5.17.1" description: A tabular workload with partitions, clusters, and data fields scenarios: default: schema: run driver=cql tags==block:schema threads==1 cycles==UNDEF rampup: run driver=cql tags==block:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto main: run driver=cql tags==block:main-*.* cycles===TEMPLATE(main-cycles,10000000) threads=auto astra: schema: run driver=cql tags==block:schema_astra threads==1 cycles==UNDEF rampup: run driver=cql tags==block:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto main: run driver=cql tags==block:main-*.* cycles===TEMPLATE(main-cycles,10000000) threads=auto basic_check: schema: run driver=cql tags==block:schema threads==1 cycles==UNDEF rampup: run driver=cql tags==block:rampup cycles===TEMPLATE(rampup-cycles,10) threads=auto main: run driver=cql tags==block:main-*.* cycles===TEMPLATE(main-cycles,10) threads=auto bindings: # for ramp-up and verify part_layout: Div(<>); ToString() -> String clust_layout: Mod(<>); ToString() -> String data: HashedFileExtractToString('data/lorem_ipsum_full.txt',50,150) # for read limit: Uniform(1,10) -> int part_read: Uniform(0,<>)->int; ToString() -> String clust_read: Add(1); Uniform(0,<>)->int; ToString() -> String # for write part_write: Hash(); Uniform(0,<>)->int; ToString() -> String clust_write: Hash(); Add(1); Uniform(0,<>)->int; ToString() -> String data_write: Hash(); HashedFileExtractToString('data/lorem_ipsum_full.txt',50,150) -> String blocks: schema: params: prepared: false ops: create_keyspace: | create keyspace if not exists <> WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '<>'} AND durable_writes = true; create_table: | create table if not exists <>.<> ( part text, clust text, data text, PRIMARY KEY (part,clust) ); schema_astra: params: prepared: false ops: create_table: | create table if not exists <>.<> ( part text, clust text, data text, PRIMARY KEY (part,clust) ); rampup: params: cl: <> ops: rampup_insert: | insert into <>.<> (part,clust,data) values ({part_layout},{clust_layout},{data}) verify: params: cl: <> ops: verify_select: | select * from <>.<> where part={part_layout} and clust={clust_layout}; main_read: params: ratio: 5 cl: <> ops: main_select: | select * from <>.<> where part={part_read} limit {limit}; main_write: params: ratio: 5 cl: <> ops: main_write: | insert into <>.<> (part, clust, data) values ({part_write},{clust_write},{data_write});