scylladb / cql-stress

8 stars 4 forks source link

c-s: Implement column generators for other types #78

Closed muzarski closed 2 weeks ago

muzarski commented 1 month ago

As of now, only blob type is supported by the c-s frontend. It's the only type required by existing modes.

With introduction of user profiles, the users should be able to define custom tables with some other types. We need to implement value generators for these types.

roydahan commented 1 month ago

While working on that, let's keep in mind that unlike c-s user profile, we want cql-stress to be able to do a data verfication on these types of values.

muzarski commented 1 month ago

While working on that, let's keep in mind that unlike c-s user profile, we want cql-stress to be able to do a data verfication on these types of values.

Yes, but I don't think it's really related to the per-type generation logic itself. Validation heavily depends on -pop option, and the distribution that is chosen to sample the partition key seeds from.

I already implemented generators for most of the types, and have it locally (it's just waiting for CLI + runtime to be merged). I made some local tests for these types with SEQ distribution (which samples the rows in a deterministic way). The values we generate are the same as in original c-s.

There is one other thing to keep in mind for the future: we want to support UDTs/collections, and so we should implement generators in a way so they can be somehow nested. But I think this can be adjusted in the future, when introducing more complex types to the tool.