From 5ec583639e0595c1dcd067bfa7f1a0a509c1ff76 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Mon, 16 Mar 2020 08:42:31 -0500 Subject: [PATCH] adding workloads for CQL --- .../activities/baselines/cql-iot-dse.yaml | 99 +++++++++++++++++++ .../activities/baselines/cql-iot.yaml | 98 ++++++++++++++++++ .../activities/baselines/cql-keyvalue.yaml | 78 +++++++++++++++ .../activities/baselines/cql-widerows.yaml | 86 ++++++++++++++++ 4 files changed, 361 insertions(+) create mode 100644 activitytype-cql/src/main/resources/activities/baselines/cql-iot-dse.yaml create mode 100644 activitytype-cql/src/main/resources/activities/baselines/cql-iot.yaml create mode 100644 activitytype-cql/src/main/resources/activities/baselines/cql-keyvalue.yaml create mode 100644 activitytype-cql/src/main/resources/activities/baselines/cql-widerows.yaml diff --git a/activitytype-cql/src/main/resources/activities/baselines/cql-iot-dse.yaml b/activitytype-cql/src/main/resources/activities/baselines/cql-iot-dse.yaml new file mode 100644 index 000000000..dea04b63d --- /dev/null +++ b/activitytype-cql/src/main/resources/activities/baselines/cql-iot-dse.yaml @@ -0,0 +1,99 @@ +# ebdse -v run type=cql yaml=baselines/cql-iot tags=phase:schema host=dsehost +bindings: + machine_id: Mod(<>); ToHashedUUID() -> java.util.UUID + sensor_name: HashedLineToString('data/variable_words.txt') + time: Mul(<>L); Div(<>L); ToDate() + cell_timestamp: Mul(<>L); Div(<>L); Mul(1000L) + sensor_value: Normal(0.0,5.0); Add(100.0) -> double + station_id: Div(<>);Mod(<>); ToHashedUUID() -> java.util.UUID + data: HashedFileExtractToString('data/lorem_ipsum_full.txt',800,1200) +blocks: + - tags: + phase: schema + params: + prepared: false + statements: + - create-keyspace: | + create keyspace if not exists <> + WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '<>'} + AND durable_writes = true; + tags: + name: create-keyspace + - create-table : | + create table if not exists <>.<> ( + machine_id UUID, // source machine + sensor_name text, // sensor name + time timestamp, // timestamp of collection + sensor_value double, // + station_id UUID, // source location + data text, + PRIMARY KEY ((machine_id, sensor_name), time) + ) WITH CLUSTERING ORDER BY (time DESC) + AND compression = { 'sstable_compression' : '<>' } + AND nodesync={'enabled': 'true'} + AND compaction = { + 'class': 'TimeWindowCompactionStrategy', + 'compaction_window_size': <>, + 'compaction_window_unit': 'MINUTES', + 'split_during_flush': true + }; + tags: + name: create-table + - truncate-table: | + truncate table <>.<>; + tags: + name: truncate-table + - tags: + phase: rampup + params: + cl: <> + statements: + - insert-rampup: | + insert into <>.<> + (machine_id, sensor_name, time, sensor_value, station_id, data) + values ({machine_id}, {sensor_name}, {time}, {sensor_value}, {station_id}, {data}) + using timestamp {cell_timestamp} + idempotent: true + tags: + name: insert-rampup + - tags: + phase: verify + type: read + params: + ratio: 1 + cl: <> + statements: + - select-verify: | + select * from <>.<> + where machine_id={machine_id} and sensor_name={sensor_name} and time={time}; + verify-fields: "*, -cell_timestamp" + tags: + name: select-verify + - tags: + phase: main + type: read + params: + ratio: <> + cl: <> + statements: + - select-read: | + select * from <>.<> + where machine_id={machine_id} and sensor_name={sensor_name} + limit <> + tags: + name: select-read + - tags: + phase: main + type: write + params: + ratio: <> + cl: <> + statements: + - insert-main: | + insert into <>.<> + (machine_id, sensor_name, time, sensor_value, station_id, data) + values ({machine_id}, {sensor_name}, {time}, {sensor_value}, {station_id}, {data}) + using timestamp {cell_timestamp} + idempotent: true + tags: + name: insert-main diff --git a/activitytype-cql/src/main/resources/activities/baselines/cql-iot.yaml b/activitytype-cql/src/main/resources/activities/baselines/cql-iot.yaml new file mode 100644 index 000000000..41999f484 --- /dev/null +++ b/activitytype-cql/src/main/resources/activities/baselines/cql-iot.yaml @@ -0,0 +1,98 @@ +# dsbench -v run type=cql yaml=baselines/cql-iot tags=phase:schema + host=dsehost +bindings: + machine_id: Mod(<>); ToHashedUUID() -> java.util.UUID + sensor_name: HashedLineToString('data/variable_words.txt') + time: Mul(<>L); Div(<>L); ToDate() + cell_timestamp: Mul(<>L); Div(<>L); Mul(1000L) + sensor_value: Normal(0.0,5.0); Add(100.0) -> double + station_id: Div(<>);Mod(<>); ToHashedUUID() -> java.util.UUID + data: HashedFileExtractToString('data/lorem_ipsum_full.txt',800,1200) +blocks: + - tags: + phase: schema + params: + prepared: false + statements: + - create-keyspace: | + create keyspace if not exists <> + WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '<>'} + AND durable_writes = true; + tags: + name: create-keyspace + - create-table : | + create table if not exists <>.<> ( + machine_id UUID, // source machine + sensor_name text, // sensor name + time timestamp, // timestamp of collection + sensor_value double, // + station_id UUID, // source location + data text, + PRIMARY KEY ((machine_id, sensor_name), time) + ) WITH CLUSTERING ORDER BY (time DESC) + AND compression = { 'sstable_compression' : '<>' } + AND compaction = { + 'class': 'TimeWindowCompactionStrategy', + 'compaction_window_size': <>, + 'compaction_window_unit': 'MINUTES' + }; + tags: + name: create-table + - truncate-table: | + truncate table <>.<>; + tags: + name: truncate-table + - tags: + phase: rampup + params: + cl: <> + statements: + - insert-rampup: | + insert into <>.<> + (machine_id, sensor_name, time, sensor_value, station_id, data) + values ({machine_id}, {sensor_name}, {time}, {sensor_value}, {station_id}, {data}) + using timestamp {cell_timestamp} + idempotent: true + tags: + name: insert-rampup + - tags: + phase: verify + type: read + params: + ratio: 1 + cl: <> + statements: + - select-verify: | + select * from <>.<> + where machine_id={machine_id} and sensor_name={sensor_name} and time={time}; + verify-fields: "*, -cell_timestamp" + tags: + name: select-verify + - tags: + phase: main + type: read + params: + ratio: <> + cl: <> + statements: + - select-read: | + select * from <>.<> + where machine_id={machine_id} and sensor_name={sensor_name} + limit <> + tags: + name: select-read + - tags: + phase: main + type: write + params: + ratio: <> + cl: <> + statements: + - insert-main: | + insert into <>.<> + (machine_id, sensor_name, time, sensor_value, station_id, data) + values ({machine_id}, {sensor_name}, {time}, {sensor_value}, {station_id}, {data}) + using timestamp {cell_timestamp} + idempotent: true + tags: + name: insert-main diff --git a/activitytype-cql/src/main/resources/activities/baselines/cql-keyvalue.yaml b/activitytype-cql/src/main/resources/activities/baselines/cql-keyvalue.yaml new file mode 100644 index 000000000..251cef370 --- /dev/null +++ b/activitytype-cql/src/main/resources/activities/baselines/cql-keyvalue.yaml @@ -0,0 +1,78 @@ +# dsbench -v run type=cql yaml=baselines/cql-keyvalue tags=phase:schema + host=dsehost +bindings: + seq_key: Mod(<>); ToString() -> String + seq_value: Hash(); Mod(<>); ToString() -> String + rw_key: <int>>; ToString() -> String + rw_value: Hash(); <int>>; ToString() -> String + +blocks: + - name: schema + tags: + phase: schema + params: + prepared: false + statements: + - create-keyspace: | + create keyspace if not exists <> + WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '<>'} + AND durable_writes = true; + tags: + name: create-keyspace + - create-table: | + create table if not exists <>.<> ( + key text, + value text, + PRIMARY KEY (key) + ); + tags: + name: create-table + - name: rampup + tags: + phase: rampup + params: + cl: <> + statements: + - rampup-insert: | + insert into <>.<> + (key, value) + values ({seq_key},{seq_value}); + tags: + name: rampup-insert + - name: verify + tags: + phase: verify + type: read + params: + cl: <> + statements: + - verify-select: | + select * from <>.<> where key={seq_key}; + verify-fields: key->seq_key, value->seq_value + tags: + name: verify + - name: main-read + tags: + phase: main + type: read + params: + ratio: 5 + cl: <> + statements: + - main-select: | + select * from <>.<> where key={rw_key}; + tags: + name: main-select + - name: main-write + tags: + phase: main + type: write + params: + ratio: 5 + cl: <> + statements: + - main-insert: | + insert into <>.<> + (key, value) values ({rw_key}, {rw_value}); + tags: + name: main-insert diff --git a/activitytype-cql/src/main/resources/activities/baselines/cql-widerows.yaml b/activitytype-cql/src/main/resources/activities/baselines/cql-widerows.yaml new file mode 100644 index 000000000..b8371743f --- /dev/null +++ b/activitytype-cql/src/main/resources/activities/baselines/cql-widerows.yaml @@ -0,0 +1,86 @@ +# ebdse -v run type=cql yaml=baselines/cql-widerows tags=phase:schema host=dsehost +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: + - name: schema + tags: + phase: schema + params: + prepared: false + statements: + - create-keyspace: | + create keyspace if not exists <> + WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '<>'} + AND durable_writes = true; + tags: + name: create-keyspace + - create-table: | + create table if not exists <>.<> ( + part text, + clust text, + data text, + PRIMARY KEY (part,clust) + ); + tags: + name: create-table + - name: rampup + tags: + phase: rampup + params: + cl: <> + statements: + - rampup-insert: | + insert into <>.<> + (part,clust,data) + values ({part_layout},{clust_layout},{data}) + tags: + name: rampup-insert + - name: verify + tags: + phase: verify + type: read + params: + cl: <> + statements: + - verify-select: | + select * from <>.<> where part={part_layout} and clust={clust_layout} + tags: + name: verify-select + - name: main-read + tags: + phase: main + type: read + params: + ratio: 5 + cl: <> + statements: + - main-select: | + select * from <>.<> where part={part_read} limit {limit}; + tags: + name: main-select + - name: main-write + tags: + phase: main + type: write + params: + ratio: 5 + cl: <> + statements: + - main-write: | + insert into <>.<> + (part, clust, data) + values ({part_write},{clust_write},{data_write}) + tags: + name: main-write