-
Using Fray does not require knowledge about "deterministic testing" or "controlled concurrency." This is one of its goals: developers write normal concurrency tests, and Fray controls the execution behind the scenes.
In fact, when we evaluate Fray, we collect all existing concurrency tests from Lucene, Kafka, and Guava, and running them under different thread inter-leavings can already reveal so many bugs. [1]
[1]: https://github.com/cmu-pasta/fray/blob/main/docs/bugs.md
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Apache Cassandra
Open source transactional distributed database. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure without compromising performance.
We have something very similar[1] we use in the Apache Cassandra project to test complex cluster behaviours.
We use exactly the same basic technique, using byte weaving to intercept concurrency primitives such as synchronized, LockSupport etc to pause the system thread and run them on some schedule.
We only currently run (deterministic) probabilistic traces though, we can’t search a thread interleaving space.
I have been meaning to publish it for broader consumption for years now, but there’s always something more important to do. It’s great to see some dedicated efforts in this space.
[1] https://github.com/apache/cassandra/tree/trunk/test/simulato...
Related posts
-
More databases should be single-threaded
-
Exploring the Journey of Apache Cassandra: Innovation, Funding, and Community Impact
-
Visualizing the Apache Cassandra Token Ring with Plotly
-
Build Your First App with JavaScript, Node.js, and DataStax Astra DB
-
Baeldung Series Part 2: Build a Dashboard With Cassandra, Astra and CQL – Mapping Event Data