[Tickets #13231] Re: Hashtable session handler doesn't unlock on session close

noreply at bugs.horde.org noreply at bugs.horde.org
Thu May 29 19:04:02 UTC 2014


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/13231
------------------------------------------------------------------------------
  Ticket             | 13231
  Updated By         | arjen+horde at de-korte.org
  Summary            | Hashtable session handler doesn't unlock on session
                     | close
  Queue              | Horde Framework Packages
  Version            | Git master
  Type               | Bug
  State              | Feedback
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


arjen+horde at de-korte.org (2014-05-29 19:04) wrote:

> This doesn't help.  As I noted above, 10 requests/second is already  
> fairly heavy usage.  Your solution bumps that up to 20  
> requests/second (you have to assume worst-case scenario).

No, you don't. The requests will follow a Poisson distribution,  
assuming mt_rand is not biased towards certain values. So the with  
increasing number of requests, the average will quickly stabilise  
towards 10 requests/second.

> And there is a general (albeit not mandatory) requirement that  
> requests SHOULD be handled in a FIFO basis. If Kronolith for some  
> reason sends 15 listEvents requests in a row, it is a reasonable  
> assumption that the 15th is the least important request.  It should  
> not, by virtue of random luck, suddenly jump to 2nd in the queue.

There is no way (whatever method you use) if these requests are  
handled by separate processes and it is required to get a lock on a  
shared resource. If that is needed, a new request can only be  
initiated when the previous one is know to be active (not waiting to  
get a lock on a resource). Since this is not done, requests can (and  
will be) served in random order. As the cachegrind output I sent you  
also indicates, where the third request that was started is served last.





More information about the bugs mailing list