For some years (many more than really necessary) I have been workin on and off on a pet project of mine, mdcached - a cache server similar to memcached. I've figured it's time to finish it and bring it to usable state now, so (I hope) I'll be writing up the progress here. For now, I have some really nice benchmark results which show off its strengths compared to memcached.
mdcached (the name is probably temporary) is a key-value memory cache server but with a more rich metadata model - more on that later. For now, here's some performance numbers I'm proud of:
Over FreeBSD localhost, 2x Xeon 5430:
* mdcached: 93000 TPS
* memcached: 71000 TPS
Over Linux localhost, 2x Xeon 5430:
* mdcached: 282000 TPS
* memcached: 181000 TPS
Over FreeBSD Unix sockets, 2x Xeon 5430:
* mdcached: 420000 TPS
Over Linux Unix sockets, 2x Xeon 5430:
* mdcached: 360000 TPS
TPS is transactions per second, with a 90% read / 10% write mixture. I have some detailed documentation about how this is achieved (it's 2x - 3x faster than memcached) but that will also have to wait until I have the time to present it nicely.
These benchmarks are done on a relatively old server, a 2.6 GHz Xeon 5430. On a much newer server with much faster memory, a Xeon 5630, the top result - over Unix sockets - is 920,000 TPS! Yes, that's what's called the bleeding edge.
Note how the TCP overhead is really large compared to Unix domain sockets (local IPC), especially on FreeBSD with it's single-threaded loopback NIC processing. Frome some discussions on the topic I've heard that the situation will improve for FreeBSD 9 (benchmarks were on FreeBSD 8-STABLE and Linux 2.6.35 Ubuntu server).
(btw the project is not yet generally usable except for the highly adventureus; only the C client is available)