nemo

command module
v0.0.0-...-18fe0a3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2019 License: GPL-3.0 Imports: 11 Imported by: 0

README

Nemo

Nemo debugs Distributed Systems by analyzing provenance graphs obtained during fault injection.

Protocol Case Studies

Here we provide the Dedalus code for the six case studies we performed as part of the evaluation of our CIDR 2019 paper.

Running Nemo

We require two things for running Nemo: a Go and a Docker installation. Preferably, both come from your system's package manager, if available. Make sure to start the Docker daemon afterwards.

Once, these two dependencies are installed and properly configured, run:

user@system $  git clone git@github.com:numbleroot/nemo.git ${GOPATH}/src/github.com/numbleroot/nemo

To build and run auxiliary components, execute the following commands:

user@system $  cd ${GOPATH}/src/github.com/numbleroot/nemo
user@system $  sudo docker-compose -f docker-compose.yml build
user@system $  sudo docker-compose -f docker-compose.yml up -d
user@system $  make build

This should take care of preparing the environment and building the Nemo executable. Verify via sudo docker-compose -f docker-compose.yml ps that the Neo4J container defined in docker-compose.yml is running correctly.

Finally, having run Molly (see below) on the target distributed system prior to the following action and Molly successfully identifying a bug, run Nemo as follows:

user@system $  ./nemo -faultInjOut <PATH TO EXISTING MOLLY EXECUTION>

Nemo should debug the Molly execution now. If all goes well, you will be referred to a prepared webpage report to open in your browser.

Integrating with Molly

In case you rely on Molly for finding bugs (as we did in our CIDR paper), we require a slightly modified set of output files and format. Please check out the following fork: Molly fork (Kamala's fork of Molly set to latest commit on branch graphing).

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL