Return-Path: Delivered-To: apmail-perl-modperl-archive@www.apache.org Received: (qmail 51315 invoked from network); 8 Mar 2006 05:17:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 8 Mar 2006 05:17:02 -0000 Received: (qmail 10324 invoked by uid 500); 8 Mar 2006 05:16:56 -0000 Delivered-To: apmail-perl-modperl-archive@perl.apache.org Received: (qmail 10303 invoked by uid 500); 8 Mar 2006 05:16:56 -0000 Mailing-List: contact modperl-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list modperl@perl.apache.org Received: (qmail 10292 invoked by uid 99); 8 Mar 2006 05:16:55 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Mar 2006 21:16:55 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of willfould@gmail.com designates 64.233.184.196 as permitted sender) Received: from [64.233.184.196] (HELO wproxy.gmail.com) (64.233.184.196) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Mar 2006 21:16:55 -0800 Received: by wproxy.gmail.com with SMTP id 67so334154wri for ; Tue, 07 Mar 2006 21:16:34 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=MRE+yoFRt1OVyGRvRRH5ik/bpBBIcoZ6oj2krZujHcAEq3r37ayyu3kC0gjtJq9E+2SyPHWTvdIOFte26dohJlhjw+eHO1u7ivbwt8fzYnim+j2zG/NMBr6aUR7w2E1LOAUXqcehWVkc14wCggu+1k5aUZtfuLBXyIYzLALPMH8= Received: by 10.35.121.2 with SMTP id y2mr410057pym; Tue, 07 Mar 2006 21:16:34 -0800 (PST) Received: by 10.35.71.15 with HTTP; Tue, 7 Mar 2006 21:16:34 -0800 (PST) Message-ID: <4b3372230603072116y67b07720j90a8041d07eefa55@mail.gmail.com> Date: Tue, 7 Mar 2006 21:16:34 -0800 From: "Will Fould" To: modperl@perl.apache.org Subject: Re: changing global data strategy In-Reply-To: <4b3372230603072105l30e34a28v6861ddd209597f0c@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_10713_6299390.1141794994384" References: <4b3372230603072105l30e34a28v6861ddd209597f0c@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_Part_10713_6299390.1141794994384 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline at this point, the application is on a single machine, but I'm being tasked with moving our database onto another machine and implement load balancing b/w 2 webservers. william On 3/7/06, Will Fould wrote: > > an old issue: > "a dream solution would be if all child processes could *update* a > large global structure." > > we have a tool that loads a huge store of data (25-50Mb+) from a > database into many perl hashes at start up: each session needs access to = all > these data but it would be prohibitive to use mysql or another databases = for > multiple, large lookups (and builds), at each session: there are quite a > few structures, each are very big. > > if the data never changed, it would be trivial; load/build just at > start-up. > > but since the data changes often, we use a semaphore strategy to determin= e > when childern should reload/rebuild the structures (after updates have be= en > made). > > this is painful. there has got to be a better way of doing this - I've > seen posts on memcache and other, more exotic animals. > > can someone point me in the right direction: a reference/read, or a stabl= e > modules that exist for our situation? > > > thanks in advance, > william > ------=_Part_10713_6299390.1141794994384 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
at this point, the application is on a single machine, but I= 'm being tasked with moving our database onto another machine and= implement load balancing b/w 2 webservers. 
 
william

 
On 3/7/06, W= ill Fould <willfould@gmail.co= m> wrote:
an old issue:
   "a dream solution would be if all child process= es could *update* a large global structure."
 
we have a tool that loads a huge store of data (25-50Mb+) from a = database into many perl hashes at start up: each session needs access&= nbsp;to all these data but it would be prohibitive to use my= sql or another databases for multiple, large lookups (and builds), at = each session:  there are quite a few structures, each are very big.=20
 
if the data never changed, it would be trivial; load/bu= ild just at start-up. 
 
but since the data changes often, we use a semaphore strategy&nbs= p;to determine when childern should reload/rebuild the structures (aft= er updates have been made).
 
this is painful. there has got to be a better way of doing this - = ;I've seen posts on memcache and other, more exotic animals.
 
can someone point me in the right direction: a reference/read, or a&nb= sp;stable modules that exist for our situation?
 
 
thanks in advance,
william

------=_Part_10713_6299390.1141794994384--