Welcome to Squishdot Websites Squishdot How-To
 post article
 Mailing Lists
 Bug Tracking


Squishdot Page Caching and an Article Thread Tree Patch
Squishdot Posted by Darrick Wong on Saturday December 30, 10:40PM, 2000
from the you-gotta-be-kidding <SMIRK> dept.
Two items: First, I've finally submitted a patch for my article-thread-tree page (see a demonstration) and related links to the Squishdot SourceForge forum; see here for details.


...I was wondering about Squishdot's performance in general. A few days ago I was benchmarking Zope with ab (a rudimentary benchmarking tool which comes with Apache) and saw that my 200MHz Pentium was only able to handle 0.79 requests / second if Zope spawns six HTTP handler threads. On this server, Zope sits behind Apache (a horrible ProxyPass/SiteRoot mess); benchmarking Zope through Apache yielded nearly identical results.

Only then did I notice that Squishdot pages were not being cached in Apache's proxy cache, due to the pages' lack of Last-Modified and Expires headers. Upon adding a rudimentary Last-Modified calculation heuristic to posting_html as well as an arbitrarily defined fifteen minute expiration time, Apache began caching postings and a retest improved speed to 80 requests / second!

So now I'm wondering--although there are a few pages which should NEVER have Last-Modified/Expires headers (previewPosting, searchResults and index_html (at least on thibsdot) come to mind), which pages should have those headers? Currently, some pages like posting_html, searchForm and tree.html ave Last-Modified and Expires headers attached so that Apache's proxy cache will take care of those requests.

I think that such a configuration correctly speeds up thibsdot by caching pages which don't change frequently yet never sends users stale pages (or worse, incorrect pages!), however I'm wondering if anybody else has developed any similar Squishdot modifications or feels like commenting on what I've done. Anybody?

A few details: Expires is arbitrarily set. Most pages expire after one hour. posting_html generated documents expire after two hours unless they have been modified in the past two weeks, in which case they expire after five minutes. In posting_html, Last-Modified is set to the most recent modification time of the article and all comments; in index_html, L-M is set to the most recent modification time of the n articles which appear on the page.

And then there's the issue of HTTP/1.1 friendliness...<grin> Oh, and another thing--on a PIII-800 with 128MB of RAM, thibsdot can process ~9 requests / sec without the cache and ~714 requests / sec with the cache. On a side note, thibsdot uses a table scheme much simpler than the default Slashdot emulation to lay out pages which results in faster rendering both on Zope's side and the browser's side.

<  |  >


Related Links
  • Articles on Squishdot
  • Also by Darrick Wong
  • Contact author
  • The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )

    Re: Squishdot Page Caching and an Article Thread Tree Patch
    by Darrick Wong on Thursday January 04, 08:21PM, 2001
    First, the patch fails horribly on 0.73. Secondly, disregard the item_count part of the patch--the page stalls yet again on the postingValues access. The only way to make the tree thing work (at this point) is to give it the "Manager" role on the Proxy tab. How does one do this programmatically?
    [ Reply to this ]
    The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )

    Powered by Zope  Squishdot Powered
      "Any system that depends on reliability is unreliable." -- Nogg's Postulate
    All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©1999 Butch Landingin, ©2000-2002 Chris Withers.