rich@sendai.sendai.ann-arbor.mi.us (K. Richard Magill) (10/03/89)
How does the logging facility decide to checkpoint state? eg, is it adaptive? is it a balance of state-size/time-to-write vs. transaction log? is it every T seconds? can I tailor it? Specifically, suppose I have three processes in a system. The first process has very little state but processes mega-traffic on that state. The second has mega-state, but processes medium traffic. The third has state that dynamically changes; sometimes large, sometimes small. I want to log all of them, and efficiently. (ps, the answer belongs in the manual.)
kane@svax.cs.cornell.edu (Kenneth Kane) (10/03/89)
The log manager currently checkpoints the state of a group member when that member's log contains either 250 messages or 1 megabyte total. These numbers were chosen based on the typical traffic and message size we saw in ISIS at the time the log manager was developed. I should also point out that a checkpoint is taken at a group member at the time the member joins the group. As a result, the logs of different servers may contains different checkpoints as well as different logged messages; and therefore future checkpoints may be taken at different times at the group members. There has been some discussion about making these parameters adjustable to the application. However, I have been busy lately writing my thesis and job hunting, so I haven't had a chance to implement this feature. There has also been some discussion of allowing an application to force checkpoints of group states. The problem with forced checkpoints is that they can create synchronization errors within the log manager. We'll have to take a closer look at this, though, to determine if it is at all feasible. The question of when the log manager choses to checkpoint has been brought up by several people recently. We will be sure to include a discussion in the next version of the ISIS manual. Ken Kane kane@svax.cs.cornell.edu