Hi, Greg.

On Thu, Mar 24, 2011 at 10:17 AM, Greg Nelson <[email protected]> wrote:
> Wouldn't it be the common case that
> there are relatively few buckets?  And so wouldn't it save a lot of memory
> to keep a reference to an interned bucket name string in each entry, instead
> of the whole bucket name?

One reason this isn't done is that bitcask is an independent
application, used-by rather than part-of Riak.  It's just a local kv
store, and knows nothing of higher-level concepts like buckets.
Another reason is that there are also users with very many buckets in
use, a situation that makes the proposed solution uncomfortable.

In cases where there are truly few buckets and one knows it would stay
that way, one could plausibly modify riak_kv_bitcask_backend (the part
of Riak that talks to Bitcask) to use a bitcask per bucket on each
vnode instead of a single bitcask per vnode.  One downside of that
approach would be that if the number of buckets did grow then the file
descriptor consumption would be large and the node-wide I/O profile
might be much worse as well.

Everything has tradeoffs.

-Justin

_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to