I _think_ that Squid has a protocol like this to allow caches to send messages to each other.
Squid speaks ICP and cache digests, both of which are used for requesting objects from other caches if the cache does not have the requested object. I suppose you could hack zope to speak ICP and pretend that it is a cache. Every time that the cache gets a request for an object it doesn't have, it would request it from the zope server. However, there is no way to explicitly expire an object out of a cache using ICP or cache digests. Additionally, they are both fairly resource intensive protocols. Each ICP request is a UDP message sent to the cache (zope), which responds positively or negatively (always positive in zope). The cache then sends an http request for the object. This means that zope has to look for the object (and traverse the acquisition heirarchy, etc) twice for every object. Cache Digests don't send so many requests, but each cache keeps a digest of EVERY object stored in EVERY cache (although in a highly compressed manner). It really isn't very appropriate You could set up zope as a parent cache to the real cache. This means that every cache miss would get forwarded to zope, without a preceding icp request. This would cause the cache to service all static requests, but there is still no way to tell a cache to 'throw an object away right now.' All you can do is tell it when to throw the object away the very first time that you serve it. HTTP is a client driven protocol. There is no standard way for a server to contact a client preemptively. See my previous email about Akamai for a method using checksums, that would cause an object to have a different URL every time you change the object. If you could teach zope to ignore the checksum segment of the URL, you could easily set up akamaization locally. A pretty good idea, if you ask me.
--Paul
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )