Convex: Life Without a Backend Team (Jam...
Are there any updates to how Convex approaches testing since this talk? Been going down a rabbit hole the past few days. https://www.youtube.com/watch?v=iizcidmSwJ4
CMU Database Group
YouTube
Convex: Life Without a Backend Team (James Cowling)
CMU Database Group - Vaccination Database Tech Talks - Second Dose (2021)
Speakers: James Cowling (Convex)
November 22, 2021
https://db.cs.cmu.edu/seminar2021-dose2#db12
Sponsors:
OtterTune (https://ottertune.com)
Steven Moy Foundation for Keeping it Real (https://stevenmoyfoundation.org)
5 Replies
hey! yeah, we're actually planning on open sourcing our deterministic simulation testing framework this month for testing the core commit protocol. we've set up everything in convex to be deterministic under a special runtime, so we generate a bunch of pseudorandom traffic, adversarially schedule threads in the system, and then check that everything still works. stay tuned.
recently, we've also been working on porting https://github.com/jepsen-io/elle for consistency level checking. elle is a special way to generate traffic such that it's easy to detect when the database behaves in a way that violates its claimed guarantees. the code is at https://github.com/get-convex/convex-backend/tree/main/crates/simulation but still very rough.
GitHub
GitHub - jepsen-io/elle: Black-box transactional safety checker bas...
Black-box transactional safety checker based on cycle detection - jepsen-io/elle
GitHub
convex-backend/crates/simulation at main · get-convex/convex-backend
The Convex open-source backend. Contribute to get-convex/convex-backend development by creating an account on GitHub.
Thanks! It looks like the link to the port for elle is private. Do you guys plan on making a writeup on the implementation of your dst framework? Would be curious to see how it compares to foundationdb and tigerbeetle
fixed! sorry about that. no plans yet, but we can write one if it'd be helpful.
a lot of it is similar to work we did back at dropbox for the sync engine there. my colleague isaac wrote up a post for DST back then: https://dropbox.tech/infrastructure/-testing-our-new-sync-engine
it's very inspired by foundationdb & lots of shared ideas w/the tigerbeetle folks. we've been talking to both of those teams a lot.
Thanks again! I would definitely read if you guys decide to make a writeup.