Loading ...
Sorry, an error occurred while loading the content.
 

Re: session data slowdown

Expand Messages
  • raystormphd
    Josh, Thank you for your insite into our problem. We have some more ammunition to play with now. ... blind ... the ... faster. This brings up another set of
    Message 1 of 4 , Jun 6, 2003
      Josh,

      Thank you for your insite into our problem. We have some more
      ammunition to play with now.

      > > 2) How might we speed this process up or are we heading down
      blind
      > > alley?
      > >
      >
      > Try SessionSerialize setting, similar to calling $Session->Lock in
      the
      > Script_OnStart. Try not accessing keys too often. You might try to
      > make a read only copy of data like this:
      >
      > use vars qw($SessionReadOnly);
      > sub Script_OnStart {
      > $SessionReadOnly = { %$Session };
      > }
      >
      > so if you are accessing same data multiple times, this might be
      faster.

      This brings up another set of questions I have had regarding Session
      data. I have tried finding the answer in posts/docs/etc. but haven't
      found a definitive answer.

      How does a series of reads or writes to a Session object hit the disk
      and the StateSerializer?

      For instance, let's say I did this:

      $Session->{'key1'}=data1
      $Session->{'key2'}=data2
      $Session->{'key3'}=data3

      or

      data1=$Session->{'key1'}
      data2=$Session->{'key2'}
      data3=$Session->{'key3'}

      Does each statement cause a freeze/thaw of the whole Session data
      structure to/from disk?

      In your code, you make one read only copy. Does this cause only one
      thaw? This is why your proposed trick would help, right?

      Cheers,

      Christian


      ---------------------------------------------------------------------
      To unsubscribe, e-mail: asp-unsubscribe@...
      For additional commands, e-mail: asp-help@...
    • Josh Chamas
      ... No, each one does its own freeze/thaw just for that key / value pair. ... The idea behind that is if you are just using it to look up lots of global values
      Message 2 of 4 , Jun 6, 2003
        raystormphd wrote:
        >
        > data1=$Session->{'key1'}
        > data2=$Session->{'key2'}
        > data3=$Session->{'key3'}
        >
        > Does each statement cause a freeze/thaw of the whole Session data
        > structure to/from disk?
        >

        No, each one does its own freeze/thaw just for that key / value pair.

        > In your code, you make one read only copy. Does this cause only one
        > thaw? This is why your proposed trick would help, right?
        >

        The idea behind that is if you are just using it to look up lots of
        global values & db data, which is not recommended anyway, you might
        just init an in memory hash to reference in your code instead of
        going to the $Session each time, so perhaps better to...

        $Session->Lock;
        $SessionCopy = { %$Session };
        $Session->UnLock;
        ...
        $SessionCopy->{KEY};
        $SessionCopy->{KEY};
        $SessionCopy->{KEY};

        than to:

        $Session->{KEY}
        $Session->{KEY}
        $Session->{KEY}

        but really better is to do this...

        my $value = $Session->{KEY};
        $value;
        $value;

        Like I said, a lot of it depends on how you are programming. But overall,
        you want to make as few calls getting as little data from $Session as possible.

        Regards,

        Josh

        ________________________________________________________________
        Josh Chamas, Founder phone:925-552-0128
        Chamas Enterprises Inc. http://www.chamas.com
        NodeWorks Link Checking http://www.nodeworks.com


        ---------------------------------------------------------------------
        To unsubscribe, e-mail: asp-unsubscribe@...
        For additional commands, e-mail: asp-help@...
      Your message has been successfully submitted and would be delivered to recipients shortly.