Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
JaRec: a portable record/replay environment for multi-threaded Java applications
Georges A., Christiaens M., Ronsse M., De Bosschere K. Software--Practice & Experience34 (6):523-547,2004.Type:Article
Date Reviewed: Jan 11 2005

Multithreaded programs consist of several threads that execute independently until they need to have access to a shared resource. In such cases, the threads need to synchronize to prevent so-called data races. Debugging such programs is difficult, because the nondeterminism inherent to multithreading programming usually makes consecutive runs of the same program different from each other.

In this paper, the authors report on a Java tool that is able to record the relative order in which synchronization operations happen, so that they can be replayed deterministically as many times as necessary. They use Lamport clocks, and instrument each class at load time so that it records the times at which each thread executes a synchronization operation in a file, which is used later to control the execution of the program.

The authors’ proposal seems to be quite efficient in practice, but it could be better, since it records the synchronization operations performed on every object, including those that are local to a thread. This is a waste of time, since the order in which the synchronization operations are executed on those objects depends on the current thread itself, and not on other threads.

For a general introduction to the motivation for, and the main problems regarding, the implementation of record/replay systems, I recommend Ronsse et al.’s paper [1].

Reviewer:  Rafael Corchuelo Review #: CR130639 (0506-0684)
1) Ronsse, M.; De Bosschere, K.; Christiaens, M.; De Kergommeaux, J.C.; Kranzlmller, D. Record/replay for nondeterministic program executions. Communications of the ACM 46, 9(2003), 62–67. http://doi.acm.org/10.1145/903893.903895.
Bookmark and Share
  Featured Reviewer  
 
Distributed Debugging (D.2.5 ... )
 
 
Java (D.3.2 ... )
 
 
Testing Tools (D.2.5 ... )
 
 
Threads (D.4.1 ... )
 
 
Language Classifications (D.3.2 )
 
 
Process Management (D.4.1 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Distributed Debugging": Date
Coordination algorithm for distributed testing
Rafiq O., Cacciari L. The Journal of Supercomputing 24(2): 203-211, 2003. Type: Article
Mar 3 2004
Scalable relative debugging
Dinh M., Abramson D., Jin C. IEEE Transactions on Parallel and Distributed Systems 25(3): 740-749, 2014. Type: Article
Jun 25 2014

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy