...
cassandra-diff and associated documentation can be found at: https://github.com/apache/cassandra-diff. Contributors are encouraged to run diff tests against clusters they manage and report issues to ensure workload diversity across the project.
⏳WIP: Test Infrastructure / Automation: "Harry"
Jira | ||||||
---|---|---|---|---|---|---|
|
Harry is a component for fuzz testing and verification of the Apache Cassandra clusters at scale. Harry allows to run tests that are able to validate state of both dense nodes (to test local read-write path) and large clusters (to test distributed read-write path), and do it efficiently. Harry defines a model that holds the state of the database, generators that produce reproducible, pseudo-random schemas, mutations, and queries, and a validator that asserts the correctness of the model following execution of generated traffic. See CASSANDRA-15348 for additional details.
Development of Harry is currently in progress. Once complete, contributors envision its black-box model and verifier to act as a test to which compute power can be dedicated indefinitely. Harry's generators and model are also useful toward writing targeted property-based tests. Python-based dtests are good candidates for migration from Python/Byteman to in-JVM dtests paired with Harry's model and generators.
Local Read/Write Path
Testing in this area refers to the local read/write path (StorageProxy, ColumnFamilyStore, Memtable, SSTable reading/writing, etc). We are still finding numerous bugs and issues with the 3.0 storage engine rewrite (CASSANDRA-8099). For 4.0 we want to ensure that we thoroughly cover the local read/write path with techniques such as property-based testing, fuzzing (example), and a source audit.
...