At 7:29 PM +0000 2/3/01, Philip Arnold - ASP wrote:
>  > Ahh, but there probably is a way to collaborate/share a document
>>  or query...
>>
>>  Chat rooms do it!
>>
>>  White Boards do it!
>>
>>  BBSs do it
>>
>>  I am not familiar with the clustered server implementation, but there
>>  must be some *Master* program in control and to act as arbiter.
>
>Theoretically, wouldn't that be done by soring data in a database, and thus
>negating the cache issue?
>

Maybe I misunderstand.

I assumed the caching of db queries as well as pages/templates.

I also assumed that there must be some *Master* program with 
control/knowledge of what is in the caches.

If several people are collaborating/competing on a query:

   the query would be cached

   when any of the affected db records (in a particular query) are changed by a
   client (or the system),  the cached query would be refreshed (and the
   *Master* program would be notified.

   requests by any client would be served from the cached copy (if one exists)
   or a new query would be issued to the db.

For example:

   n clients are currently looking at the last xxx product for sale at a
   fantastic price

   Client L(ucky) adds it to his shopping cart... His agent (event-initiated)
   re-retrieves the current record from the server-cache... it is unchanged...
   so, proceed with the transaction

   Client U(nlucky) is a split-second too late... he hits the "add to cart"
   button. his agent (event-initiated) re-retrieves the current record from the
   server-cache... Gosh, you just missed it

   Clients A,B,C procrastinate, but their agent (time initiated) re-retrieves
   the current record from the server-cache... Alas, too late!

I think that this is the closest you can get to push technology with 
the current web architecture.

Server-side caching (whether clustered or un-clustered) should 
improve performance.

In the simple example, all the clients had their browser pages 
updated efficiently.

Only one, Client L(ucky), had any effect on the db (query, lock, 
update, unlock, rollback, etc.)

In reality, the only thing that a client agent need do is send the 
query id and its timestamp.

The server *Master* cache program would check the query ID and 
timestamp against its cached version & send back a refresh of same to 
the client (only if necessary)

Similar logic would apply if several people were collaborating on the 
same document.

This is similar, in some ways,to how IBM's maimframe [sic] CICS 
(years ago) interfaced with IBM's DL/I database (As I recall, caches 
were called buffer-pools, in those days).

Interestingly enough, Apple's much-maligned "AppleTalk" protocol does 
a prettu good job of refreshing the desktops of all the computers on 
a LAN... (when using ethernet)



Dick



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

Archives: http://www.mail-archive.com/cf-talk@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to