Questions tagged [jepsen]

Jepsen is a Clojure library. A test is a Clojure program which uses the Jepsen library to set up a distributed system, run a bunch of operations against that system, and verify that the history of those operations makes sense.

Jepsen is a Clojure library. A test is a Clojure program which uses the Jepsen library to set up a distributed system, run a bunch of operations against that system, and verify that the history of those operations makes sense. Jepsen has been used to verify everything from eventually-consistent commutative databases to linearizable coordination systems to distributed task schedulers. It can also generate graphs of performance and availability, helping you characterize how a system responds to different faults.

A Jepsen test runs as a Clojure program on a control node. That program uses SSH to log into a bunch of db nodes, where it sets up the distributed system you're going to test using the test's pluggable os and db.

Once the system is running, the control node spins up a set of logically single-threaded processes, each with its own client for the distributed system. A generator generates new operations for each process to perform. Processes then apply those operations to the system using their clients. The start and end of each operation is recorded in a history. While performing operations, a special nemesis process introduces faults into the system--also scheduled by the generator.

Finally, the DB and OS are torn down. Jepsen uses a checker to analyze the test's history for correctness, and to generate reports, graphs, etc. The test, history, analysis, and any supplementary results are written to the filesystem under store/// for later review. Symlinks to the latest results are maintained at each level for convenience.

Github project: https://github.com/aphyr/jepsen

4 questions
2
votes
1 answer

Jepsen : SSH issue

Background: I am trying to run the Jepsen (https://github.com/jepsen-io/jepsen) on Ubuntu 16.04. I have created 6 virtual machines (on my windows 10 pc) and replaced the host name by n1, n2, .... n6. The user name and password is same for all…
Pallab
  • 23
  • 3
0
votes
2 answers

how to solve this jepsen test error in tendermint? com.jcraft.jsch.JSchException: java.net.UnknownHostException: n1

I am running the code from this repository https://github.com/jepsen-io/tendermint without changing any files. But i am getting error while running the command lein run test. The error that I got is mentioned below. Initializing core.typed ... …
abi
  • 21
  • 2
0
votes
1 answer

What is Extend-protocol in a Jepsen context?

I'm new to clojure and I am trying to figure out what Jepsen does, a software used to check consistency of distributed system. My questions are: What does extend-protocol do? To be more specific, In Jepsen.Generator, what is op in the…
0
votes
1 answer

Unable to run jepsen test for either elasticsearch or rabbitmq

I seem to be missing something basic as I try to run the tests @ https://github.com/abailly/jepsen-vagrant Here is the output for the rabbitmq test profile in lein : lein test :only jepsen.system.rabbitmq-test/rabbit-test ERROR in (rabbit-test)…
ZeroGraviti
  • 1,047
  • 2
  • 12
  • 28