Author
|
Message
|
Stéphane Couzinier
|
Saturday 30 August 2008 2:02:28 am
Hi
We are thinking about moving ezsession to memcache. Somebody have already try it?
In more case our system crash because we have a lot of query on the ezsession table
and the table is lock all the time. Of course we can use a master/slave database but it won't resolve all the pb.
http://www.kouz-cooking.fr
|
Maxime Thomas
|
Sunday 31 August 2008 2:22:19 am
Hi,
We also got this kind of problem specially on high visibility websites.
Our solution was to put a cron in order to clean up the table ezsession. I'm not sure that memcache is a solution for this, but if you try it, just give us your feedback.
Maxime Thomas
maxime.thomas@wascou.org | www.wascou.org | http://twitter.com/wascou
Company Blog : http://www.wascou.org/eng/Company/Blog
Technical Blog : http://share.ez.no/blogs/maxime-thomas
|
André R.
|
Sunday 31 August 2008 7:18:29 am
Haven't tested it, but a first step to be able to have custom session handler (without hacking ezp): http://issues.ez.no/IssueView.php?Id=13443& The recommendations I've seen online is to use memcache for cache, but keep db as the storage. In other words get data from db if it's not yet in memcache, and have a flag that says if session has been written to. If it has, then write session data from cache to db at the end of the request ( with eZExecution::addCleanupHandler ).
eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom
|
Maxime Thomas
|
Sunday 31 August 2008 12:46:19 pm
hi andré,
I would like to know why the sessions are stored in db and why when there's a lot of simultaneous connections the db querries are so slow. Is memcache a real alternative to the actual mecanism ?
Maxime Thomas
maxime.thomas@wascou.org | www.wascou.org | http://twitter.com/wascou
Company Blog : http://www.wascou.org/eng/Company/Blog
Technical Blog : http://share.ez.no/blogs/maxime-thomas
|
Paul Borgermans
|
Sunday 31 August 2008 1:41:50 pm
>I would like to know why the sessions are stored in db and why when there's a lot of simultaneous >connections the db querries are so slow. >Is memcache a real alternative to the actual mechanism ? Not tried yet for sessions, but while the response time with memcached isn't that much faster than a DB under low load, it scales much better under high load. What is scheduled for development soon (right after 4.1 is released -- which won't take that long), is a refactoring of all cache mechanisms (and add it for places in the kernel which are eligible for caching). The basic idea is:
- introduce hierarchical caching in front of persistent storage
- you can turn this on/off depending on your needs - clustering is taken into account upfront As the design phase is not finished at this point, I'm reluctant to tell you more now, but for bleeding edge discussions, feel free to contact me directly. Once the details are known, it will be shared with all
Best regards Paul
eZ Publish, eZ Find, Solr expert consulting and training
http://twitter.com/paulborgermans
|
Gaetano Giunta
|
Sunday 31 August 2008 4:47:30 pm
"why the sessions are stored in db" ? two very simple reasons: - security: putting that data in the filesystem is very prone to information leaks - scalability/availability: when session info is in the db, you can have many webservers serving up pages for the same site with a simple load balancer (ie. round robin). If session data was on disk, you would need to have a load balancer with session stickiness (not so cheap), and then the failure of one webserver would mean a part of the users loose their sessions anyway. afaict, the best approach to scalability would be not using memcache, but rather putting all the session info in the cookie, and encrypt it. Yahoo does it (they use custom-bilt php extensions for doing the encription at the desired speed).
Principal Consultant International Business
Member of the Community Project Board
|
André R.
|
Monday 01 September 2008 12:46:14 am
afaict, the best approach to scalability would be not using memcache, but rather putting all the session info in the cookie, and encrypt it. Yahoo does it (they use custom-built php extensions for doing the encryption at the desired speed).
That could work to, but we would need to use one of the standard php extensions for encryption(imho). And we would need to change all sensitive data storage to use ezpreference or something similar, encryption or not, some of our clients have higher security requirements then the average web app(also imho).
eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom
|
Stéphane Couzinier
|
Monday 01 September 2008 9:16:26 am
Hi Andre/Paul ... do you know when(if) the patch from andre will be integrate in the kernel. Stephane
http://www.kouz-cooking.fr
|
Paul Borgermans
|
Monday 01 September 2008 9:53:13 am
@Stephane: we'll consider it as part of 4.1, in which many more performance patches and a refactoring of the autoload mechanisms will be done hth Paul
eZ Publish, eZ Find, Solr expert consulting and training
http://twitter.com/paulborgermans
|
Stéphane Couzinier
|
Monday 01 September 2008 2:04:30 pm
I would like to know why the sessions are stored in db and why when there's a lot of simultaneous connections the db querries are so slow.
From mysql
http://dev.mysql.com/doc/refman/5.0/en/query-cache.html
The query cache is extremely useful in an environment where you have tables that do not change very often and for which the server receives many identical queries. ->ezsession are update all the time and the query are never the same.
another article http://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/
http://www.kouz-cooking.fr
|
Nicolas Lescure
|
Thursday 06 May 2010 1:03:51 am
Hi all. Months later, is there any news on ez publish and memcache support ? I found those community extensions :
- http://projects.ez.no/lamemcache
- http://projects.ez.no/memcachedcluster
Do you have any feedback ? Is there another way to use memcache ? How to use memcache for ezpublish cache ? Thanks.
|
Bertrand Dunogier
|
Thursday 06 May 2010 1:42:18 am
It hasn't been implemented yet, but it is still part of the current plans. Regarding sessions, for instance, file / memcache DB sessions, with session-less anonymous users should be part of eZ Publish Fuji (4.4). Memcache for standard cache will be implemented through ezcCache, using hierarchical caching. This should also make APC based cache possible. However, this won't happen through little patches and attempts, but only when a rock solid cache API is ready, as we won't invest efforts in temporary features.
Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier
|