(Illustration by Gaich Muramatsu)
On Thu, Jun 14, 2007 at 06:13:54PM +0100, prashant wrote: > I have currently node2 doing replication of a volume from node1 which is > th SCM. > Both nodes has their client installed on the same machine and connecting > to their respective server. > > When i am updating a file on node1 - i am expecting to to see the update > happening on node2. > But this only happens when read the file from node1 then i find the file > being update on node2. > > Is it a normal behavior or something not configured properly. I think the problem is that you are treating both nodes as separate servers. i.e. you are accessing both /coda/node1.my.realm and /coda/node2.my.realm Although it seems to work it is not really supported. The problem is that both of these 'mounts' are different views on the same realm and the servers don't see them as separate. When you access a file through /coda/node1.my.realm/file and then look at /coda/node2.my.realm/file as far as the servers is concerned the same client just fetched the same file twice. And because the server doesn't realize the client is using serveral views for the same realm it doesn't send callbacks when it receives an update in one of the two views (and doesn't send enough callbacks when another client makes an update). What you really want is to abstract out the fact that there are different servers that can be contacted for volume information, which has the added benefit that at the same time it makes the client able to cope with either of your servers going offline. The simplest would be to have a file /etc/coda/realms that contains the following line, my.realm server1.my.realm server2.my.realm In your case that would be, bluebarracuda.net node1.bluebarracuda.net node2.bluebarracuda.net If you can add DNS records for your domain you could also add DNS SRV records so that you don't have to add that line to the coda/realms file. http://www.coda.cs.cmu.edu/maillists/codalist/codalist-2004/6371.html http://www.coda.cs.cmu.edu/maillists/codalist/codalist-2007/8195.html http://coda.wikidev.net/Rapid_Installation_of_a_DNS_Server Once you have the /etc/coda/realms line or DNS SRV records you can access your realm as follows, ls /coda/bluebarracuda.net The Coda client will then try to contact either node1 or node2 whichever is available whenever it wants to know where volumes are located. The volume databases are available on all Coda servers (/vice/db/VLDB and VRDB files) so if you add a node3 it doesn't have to be added because the existing nodes can get the location information for any node3 volumes from those databases. You probably want to try to flush all objects visible through the node1 and node2 realm mounts to make sure the server will end up sending callbacks to the correct realm mount. cfs fl /coda/node* should do the trick, otherwise restart venus with the -init flag to get rid of any persistent state. JanReceived on 2007-06-14 15:02:43