<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.14">
<TITLE>Re: [Seaside] Seaside cache</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>Back to original question for a second. I can't help but wonder how would you rely on front webserver caching your pages when they have information specific to the user anyway. Most likely somewhere you have login/logout button that depends on specific session state and users name included somewhere on the page, nevermind user-specific content like their favourite destinations list etc. I just can't imagine a hotel description page that is completely separated from all of that. And if it is, how about saving it to disk and letting front web server do its magic then?<BR>
<BR>
Cheers!<BR>
<BR>
-Boris<BR>
(Sent from a BlackBerry)<BR>
<BR>
----- Original Message -----<BR>
From: seaside-bounces@lists.squeakfoundation.org <seaside-bounces@lists.squeakfoundation.org><BR>
To: 'The Squeak Enterprise Aubergines Server - general discussion.' <seaside@lists.squeakfoundation.org><BR>
Sent: Wed Feb 28 07:41:02 2007<BR>
Subject: RE: [Seaside] Seaside cache<BR>
<BR>
> Hello Ramón,<BR>
> May be I did not express myself properly.<BR>
> By no means I talked about a static web site on my post. I<BR>
> talk about caching a dynamic web site which is enormously<BR>
> different. Most dynamic web sites can benefit enormously<BR>
> from this, including yours. I disagree about Seaside being<BR>
> designed for "higly dynamical" web sites only; where would<BR>
> you put the threshold that divides regular dynamic web sites<BR>
> from "highly dynamic" web sites. I think there is no use in<BR>
> making this categorization.<BR>
> Not to talk about hypothetical web sites, let's talk about<BR>
> your real neat travel reservation web site (which I think<BR>
> it's the coolest Seaside app I've seen so far with DabbleDB),<BR>
> Is it "highly dynamic"?.<BR>
> Don't you have for instance, a catalog of hotels? Imagine<BR>
> your web site becomes real popular on the next soccer world<BR>
> cup and you have 50 requests per second quering about a<BR>
> specific hotel on a specific town.<BR>
> I don't think hotel information changes really often,<BR>
> nevertheless, you still have to generate it dynamically for<BR>
> each of those 50 requests per second you are serving.<BR>
> Imagine you could dynamically generate the page for the hotel<BR>
> only when the underlying object model changed, and all the<BR>
> time in between the page is served from a cache, at lightning<BR>
> speed and in comparison without consuming almost any<BR>
> resources. Wouldn't that produce a MUCH MUCH better use of<BR>
> your servers? You could probably handle an order of magnitude<BR>
> or more traffic, and you would not lose anything of your<BR>
> dynamic functionality. Just like in all the other frameworks.<BR>
> So no, I'm not talking about static web sites, nor "less<BR>
> dynamic" web sites than what Seaside was designed for.<BR>
><BR>
> I also think that one of the biggest problems in my beloved<BR>
> Squeak community is looking the other way when someone points<BR>
> to a problem.<BR>
> I've seen so many pragmatic and clear problems dragged to a<BR>
> philosophical ground of discussion about "what is really<BR>
> good", where any opinion can be relativizied and then<BR>
> dismissed. For instance, when a new guy comes and says that<BR>
> Squeak user interface is outdated; poor dude, then come the<BR>
> philosophical threads about "what is real good". Who can dare<BR>
> to say that holds the truth? And the problem is annihilated.<BR>
> Se we should learn to acknowledge the problems, not to look<BR>
> the other way with articulated rethoric.<BR>
> I believe the problem I am pointing out about Seaside's<BR>
> inability to be proxifyed, is a MAJOR problem, it really<BR>
> sucks. It makes Seaside applications consume a lot more<BR>
> resources than they should also and be a lot harder to<BR>
> administrate on a high traffic web site.<BR>
> I HOPE I AM WRONG, since I really love Seaside.<BR>
<BR>
I'm not disagreeing that the ability to cache the site wouldn't be nice.<BR>
Certainly it would, but it's a very complicated issue because Seaside relies<BR>
so heavily on Sessions to enable all the magic that makes working in it so<BR>
great.<BR>
<BR>
Those pages have so many Ajax callbacks in them that assume there is state<BR>
sitting on the server waiting to answer them. Were a page somehow served<BR>
from a cache, the server side session would eventually expire, the state<BR>
would disappear, and the cached page would no longer work. The cache is<BR>
also user specific, so without some kind of major core rewrite of the one<BR>
thing that makes Seaside different, and a joy to work with, Sessions, I just<BR>
don't see how such a page can be cached.<BR>
<BR>
I do have caching in the site, but I do it at the db call level, rather than<BR>
at the page level. To make a cache work, you'd have to make the calls<BR>
stateless, encoding the necessary state information into the URL directly<BR>
and re-fetching the objects per request, and running stateless with data<BR>
encoded into the URL is everything Seaside tries to avoid.<BR>
<BR>
I could be totally wrong, maybe someone smarter than me will come along and<BR>
see an elegant way to do it without losing that Seaside feel, but I just<BR>
don't see how it'd work. Of course, I'd not complain at all if someone<BR>
figured out how to do it. ;) <BR>
<BR>
At the moment, my time costs far more than web servers do, so I'm happy to<BR>
throw hardware at the problem to make it scale and serve up everything<BR>
dynamically. As far as I'm concerned, it's a small price to pay for the joy<BR>
of programming in Seaside.<BR>
<BR>
I would of course, love to see a deeper discussion on the subject by those<BR>
more knowledgeable than me.<BR>
<BR>
Ramon Leon<BR>
<A HREF="http://onsmalltalk.com">http://onsmalltalk.com</A> <BR>
<BR>
_______________________________________________<BR>
Seaside mailing list<BR>
Seaside@lists.squeakfoundation.org<BR>
<A HREF="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</A><BR>
</FONT>
</P>
</BODY>
</HTML>