durusmail: quixote-users: Caching?
Caching?
2003-08-27
2003-08-27
2003-08-28
2003-08-28
2003-08-29
Re: Caching?
2003-08-28
Caching?
Jason Sibre
2003-08-27
> 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


reply