Hi, all, I am glad to announce that MemcacheDB 1.2.0 beta is release!
This version has supported the new 'append/prepend' command that is defined in memcache protocol. Also some replication code improved, and many bug fixed. A new benchmark suit and top like monitor is shipped. Have a try with 'tools/mcben.py' to get your own performance benchmark in your environment. In my environment, the performance of MemcacheDB is very close to Memcached, but benefits from a persistent storage. Please download from: http://code.google.com/p/memcachedb/downloads/list *Notice*: If you are using replication of MemcacheDB 1.1.0, please upgrade to this version. *ChangLog* since last release: 2008-10-16 Version 1.2.0-beta released 2008-10-14 Steve Chu <[EMAIL PROTECTED]> * a new unittest suit 'mdbtest.py' is added * a new benchmark suit 'mcben.py' is added, now you can get the benchmark in your environment and find out how fast MemcacheDB can run. 2008-10-08 Steve Chu <[EMAIL PROTECTED]> * lots of statistics code clean up; stats command adjusted for better rendering; now more replication statistics info is provided. * more compact and verbose message for logging * lots of replication code clean up for more reliable electing, a new option "-n" is added that allows user to customize the votes of electing. * "memcache.py" is nearly patched for recent changes on private commands. 2008-09-04 Steve Chu <[EMAIL PROTECTED]> * New option '-e' to set percent of the pages in the cache that should be clean, used for memp_trickle call(only available when '-T' is presented). 2008-09-03 Steve Chu <[EMAIL PROTECTED]> * Replace the database type setting option '-T' with '-B' * Now '-T' has new meaning that it fires a separate thread to do memp_trickle every xx seconds. This feature makes the memory pool more effective by reducing too much frequent pages swapping. 2008-09-01 Steve Chu <[EMAIL PROTECTED]> * Now 'append' and 'prepend' commands are supported. * Merge bugfix code from Memecached community. * lots of refactors for better implementation and a bit code tuning. Use 'tools/mcben.py -h' to see how to use the benchmark suit, and use 'tools/mdbtop.py -h' to find out how to use the monitor. Below are benchmark result I got from a dell 2950 4G/2core box: MemcacheDB: ---------------------- Server name: 127.0.0.1:21201 Command: SET Thread number: 4 Requests per thread: 1000000 Value Length: 100 bytes Avg. time cost per thread: 339.276669 seconds Throughout: 1335 kbytes/sec Requests per second: 11789 req/sec Time cost per request: 0.084819 ms Total requests: 4000000 Total errors: 0 Server name: 127.0.0.1:21201 Command: GET Thread number: 4 Requests per thread: 1000000 Value Length: 100 bytes Avg. time cost per thread: 348.257951 seconds Throughout: 1301 kbytes/sec Requests per second: 11485 req/sec Time cost per request: 0.087064 ms Total requests: 4000000 Total errors: 0 Memcached: ------------------- Server name: 127.0.0.1:11211 Command: SET Thread number: 4 Requests per thread: 1000000 Value Length: 100 bytes Avg. time cost per thread: 324.060816 seconds Throughout: 1398 kbytes/sec Requests per second: 12343 req/sec Time cost per request: 0.081015 ms Total requests: 4000000 Total errors: 0 Server name: 127.0.0.1:11211 Command: GET Thread number: 4 Requests per thread: 1000000 Value Length: 100 bytes Avg. time cost per thread: 351.367676 seconds Throughout: 1289 kbytes/sec Requests per second: 11384 req/sec Time cost per request: 0.087842 ms Total requests: 4000000 Total errors: 0 You will find this performance result is worse than what the official site said, yes, I guess it is caused by 'memcache.py' and the thread model of python. Because that benchmark was using the libmemcached and multiple process model and also on a different box. Any bugs and feedbacks are welcome and appreciated:) -- Steve Chu http://stvchu.org