Sunday, March 29, 2009

X-Trace

Problem: Collecting traces of applications composed of distributed components in different administrative domains. Is it real? Yes.

Solution/Nugget: Pass along just enough metadata to form a task tree, but log all trace events locally within each AD. One can then reconstruct the tree after the fact.

Why is it different from previous work? Mostly because it changes the problem by trying to work across ADs.

Tradeoffs: There seems to be a tradeoff in all tracing work between the amount of code modification required and the value of the information captured. One interesting thing here is that it might be possible to instrument a few middleware libraries to capture a wide variety of behavior (this is what Andy and I did with Hadoop). However, doing this for all existing apps is difficult. It might also be interesting to combine X-Trace with existing libraries/tools like log4j or DTrace and let those fill in some nodes on the DAG of events.

Will it be influential? Probably; there are signs that Microsoft and Google have similar systems.

Criticisms: It might have been nice to specify a formal X-Trace format in this work, to make it easier for applications to adopt it. George and Rodrigo have done this now, but if the paper had "productized" X-Trace a bit more, more apps might have been running it now.

No comments: