Coda File System

improving replication ?

From: <u-codalist-rcma_at_aetey.se>
Date: Wed, 4 Jun 2014 11:21:33 +0200
Hello,

First of all: I do _not_ suggest rewriting Coda from scratch :)

Nevertheless, I became aware of a recent independent implementation of
optimistic replication which at least at a first glance looks well-reasoned
(http://ori.scs.stanford.edu/  - thanks Greg!)

Note that this thing does not provide several of the crucial capabilities
present in Coda like the global name space and the proper access control
so it is not any "alternative" to Coda per se.

Nevertheless, it _looks_ like they have achieved robust and efficient
optimistic replication plus history preservation (with "eventual
consistency" which is about as good as Coda does, given the disconnected
mode).

I wonder if anybody here on the list (besides Greg) tested/used
Orifs and/or analysed its implementation.

It looks like it would not be impossible to use an orifs-like layer as
Coda data/metadata storage - which of course means fundamental changes
to how reintegration and resolution would work (orifs seems to be
able to well approximate our "weakly connected" mode by the automatic
reintegrations).

Such a change would probably improve robustness and also provide
the very nice property of persistent history (which is meant to
obsolete/embrace the backup subsystem).

Given that Coda still has some undesired implementation artifacts like
dependency on ipv4 addresses and certain arbitrary limitations which
can not be lifted without relatively intrusive changes, this may open a
possibility to improve the replication/history properties at the same time.

Orifs is written in c++ so "friendly" to Coda. The license looks to
be the shortest of the BSD kind.
I would expect that a Coda volume storage (both the file- and metadata)
could be implemented on top of orifs, with a set of rpcs corresponding
to orifs synchronization primitives.

With the slightly relaxed consistency requirements the client-server and
server-server interactions can become much simpler and hence more robust
(oh I highly dislike callbacks, they were inherited from AFS and have
virtually no value for a system which implicitly supports disconnected
operation).

Given that the research of Coda at CMU is not currently active, the
possible change of the underlying algorithms would not hurt anybody and
might even provide a field for more research.

As Orifs is quite new we may need some time to learn what it is
and if/how its code can be reused but I want to make the list aware
of the possibility.

Regards,
Rune
Received on 2014-06-04 05:27:08