On 17 March 2011 16:45, Stuart Dallas <stu...@3ft9.com> wrote: > On Thursday, 17 March 2011 at 16:16, Richard Quadling wrote: > On 17 March 2011 16:04, Stuart Dallas <stu...@3ft9.com> wrote: >> > On Thursday, 17 March 2011 at 16:02, Richard Quadling wrote: >> > On 17 March 2011 15:30, Stuart Dallas <stu...@3ft9.com> wrote: >> > > > On Thursday, 17 March 2011 at 15:29, Stuart Dallas wrote: >> > > > On Thursday, 17 March 2011 at 15:22, Richard Quadling wrote: >> > > > > On 17 March 2011 15:18, Stuart Dallas <stu...@3ft9.com> wrote: >> > > > > > > On Thursday, 17 March 2011 at 15:15, Nathan Nobbe wrote: >> > > > > > > On Wed, Mar 16, 2011 at 10:06 PM, Alessandro Ferrucci < >> > > > > > > > alessandroferru...@gmail.com> wrote: >> > > > > > > > >> > > > > > > > > Hello, >> > > > > > > > > I'm curious, what are the most popular methods to perform >> > > > > > > > > session >> > > > > > > > > replication across http servers in PHP? >> > > > > > > > > I've read about repcache(memcached module) and Mysql. >> > > > > > > > > anything else? is there some mod_php_session_replication >> > > > > > > > > httpd module? >> > > > > > > > > thanks >> > > > > > > > >> > > > > > > > I recently posted a question to the memcached mailing list >> > > > > > > > about this. I >> > > > > > > > would suggest looking at membase if you're interested in that >> > > > > > > > route. >> > > > > > > > >> > > > > > > > Pragmatically speaking though, I'd say go for database backed >> > > > > > > > sessions until >> > > > > > > > they actually become a performance bottleneck. >> > > > > > > > >> > > > > > > > Here's the post from google groups if you're interested: >> > > > > > > > >> > > > > > > > http://groups.google.com/group/memcached/browse_thread/thread/7ed750db888e6b1b?pli=1 >> > > > > > > >> > > > > > > This may also be of interest: >> > > > > > > http://stut.net/2008/07/26/sessionless-sessions-2/ >> > > > > > > -Stuart >> > > > > > > >> > > > > > > -- >> > > > > > > Stuart Dallas >> > > > > > > 3ft9 Ltd >> > > > > > > http://3ft9.com/ >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > -- >> > > > > > > PHP General Mailing List (http://www.php.net/) >> > > > > > > To unsubscribe, visit: http://www.php.net/unsub.php >> > > > > > >> > > > > > Stuart, that's just cruel. >> > > > > > >> > > > > > Stut.net >> > > > > > Ramblings of a random software engineer >> > > > > > Error 404 - Not Found >> > > > > > Apologies, but we were unable to find what you were looking for. >> > > > > > Perhaps searching will help. >> > > > > > >> > > > > > Very much a Friday comment though. Along the lines of LMGTFY. >> > > > >> > > > Works fine from here, but I should probably add a search box to the >> > > > site given that 404 message :) >> > > > >> > > > -Stuart >> > > > >> > > > -- >> > > > Stuart Dallas >> > > > 3ft9 Ltd >> > > > http://3ft9.com/ >> > > >> > > GMail added the -Stuart on the next line onto the URL. >> > >> > Indeed. I've put in a permanent redirect for that specific URL. >> > >> > >> > -Stuart >> > >> > -- >> > Stuart Dallas >> > 3ft9 Ltd >> > http://3ft9.com/ >> >> I think ASP does something similar to what you've suggested. >> >> I don't know if you've considered this, but if you use >> session_set_save_handler() to wrap up your code, you the rest of the >> code can still use $_SESSION without having to do anything extra. >> >> Which is the main reason for session_set_save_handler(). >> >> Though you would have to make sure your code didn't output in dribs >> and drabs, essentially the last line in the code is the output as the >> cookie writing would have to be done before any output. >> >> Or use output buffering ... > > ASP.net, which I think is what you mean, keeps the session in a hidden form > field. In order to maintain that it has to make every single page one giant > form, which is evil in many ways. > > I did consider implementing it using the existing PHP session stuff. The > problem is that it won't prevent people from stuffing large amounts of data > into the session, which then ends up in cookies. This is one of the reasons I > really don't like the way ASP.net does it - the full state gets transferred > with every single request. > > The basic theory being my implementation is two-fold. Firstly it removes the > need for server-side storage for data specific to a given session. Secondly > it stores only the minimum required to limit DB accesses to when it's > absolutely necessary. > > All too often I see sessions being used as a cache. Developers stuff data > retrieved from the database into the session so it's easily accessible for > the next few page requests. In reality there is minimum gain here when you > start scaling across servers because you're still hitting the DB (or some > other data store). Sure, it may be a cheaper query, but if that's the case > you need to look at the original query and see how you can optimise it. > > The sites I maintain generally store PHP objects in memcache with long expiry > times. Those cached objects are updated when they change, and the site only > reads from the DB when absolutely necessary. With this arrangement the > read-only general public facing sites can continue to run even if the DB goes > down. Given that architecture it makes sense to maintain user sessions in a > way that also does not involve the DB, otherwise that whole caching mechanism > is pointless. > > As far as organising the page flow goes, my sites generally follow a > three-step process when building a response... > > 1) Gather data. > > 2) Output the header and use register_shutdown_function to queue the footer. > > 3) Output the page content. > > Given this arrangement there should never be a reason to set any cookies > beyond step 1 so it's never a problem. > > One final point on output buffering... when you deal with very busy sites you > quickly see how expensive output buffering is. I do use it, but sparingly > since every little bit of memory adds up. > > > -Stuart > > -- > Stuart Dallas > 3ft9 Ltd > http://3ft9.com/ > > > > >
Thanks for the additional info. Excellent readin. -- Richard Quadling Twitter : EE : Zend @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php