On Mon, Apr 4, 2011 at 3:17 PM, Anurag Priyam <[email protected]> wrote:
[...]
> Mapping Queries to Shards
> -------------------------
>
> Use a vBucket[1][2] style partitioning scheme coupled with libhashkit[3] for a
> pluggable hashing solution.

One of my initial ideas here was to have a pluggable partitioning
solution. Libmemcached sort of does that. You can choose from a simple
modulo, ketama, weighted ketama, and vbuckets.

The most flexible (read, that gives you most control) partitioning
scheme you can have is a range based/forwarding table partitioning.
vBuckets almost parallels that. The only reason, that I can think of,
why anyone would use ketama (or other consistent hashing scheme) is
that it is simpler; needs less app side thinking. So, I thought, maybe
we should have a pluggable partitioning scheme, with vbuckets as the
default.

After reading up, and thinking more about vbuckets, I am unable to
justify a pluggable partitioning scheme at the cost of overhead
involved in maintaining more code. Tools (or, API) to handle
addition/removal of nodes, re-partitioning of data, shard groups will
have to handle all the cases. Seems a little difficult to make them
all pluggable in accordance with the partitioning scheme.

Comments ?

[...]

P.S: Sorry for a lot of TODOs, I just copy pasted from my notes :|.

-- 
Anurag Priyam
http://about.me/yeban/

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to