On 25/03/11 14:41, Daniel Friesen wrote:
For awhile I was thinking 'What if I give
memcached on a machine of it's
own a really large size and let it swap?'.
One problem you would likely run into is that the metadata is not
localised at all, so you would end up loading a lot of pages to do a
simple thing like serving a cache miss.
Another is that apps that aren't designed to be swapped out tend to do
silly things like iterate through linked lists that snake their way
all over the whole address space.
What others did you look at?
From a quick look I see redis, Ehcache, JCS, and OSCache.
Redis is in-memory only. Membase, MemcacheDB, MySQL, Riak and HBase
lacked basic caching features, like a limit on storage space and an
eviction feature which removes items when the storage limit is exceeded.
I didn't look at JCS. It seems suspiciously similar to Ehcache,
sharing its major pros and cons. The disk size limit is specified as
an object count instead of in bytes, and you only get persistence when
the cache is properly shut down. We really want a large proportion of
the objects to be preserved even if the power goes off.
I didn't look at OSCache. It seems to be aimed at small local
installations. It lacks a network-accessible get/set interface. The
disk cache size can't be configured properly:
"cache.unlimited.disk
"Indicates whether the disk cache should be treated as unlimited or
not. The default value is false. In this case, the disk cache capacity
will be equal to the memory cache capacity set by cache.capacity."
-- Tim Starling