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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to