Coda File System

Re: Sluggish/incomplete reintegration on low-BW connection?

From: LEE, Yui-wah <clement+_at_cs.cmu.edu>
Date: Wed, 7 Jul 1999 12:13:39 +0800 (CST)
Bill Gribble <grib_at_cs.utexas.edu> wrote:
> 
> In general, is there any way to say "Force synchronization of all
> volumes right now, and I mean it?"  Seems like reintegration messages
> pop up VERY slowly when changes are happening fairly rapidly.  I'd
> like clients on multiple machines to have a somewhat-uniform view of a
> shared filesystem, or at least some way to speed up synchronization
> when it's important.

Yes and no.  Right now you can do a "cfs wd -age 0; cfs wr" (or something
similar) to force the "age" to zero.  Reintegrate age is the limit used by
Venus for keeping CML entries around, for a while, so that there are some
chance of cancellation optimization. By default the age is 60 seconds.
With an age of zero second, all CML entries are immediately "allowed"
to reintegration.

However, the action is not synchronous.  When you issue the command,
it will return immediately,  all current CML entries are 
marked as reintegratable, but they still need to be picked
up by the reintegrator (active every 10 seconds), and, also,
the actually reintegration takes time (if your file is big and
the link is weak, the reintegration may take long long time to
finish).

So, ideally, we want to have a "blocking" (or synchronous) ioctl
call (and the corresponding user-level command), something likes
"cfs forcereintegrate <dir>," that will only return when the actually
reintegration completes.  This feature is not yet implemented, as far
as I know.

Jan and I had a discussion last month on the issue, and he told me
that Shafeeq is working on something, which, when finishes, will make
it really handy to implement the "cfs forcereintegrate" command.  Jan,
what is the progress now?

In the mean time, I enhanced the "cfs listvolume" command (since
Coda 5.2.5, I believe) that it will also show the number of pending 
CML entries.  

So, the present ugly solution to the problem is to set the reintegration
age to zero, and then, after some time, run "cfs lv" to poll if all your
CML entries have been reintegrated.

-- Clement


======================================================================
Yui-wah LEE (Clement)                              Tel: (852)-26098412
Department of Computer Science and Engineering, Mobile: (852)-98421024 
The Chinese University of Hong Kong     Real-time Msg.: 41792200 (ICQ)
WWW: www.cse.cuhk.edu.hk/~clement       Email: clement_at_cse.cuhk.edu.hk
======================================================================
Received on 1999-07-07 09:20:59