Coda File System

Re: partial/on-demand mirroring ?

From: Jan Harkes <>
Date: Fri, 18 May 2007 22:51:15 -0400
On Sat, May 19, 2007 at 12:12:56AM +0200, Enrico Weigelt wrote:
> is it possible to let Coda do an partial or on-demand mirroring 
> (instead of an complete mirror) ?
> Example situation:
> * An HQ, where the server and some mobile clients live. 
> * An outpost with an local server, als some mobile clients.
> * HQ + Outpost are linked to the net w/ DSL (ugly latency!)
>   and connected via VPN.
> The primary filserv is in  HQ, ut the output server should
> function as cache for the clients.
> It such an setup possible ?

At some point we experimented with a model where the 'outpost' would
have a read-only clone of a Coda volume, for instance last nights
backups. Then if a client requested a file that hadn't been changed it
would be fetched from the 'staging server'. Normal write traffic as well
as requests for recently updated files would still be passed to the real

This was mostly a proof of concept, and although it does save bandwidth
it introduces some management problems as the staging server has to be
able to intercept all traffic, so it had to either have access to the
shared server secret or use unencrypted connections.

If I were to implement a similar scheme now it would most likely be
based on the lookaside caching mechanism, possibly using convergent
encryption. Where a local caching server would store encrypted copies of
files, but the attributes would still be fetched directly from the
remote servers. Or even avoid the caching server and have Coda clients
broadcast/listen for data requests and share their caches.

Splitting a replicated volume across 2 poorly connected sites is not as
efficient, clients would still have to talk to the remote site to detect
possible inconsistencies and the resolution protocol involves about 5 or
6 server-server exchanges to lock the volume at all sites, gather
information about the conflict, push out the final solution and compare
whether every replica has reached consensus.

Received on 2007-05-18 22:53:26