(Illustration by Gaich Muramatsu)
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. JanReceived on 2006-11-03 16:04:52