Subject: Re: Kwok/Calgary change made

From: Bob Jackson <[email-masked]>
Date: Fri, 1 Sep 95 15:30:37 EDT

Don asked a number of good questions, which deserve an 
explanation.

Q: I just ordered a MODIFY to do Kwok's change, and replied to him saying
"DONE", even though the transaction won't happen for another 45min.
What would prevent another Consortium person from also ordering a
MODIFY during the 45min interval?  

A: The HTML and TCL representation of the master database is updated
once an hour at 30 minutes past the hour by combining all the 
individual files (one per resource) into a single file.  When
people add or modify a resource, they are modifying one of the
small individual files.  CVS (Concurrent Version System) is used
to deal with the problem of:

	10:00 Don loads the modify form with existing data
	10:05 Bob loads the modify form with existing data but with
		changes which conflict with Don's
	10:10 Bob commits his changes
	10:15 Don commits his changes

CVS is smart enough to merge nonconflicting changes, e.g.,
	Bob changes Owner and Don changes Description
and to abort on conflicting changes, e.g.,
	Bob changes Owner and Don changes Owner to something else

CVS was intended to allow more than one person to edit a file
at a time, i.e., NO FILE LOCKING.  

However in the case where

	10:00 Don loads the modify form with existing data
	10:05 Don commits his changes
	10:10 Bob loads the modify form with existing data

Bob will see the what Don commited.
The changes are done immediately, but the merged file can lag
by up to an hour.

The only impacts of the time lag are for:

	1. New Records
	2. Deleted Records
	3. Records with modified URL's

where the astroweb-cvs.html file selection list at the bottom
will lag behind reality.

Q: In fact, will the machinery alert
us if we try to fetch a record which somebody else has recently
fetched? 

A: No, there is no Checkout/Locking.

Q: If it did, then we would not even issue a second (colliding)
MODIFY command.

A: CVS tries to merge and aborts if it can't.

I was willing to make the Kwok change because MODIFY is now a
low-overhead operation, one that is better to do immediately than put
off, and because I am willing to have faith that the daemons really
will execute the transaction within an hour. I sure hope that that
faith is well founded....

---

From: [email-masked] (Don Wells)
Date: Fri, 1 Sep 1995 16:18:52 -0400

DW> Q: I just ordered a MODIFY to do Kwok's change, and replied to him saying
DW> "DONE", even though the transaction won't happen for another 45min..
DW> I was willing to make the Kwok change because MODIFY is now a
DW> low-overhead operation, one that is better to do immediately than put
DW> off, and because I am willing to have faith that the daemons really
DW> will execute the transaction within an hour. I sure hope that that
DW> faith is well founded....

I confirm that the change which I ordered was made in the master database.

Thank you, Bob, for making this major improvement in our technology!

-Don