Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coordinate (and merge?) these efforts with Jepsen #7

Closed
dumblob opened this issue Jun 21, 2019 · 3 comments
Closed

Coordinate (and merge?) these efforts with Jepsen #7

dumblob opened this issue Jun 21, 2019 · 3 comments

Comments

@dumblob
Copy link

dumblob commented Jun 21, 2019

Jepsen does very good job in finding safety issues in databases (most well known databases failed their safety tests pretty hard).

It might make sense to somehow cooperate with Jepsen or even merge your efforts?

@ept
Copy link
Owner

ept commented Jun 24, 2019

Thanks for your suggestion. I'm a big fan of Jepsen, and I gather Kyle sometimes refers to Hermitage as well. However, while the two projects support each other, I think they are quite different in many ways, and thus I think it makes sense to keep them separate.

@ept ept closed this as completed Jun 24, 2019
@miparnisari
Copy link

@ept as someone who is unfamiliar with Jepsen 😅 do you mind documenting what is the difference with it? Thanks!

@ept
Copy link
Owner

ept commented Nov 3, 2023

@miparnisari Sure. Jepsen is a test framework that automatically generates lots of inputs to a system, and concurrently controls the network and the clocks on the nodes to try to cause trouble. It then checks whether the results are correct. Hermitage is much simpler – it doesn't run tests automatically, it's just some queries that you can manually copy and paste into a terminal window. As such, Hermitage isn't really software, it's more like documentation. In principle, one could write an automated test runner based on the examples in this repo, but that would be a separate project. I like the fact that Hermitage tests are run manually, because the process of running them manually helps us build an intuition for how concurrency control mechanisms work.

(The FoundationDB tests are an exception – they are run by a shell script because the transaction would time out if the queries were copied and pasted by hand.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants