Coda File System

Coda-6.9.0 released

From: Jan Harkes <>
Date: Fri, 3 Nov 2006 16:01:48 -0500
Pulling the branch into CVS went well, so I put a coda-6.9.0 snapshot up
if anyone is interested. As I forgot to mention in my previous email, a
lot of the hard work with the new repair expansion was done by Adam
Wolbach. For the most part I think I was just removing lots of code.

The servers are mostly unchanged, they will happily serve both old and
new clients, and there are no RVM changes. Really the only change is
that they no longer abort a partially successful resolution. When we hit
an unresolvable operation we commit whatever succeeded and then allow
the cross-directory hinting mechanism that was introduced in 6.1.1 to
continue on another directory in the hope that those operations will
eventually allow us to complete resolution on the current directory.

This allows us to resolve the following sequence,
    'create a/x ; mv b/x b/y ; mv a/x b/x ; rm b/y'

Most of the changes are in the client and repair code and client RVM
does need to be reinitialized.

There are new 'cfs expand / cfs collapse' command which can be used to
expand and collapse individual files or directories and make their
underlying replicas visible. At some point this functionality will
probably be limited to allow expansion to happend only by people with
administrative rights on a directory, system administrators or when the
object is marked as having a conflict. For now it has proven to be a
quite useful tool to check for differences between replicas.

Some other changes,

cfs forcereintegrate (fr)
    can now be called without a volume name in which case it will
    iterate through all volumes on the client and force a synchronous
    writeback of all dirty state.

cfs writedisconnect
    has 2 arguments -age and -hogtime. Age defines how long a change is
    kept in the modification log until it is eligible for writeback.
    hogtime is the amount of time a single reintegration step should
    take. The default values if not specified are '-age 30 -hogtime 60'.
    age should be an integer value (seconds), hogtime accepts float
    values (seconds), so it should be possible to specify -hogtime 0.1

    Also these settings are now stored persistently and not reset when
    we return from a disconnection or when the client is restarted.

cfs strong
    is now an alias for 'cfs writedisconnect -age 0 -hogtime 0'

cfs adaptive
    is now an alias for 'cfs writedisconnect -age 0 -hogtime 1'

I think that is mostly it, server-side no RVM changes and still able to
service old clients, client-side requires reinitialization, and can talk
to old servers although newer servers will be able to resolve some
common sequences involving cross-directory renames.

Received on 2006-11-03 16:04:52