scylladb / cql-stress

8 stars 4 forks source link

Multi-table workloads #59

Open avelanarius opened 8 months ago

avelanarius commented 8 months ago

All cql-stress workloads perform queries on a single table. If a user wants to stress multiple tables, they have to start multiple instances of cql-stress, which can be problematic if a large number of tables needs to be stressed (for example 500 tables).

As an enhancement, cql-stress could support stressing multiple tables. Under the hood, each operation could randomize/round-robin the table it will perform the operation on. As for a type of workload performed on each table (is it write? is it read? what's the schema?) it seems like it would make sense for all those tables to share the same workload, as it could be complicated to design a nice CLI to specify workloads for each table (maybe it would be possible for "user" workloads in cassandra-stress - specifying a separate yaml file for each table).

This feature was suggested by @kostja.

roydahan commented 8 months ago

This is a nice to have enhancement that have a very easy workaround that is already being used in several places - hence it should get lower priority for now.

kostja commented 8 months ago

What is the workaround?

roydahan commented 8 months ago

Same as we test in SCT, you run multiple process of the tool.

kostja commented 8 months ago

We need 500 tables in the test. you can't realistically run 500 processes and control the stress characteristics of the test.

roydahan commented 8 months ago

We have one with 5000, so 500 should be easy.