New extension : in memory session for multithreaded php (memsession)
| From: | Basant Kukreja | Date: | Tue, 08 Sep 2009 21:36:39 +0000 |
| Subject: | New extension : in memory session for multithreaded php (memsession) | ||
| Groups: | php.pecl.dev | ||
| Request: | Send a blank email to pecl-dev+get-6626@lists.php.net to get a copy of this message | ||
Hi,
I have written a in-memory session module for multi threaded php.
I would like to contribute this php extension to pecl. Purpose of
this extension is to provide a feature where sessions can be stored
in memory instead of files. There is a similar module named mod_mm for
multiprocess php which doesn't work for ZTS enabled php. Idea behind
developing this module is to have high performance session module for single
process multi-threaded php process.
I have been using this extension for a ecommerce workload performance for last
few months and it is pretty stable.
Performance notes :
Based on Studio 12 profiles on Solaris, performance of memsession is much
better than mod_files even when mod_files store session in RAM disk.
Implementation details :
To minimize the lock time, I have used the atomic APIs since zend API
doesn't provide the atomic API so I wrote atomic APIs for different platforms
in zend_atomic.h. I am using gcc's atomic operation where ever gcc is
available. It works fine on my Fedora 11.
Testing :
* Linux 32 bit and 64 bit (with Sun Web Server)
* Windows 2000 and Vista (with Apache)
* Solaris sparc 32 bit and 64 bit. (with Sun Web Server)
* php 5.2.x and php 5.3
I have uploaded this extension at bitbucket.org site.
$ hg clone https://basantk@bitbucket.org/basantk/memsession/
My blog for this extension :
http://blogs.sun.com/basant/entry/in_memory_session_for_multithreaded
I will maintain this php extension.
Regards,
Basant.
Some of the single process multi threaded php containers are :
* Apache on windows
* Sun Web Server on many platform (linux, Solaris, Windows)
* Worker Apache mpm on many platoform (with single process).