(Illustration by Gaich Muramatsu)
On Wed, Jul 20, 2005 at 10:03:12AM -0500, mdbridge_at_verizon.net wrote: > Do any tools exist which allow coda volumes to be populated with files > and directories without involving a client? I know that running a > client on the server isn't good. But it would be useful to be able to > access the volume FS without involving network overhead. This would > paticularly be useful in a case where a volume needed to be populated > with a large number of files when it was created. This is trivial > with CIFS and NFS since they use the unix directory structure. > However, coda uses its own organization. No such tools exist. We need to use our own organization because the server needs to store additional metadata (version vectors), addresses files based on 96-bit unique identifiers instead of UNIX's 32-bit inodes. As a result our directory format is quite different and we can't just use a unix directory. We also store our directory data in RVM instead of an on-disk container file. That is because RVM modifications are logged and can be reverted when the server crashes, so we get some consistency guarantees from RVM that the underlying filesystem might not provide. We also need to know when files change on the server to be able to send callbacks. CIFS and NFSv2/v3 are using a timeout based revalidation instead of explicit callbacks, so they don't care if some local user is locally modifying things. Finally, our replication is done by the clients instead of the servers. A client makes sure he updates as many replicas as possible when writing, and checks if any replicas missed some update when reading. If a replica has missed updates, then the servers exchange a log of recent updates to decide how to resolve the differences. So even if you had local access on the server, you'd still need a client to discover that there are differences between the servers, and the log-based resolution to bring them back in sync would fail in many cases since there is no actual server-side log of what operations were recently performed. JanReceived on 2005-07-20 12:44:58