This doc <http://work.tinou.com/2011/04/memcached-for-dummies.html> says something about memcached I haven't read anywhere else:
Which brings me to another point, items/chunks are not actively reclaimed/expired. Memached does not have a background thread that explicitly expires items, reclaiming used chunks for new items. When a slab needs a chunk and there are no more pages, Memcache will look at the queue tail for items to evict. Memcache will make a best effort to evict expired items (items you've explicitly set to expire after some time). In scenario 1, item 2, an expired item, is evicted. However, in scenario 2, item 1, which has not yet expired, will be evicted, even though item 4 would seem like the better candidate. But since item 4 is not near the tail, Memcached stops looking and just expires item 1. So what is the memcache queue tail and why can't I find much info about it? Seems pretty important because what he is saying is that memcache could evict a non expired item, if it ran out of unassigned pages, had plenty of expire items for the slab classes, but because an expired was nearer the "tail" (whatever that means) it evicted that one instead. -- --- You received this message because you are subscribed to the Google Groups "memcached" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
