itc4j


Java Implementaion of Interval Tree Clocks

This project moved to http://github.com/sinabz/itc4j

This is a small library which implements Interval Tree Clocks (ITC), a logical clock for tracking causality in dynamic distributed systems. You can find details about the concept at http://gsd.di.uminho.pt/teaching/misd/2010/sm/itc.pdf.
The following comes directly from the paper mentioned above:

"This paper addresses causality tracking in dynamic settings and introduces Interval Tree Clocks (ITC), a novel causality tracking mechanism that generalizes both Version Vectors and Vector Clocks. It does not require global ids but is able to create, retire and reuse them autonomously, with no need for global coordination; any entity can fork a new one and the number of participants can be reduced by joining arbitrary pairs of entities; stamps tend to grow or shrink adapting to the dynamic nature of the system. Contrary to some previous approaches, ITC is suitable for practical uses, as the space requirement scales well with the number of entities and grows modestly over time."

Sample

Stamp s = new Stamp(); Stamp stamp = new Stamp(); Stamp[] f1 = Stamp.fork(stamp); System.out.println("f1[0] = " + f1[0]); System.out.println("f1[1] = " + f1[1]); Stamp e1 = Stamp.event(f1[0]); System.out.println("e1 = " + e1); Stamp e2 = Stamp.event(Stamp.event(f1[1])); System.out.println("e2 = " + e2);

Project Information

The project was created on Sep 3, 2011.

Labels:
java vectorclock