Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 97982 invoked from network); 13 Jul 2005 18:59:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 13 Jul 2005 18:59:34 -0000 Received: (qmail 44610 invoked by uid 500); 13 Jul 2005 18:59:29 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 44569 invoked by uid 500); 13 Jul 2005 18:59:29 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 44555 invoked by uid 99); 13 Jul 2005 18:59:29 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Jul 2005 11:59:29 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [64.49.223.165] (HELO chandler.sharp.fm) (64.49.223.165) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Jul 2005 11:59:26 -0700 Received: from localhost (localhost [127.0.0.1]) by chandler.sharp.fm (Postfix) with ESMTP id 98727930FF9 for ; Wed, 13 Jul 2005 13:59:26 -0500 (CDT) Received: from chandler.sharp.fm ([127.0.0.1]) by localhost (chandler.sharp.fm [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18187-04 for ; Wed, 13 Jul 2005 13:59:25 -0500 (CDT) Received: from [192.168.200.34] (firstmarine.cust-gw.jnb6.alter.net [196.31.24.162]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by chandler.sharp.fm (Postfix) with ESMTP id 2E8C6930F95 for ; Wed, 13 Jul 2005 13:59:22 -0500 (CDT) Message-ID: <42D56483.1040406@sharp.fm> Date: Wed, 13 Jul 2005 20:59:15 +0200 From: Graham Leggett User-Agent: Mozilla Thunderbird 1.0+ (Macintosh/20050516) MIME-Version: 1.0 To: dev@httpd.apache.org Subject: Re: mod-cache-requestor plan References: <54311.196.8.104.37.1121076925.squirrel@www.sharp.fm> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: amavisd-new at wired.co.za X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Parin Shah wrote: > - In this case, what would be the criteria to determine which pages > should be refreshed and which should be left out. intitially I thought > that all the pages - those are about to expire and have been requested - > should be refreshed. but, if we consider keeping non-popular but > expensive pages in the cache, in that case houw would te mod-c-requester > would make the decision? The current backend cache modules use the CacheEnable directive to say "this backend is valid for this URL space". In theory mod_cache_requester could use this directive to hook itself in. The cache is supposed to allow multiple backend modules the option to handle the request (for example, the mem cache might say "nope, too big for me" while the disk cache says "yep, can cache that file, let me handle it"), so requester would just add itself to the list - it would probably need to be first in the list. If mod_cache_requester was in there, it could add that URL space to the list of URL spaces to be freshened on a periodic basis. You may need an extra cache hook that says "give me all cached URLs under URL space XXX", not sure if such a thing exists at the moment. Keep in mind the cache can store variants of the same URL (for example, the same page in different languages, or one compressed and another not compressed), which will have to be kept in mind while refreshing. > - considering that mod-cache-requester would be using some mod-cache's > hooks to query the elements in the cache, would mod-cache-requester be > still highly dependent on the platform (process vs threads)? It would be dependant on whether threads or processes are present (or maybe both) rather than platform, which is a far simpler case to code for. Something along the lines of "if (threads or both), create refresher thread, else if process only, create refresh process keeping in mind that refreshing mem cache won't work". Regards, Graham --