giraph-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Semih Salihoglu <se...@stanford.edu>
Subject Introducing Graft: A debugging and testing tool for Giraph algorithms
Date Wed, 04 Jun 2014 18:00:35 GMT
Hi Giraph Users,

I wanted to introduce to you Graft, a project that some of us at Stanford
have built over the last quarter. If you are a Giraph user, who ran into an
annoying bug in which the code was throwing an exception or resulting in
incorrect looking messages or vertex values (e.g. NaNs or
NullPointerExceptions) and you had put in println statements into your
compute() functions, and then inspect logs of Hadoop workers for debugging
purposes, you should read on. You might find Graft very useful.

In a nutshell, Graft is based on the idea of *capturing *the contexts under
which a bug becomes noticeable (an exception is thrown or an incorrect
message is sent, or a vertex is assigned an incorrect value)
programmatically. The captured contexts can then be *visualized* through a
GUI. The contexts that a user thinks could be helpful for catching the bug
can then be *reproduced* in a compilable program and the user can then use
his/her favorite IDE's debugger to do step-by-step debugging into the
context. For example, when a vertex *v* throws an exception, the user can
reproduce the context under which *v* throws the exception and then use
(say) Eclipse to do step-by-step debugging to see exactly what lines were
executed that resulted in the exception being thrown.

On the testing side, Graft makes it easier to generate unit and end-to-end
tests by letting users curate small graphs through its GUI's testing mode,
and then generates code snippets which can be copied and pasted into a
JUnit test.

The project is still under development but interested users can start using
it. We have a wiki with documentation and instructions on how to install
and use Graft: https://github.com/semihsalihoglu/graft/wiki. Since the
project is under development, we'd highly appreciate users to start using
it and giving us direction on how to make it more useful. Our emails are on
the documentation page. We also encourage interested developers to
contribute to it if there are requested features that we don't get to very
quickly.

Just a small note: Graft works for the Giraph at trunk:
https://github.com/apache/giraph/tree/trunk. We do not support earlier
version. In particular your programs need to be written by extending
Computation and optionally the Master class, instead of the older Vertex
class.

Best,

semih

Mime
View raw message