perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Germic <ger...@pcv.cz>
Subject mdat/postgres - major perfomance problem?
Date Mon, 12 Jul 2004 08:53:18 GMT
Hi,

  I've noticed %mdat in Embperl 2 is not per module/page as in Embperl 
1. Now it is per application, right? (Docs still claim otherwise in 
places...)

  I tried to play with it and it seems that Postgres as a store does 
SELECT ... FOR UPDATE, which is of course correct from data concistency 
point of view, but it makes other apache childs wait... To me it looks 
like only one Apache child is working and other are just waiting for 
session commit. Simple example:

base.html
----------
[- Execute '*' -]
[+ do { use Data::Dumper; Dumper(\%mdat) } +]

page1
------
[- $mdat{first} = 'gerald'; sleep 15 -]

page 2
-------
[- $mdat{last} = 'gerald'; sleep 1 -]

When I load page 1 and then immediately page 2, it takes 15 seconds and 
then they both load at the same time eg. page2 was blocked by page 1.

Per application data is hugely useful, but if all of above is true, 
%mdat is major performance bottleneck. What do you think?

- Robert


PS. When I try to empty %mdat, maybe in base.html like
[-
    delete $mdat{$_} foreach keys %mdat;
    %mdat = ();
-]
it dumps empty session as expected. Now I comment out those delete lines 
and reload and %mdat has the same content as before delete. What's wrong?





---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Mime
View raw message