(Illustration by Gaich Muramatsu)
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, RuneReceived on 2014-06-04 05:27:08