Hi folks.
After a long time, I finally managed to write this post on my experiment on MemcacheDB.
MemcacheDB actually uses BerkeleyDB on the backend, which is a high-performance database that stores key/value pairs as byte arrays, and also supports multiple data items for a single key.
MemcacheDB uses Memcached API, so you can use any client that you use to connect to Memcached.
I implemented an adapter for MemcacheDB on DB Testing Suite using one of the clients served on Memcached Wiki. You can find several clients there for the language you are using.
Here are the results:
MemcacheDB connection initialized.
KEY-VALUE CORRECTNESS TEST
Correctness OK!
MemcacheDB connection shut down.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
MemcacheDB connection initialized.
KEY-VALUE WRITE PERFORMANCE TEST (10 threads)
Total write time: 2431 milliseconds (100000 requests)
Write performance: 41135 writes per sec
KEY-VALUE READ PERFORMANCE TEST (10 threads)
Total read time: 1001 milliseconds (100000 requests)
Read performance: 99900 reads per sec
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
MemcacheDB connection shut down.
Even using my 2 core 1 year old macbook, I was impressed with the performance.
For sure, client implementation affects the performance. If I will have time, I will try different clients and post the comparative results here.
