Perrin,

Perrin Harkins wrote:

<snip>

Could I not just set a global variable in my authentication handler that the authorization handler can then access?



Yes, but it will persist between requests. If you put it in pnotes, it will get cleared automatically, even if your code dies while processing a request.



I'll have to think about this - not sure if that is an issue or not.

Yes, and because people often get into trouble with running out of
shared memory segments or clearing them out when the program dies.



Running out of segments is my primary concern as well.

Cache::FastMmap looks promising, but I need something where I have more control over when the cache entries are expired.



What sort of control are you looking for? There are other things I would recommend, like BerkeleyDB (not DB_File!), or even a simple MySQL setup, which is faster than most of the other caching modules on CPAN.



Well, I probably used the work cache to describe what I was looking for, when in fact I am probably looking more for a persistence framework that I can manage the addition and expiry of entries.

For example, what I need to do (at a high level) is be able to add entries to the cache with a minimum TTL, and be able to have the ability to reset the TTL on individual entries as need be.

Now that you have introduced me to the Cache::* modules, I see a huge potential for other pieces of my app, but I don't think it will do for my current problem :(

Personally, I am not crazy about using shared memory as well, but in my C module I used an array of berkeley DB's, and while it worked and performace was fine for my application - I fear that it wouldn't scale well.



In what way? BerkeleyDB can handle tremendous amounts of data, and the locking is more efficient than what IPC::Shareable uses.



Perhaps - I just think that there has to be a more efficient way of sharing data between processes than writing it to disk. The module I wrote was for a busy community type site where all access was authenticated, so I spread the data across multiple db's to reduce lock contention. To really be honest, I have never really used shared memory much (in any programming language) so I don't really understand the main issues - but I thought locking (in the perl module) was done with semaphores...

Thanks,
Tim


-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to