Thanks Jason and Graham. I'll look into Squid. Regards, Dan ----- Original Message ----- From: "Jason Sibre"To: Sent: Thursday, August 28, 2003 7:05 PM Subject: RE: [Quixote-users] Caching? > Well, without seeing a code sample, it's hard to see exactly what you have > in mind, but yes, I'd definitely plan on using a dictionary as the > underlying storage scheme. If you're concerned about performance (and I'm > guessing you are, since we're talking about caching) you might want to > consider maintaining a list of tuples of (expiration_time, cache_key) that > you can move through in sequence (until reaching the first item you don't > want to expire yet) and expire cache entries that way instead of by looping > through ALL the items in the cache looking for expiration candidates. On > the other hand, maybe you don't imagine you cache growing large enough for > that to be a concern. > > On the other hand, I think Graham's point (about squid) is a very good > one... That's what caching proxies are designed for, and if you do things > that way, you'll be implementing a cache technique that's proven, and more > universal (and truly takes the load off your server). > > Jason > > > -----Original Message----- > > From: quixote-users-bounces+jsibre=chironsys.com@mems-exchange.org > > [mailto:quixote-users-bounces+jsibre=chironsys.com@mems-exchange.org]On > > Behalf Of Dan Gottlieb > > Sent: Wednesday, August 27, 2003 8:30 PM > > To: quixote-users@mems-exchange.org > > Subject: Re: [Quixote-users] Caching? > > > > > > Jason, > > > > Thanks for your thoughts. I was hoping someone with more Python > > experience > > had built something I could work off of, but if my work load > > eases up in the > > next few days I'll probably take a crack at putting together a caching > > mechanism myself. My inclination would be to use a dictionary with global > > scope for the actual cache, matching cache keys with a tupples of > > expiration > > times and html strings and then periodically loop through and > > remove expired > > items. Is this a good way to structure things? I'd appreciate any advice > > that you have. > > > > - Dan > > > > > > ----- Original Message ----- > > From: "Jason Sibre" > > To: > > Sent: Tuesday, August 26, 2003 9:08 PM > > Subject: RE: [Quixote-users] Caching? > > > > > > > > Is there an equivalent caching module for Quixote? > > > > > > > > Also, much of what the new app will be doing is finding URLs in a > > > > database > > > > based on the querystring and then sending redirects to the client. > > > > Obviously, I'd like to cache the key / URL pairs after they > > are used the > > > > first time. Is there an easy way to do this with Quixote? > > > > > > > > > Dan, > > > > > > While there isn't (to my knowledge) a caching module per se in > > Quixote, it > > > would be very easy to implement, and there are a number of ways it could > > be > > > done. The first that comes to mind would be sub-classing the Publisher > > > class to implement a CachingPublisher, which, upon seeing a familiar URL > > > could return the cached version of the data without even going > > through the > > > URL traversal stage. Another would be to subclass Publisher to make it > > call > > > a caching proxy when it's ready to publish an > > object/namespace/function/etc, > > > and let the proxy have a crack at serving a cached version, or fetching > > the > > > real thing. I'm sure there are lots of ways to do this, > > (probably two or > > > three for each person using Quixote!) but I think most or all of high > > > performance ones would involve subclassing the Publisher. I don't know > > how > > > familiar you are with the source, (but I'm assuming you aren't very > > familiar > > > with it) but this is really an easy proposition. > > > > > > On your second point, if you mean something like > > > "http://server.org/goto?url=http://somedocserver/doc.txt" gets looked up > > to > > > be routed to some other url, this would be easy to do, results could be > > > cacheable, and you wouldn't have to modify the Quixote framework in any > > way. > > > > > > Of course, you'd have to implement the caching mechanism yourself, (it > > > wouldn't magically happen as I suspect it does in .NET), and > > you'd have to > > > deal with issues like cache expiry, cache size limitations, and the like > > > when you come up with your implementation. Also, caching would > > be useless > > > (performance wise) if the Quixote process isn't some form of > > long running > > > process (FastCGI, SCGI, running standalone as Medusa, or > > Twisted, etc...) > > > but I'm guessing that's obvious... Just wanted to throw it out there in > > > case it isn't. I don't know your environment, so I don't know > > how tricky > > > that might be to pull off. (Having worked in MS shops before, I know > > > sometimes it's impossible to get admins to let you set up 'crazy things' > > > (anything not from Redmond) on 'their' servers!) > > > > > > Hope that helps, and if not, stick around, I'm sure some other > > folks with > > > have interesting comments on this. > > > > > > Jason Sibre > > > > > > > > > _______________________________________________ > > > Quixote-users mailing list > > > Quixote-users@mems-exchange.org > > > http://mail.mems-exchange.org/mailman/listinfo/quixote-users > > > > > > > > > > > > > > _______________________________________________ > > Quixote-users mailing list > > Quixote-users@mems-exchange.org > > http://mail.mems-exchange.org/mailman/listinfo/quixote-users > > > > > _______________________________________________ > Quixote-users mailing list > Quixote-users@mems-exchange.org > http://mail.mems-exchange.org/mailman/listinfo/quixote-users > >