I found dreamcache and it looks really promising as a memcached replacement, especially because of its extremely good write rates.
I'm just digging deeper into memcached's memory layout, in more detail when items could be dropped from the cache. For memcached, the least recently used item is removed from a slab if a new item shall go into this slab and if this is full.
Is this also the case for dreamcache, or is an item available as long as there's enough memory and the item is not yet expired?
Thanx in advance,
cheers,
Martin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It's nice to hear that someone dug out dreamcache and, which is
better, finds it promising ;)
There isn't anything like slabs in dreamcache. Items are deleted from
the cache only when they expire OR there is no space left for new
ones. We keep global LRU list and erase items according to that list
(one LRU list for every space but you can always use one space).
For memory management we chose to use tcmalloc - Google allocator -
which does really great job. tcmalloc turned out to be the best choice
from every one we tested (we never made our own memory allocator - we
tested existing solutions).
You're saying that dreamcache has good write rates. Is it proven by
tests you made?
Best regards,
Jacek Psiuk
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> There isn't anything like slabs in dreamcache. Items are deleted from
> the cache only when they expire OR there is no space left for new
> ones.
Great! :)
> We keep global LRU list and erase items according to that list
> (one LRU list for every space but you can always use one space).
What is a space? What do I have to do to use one space?
> You're saying that dreamcache has good write rates. Is it proven by
> tests you made?
Nope, I was only referring to the numbers you provided. Still, I want to install dreamcache and get own numbers. However, I'm hesitating a little bit because of make install - I'd prefer to be able to rpm -hiv :-)
Cheers,
Martin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What is a space? What do I have to do to use one space?
For example, you want to store objects in two completely different categories or use dreamcache in two separate applications. In such issue you may want to use spaces (namespaces) to categorize your objects.
If you want to use only one space, you don't need to care, the default space is provided.
However, I can see, that multiple namespaces were disabled in latest release (mostly due to structural changes in libdreamcache), they are ready to be released next time.
Nope, I was only referring to the numbers you provided. Still, I want to install dreamcache and get own numbers. However, I'm hesitating a little bit because of make install - I'd prefer to be able to rpm -hiv :-)
We plan to make rpms in the future, if you want to try dreamcache without any risk, you may run configure with:
--prefix=`pwd`/experiments
Cheers,
Damian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I found dreamcache and it looks really promising as a memcached replacement, especially because of its extremely good write rates.
I'm just digging deeper into memcached's memory layout, in more detail when items could be dropped from the cache. For memcached, the least recently used item is removed from a slab if a new item shall go into this slab and if this is full.
Is this also the case for dreamcache, or is an item available as long as there's enough memory and the item is not yet expired?
Thanx in advance,
cheers,
Martin
Hi Martin,
It's nice to hear that someone dug out dreamcache and, which is
better, finds it promising ;)
There isn't anything like slabs in dreamcache. Items are deleted from
the cache only when they expire OR there is no space left for new
ones. We keep global LRU list and erase items according to that list
(one LRU list for every space but you can always use one space).
For memory management we chose to use tcmalloc - Google allocator -
which does really great job. tcmalloc turned out to be the best choice
from every one we tested (we never made our own memory allocator - we
tested existing solutions).
You're saying that dreamcache has good write rates. Is it proven by
tests you made?
Best regards,
Jacek Psiuk
> There isn't anything like slabs in dreamcache. Items are deleted from
> the cache only when they expire OR there is no space left for new
> ones.
Great! :)
> We keep global LRU list and erase items according to that list
> (one LRU list for every space but you can always use one space).
What is a space? What do I have to do to use one space?
> You're saying that dreamcache has good write rates. Is it proven by
> tests you made?
Nope, I was only referring to the numbers you provided. Still, I want to install dreamcache and get own numbers. However, I'm hesitating a little bit because of make install - I'd prefer to be able to rpm -hiv :-)
Cheers,
Martin
Hi Martin,
For example, you want to store objects in two completely different categories or use dreamcache in two separate applications. In such issue you may want to use spaces (namespaces) to categorize your objects.
If you want to use only one space, you don't need to care, the default space is provided.
However, I can see, that multiple namespaces were disabled in latest release (mostly due to structural changes in libdreamcache), they are ready to be released next time.
We plan to make rpms in the future, if you want to try dreamcache without any risk, you may run configure with:
Cheers,
Damian