I left out the link to the thread.  Here it is. 

https://marc.info/?t=119062870700002&r=1&w=2



> On Sep 14, 2020, at 1:18 AM, Wesley Peng <wp...@pobox.com> wrote:
> 
> That's great. Thank you Adam.
> 
> Adam Prime wrote:
>> If the database doesn't change very often, and you don't mind only getting 
>> updates to your database when you restart apache, and you're using prefork 
>> mod_perl, then you could use a startup.pl to load your database before 
>> apache forks, and get a shared copy globally in all your apache children.
>> https://perl.apache.org/docs/1.0/guide/config.html#The_Startup_File
>> This thread from 13 years ago seems to have a clear-ish example of how to 
>> use startup.pl to do what i'm talking about.
>> If you need it to update more frequently than when you restart apache, you 
>> could potentially use a PerlChildInitHandler to load the data when apache 
>> creates children.  This will use more memory, as each child will have it's 
>> own copy, and can also result in situation where children can have different 
>> versions of the database loaded and be serving requests at the same time.  
>> If you want to go this way you might want to also add a MaxRequestsPerChild 
>> directive to your apache config to make sure that you're children die and 
>> get refreshed on the regular, if you don't already have one.
>> Adam
>>> On 9/13/2020 10:51 PM, Wesley Peng wrote:
>>> Hello
>>> 
>>> I am not so familiar with modperl.
>>> 
>>> For work requirement, I need to access IANA TLD database.
>>> 
>>> So I wrote this perl module:
>>> https://metacpan.org/pod/Net::IANA::TLD
>>> 
>>> But, for each new() in the module, the database file will be downloaded 
>>> from IANA's website.
>>> 
>>> I know this is pretty Inefficient.
>>> 
>>> My question is, can I cache the new'ed object by modperl?
>>> 
>>> If so, how to do?
>>> 
>>> Thanks.

Reply via email to