Project Gemini: An Open Source Automated Random Testing Suite for ScyllaDB and Cassandra Clusters
Blog post from ScyllaDB
Project Gemini is an open-source automated random testing suite designed for ScyllaDB and Cassandra clusters, aimed at ensuring data integrity and reliability in distributed databases. Developed by ScyllaDB engineers, Gemini applies random CQL operations to both a system under test and a reference test oracle to verify that both systems are in the same state, highlighting discrepancies as potential bugs. This tool is particularly useful for quality assurance teams testing CQL-compliant databases, as it aids in detecting hard-to-trigger bugs that can lead to data corruption or loss. By employing automatic random testing, Gemini effectively discovers edge cases, such as reactor stalls and out-of-memory errors, which are not typically covered by other test suites. The tool is implemented in Go, utilizing the gocql driver for CQL clusters, and provides flexibility in data generation and validation processes to simulate various operational scenarios within databases. The project is available on GitHub, offering resources for quick setup and further exploration of Gemini's architecture.