key name conventions

Aphyr aphyr at
Fri Oct 28 14:22:59 EDT 2011

Yep, two buckets: one for users, one for users_by_id. Or, you could use 
secondary indexes, and not worry about keeping the ids in sync.

For ID generation, UUIDs will work, SHA1s will work, or you could use an 
ID generation service like Snowflake.

On 10/28/2011 11:09 AM, Justin Karneges wrote:
> Hi,
> I read that when setting a value I can choose a key name or let Riak come up
> with a name for me.  The majority of examples in the docs seem to choose
> names.  However, it seems like anytime you'd store "table"-ish data, you'd
> want to avoid choosing names for your keys ("rows") and let Riak do it, right?
> For example, suppose I want to store some user data, and I let users change
> their usernames whenever they want.  Here's a natural first pass at a schema:
> /users/{user_fixed_id}:
>    data: user data
> /users_by_name/{username}:
>    data: empty
>    link: /users/{user_fixed_id}
> Here I have the real user data keyed by some fixed id, and then pointers to
> those objects keyed by name.  If the user ever changes his name I delete the
> old pointer and create a new one.
> "users" is basically the table then, and I let Riak choose the ids.  I have to
> put the index ("users_by_name") as a different bucket so that Riak ids don't
> conflict with potential usernames.  Unless there is a way to control how Riak
> chooses its ids (like choosing key name prefixes), I think you pretty much have
> to split into a bucket right?
> Alternatively, the client could generate the fixed value itself, allowing it to
> use key name prefixes in the same bucket (e.g. "user_{user_fixed_id}" and
> "username_{username}"}.  Generated ids would most certainly have to be UUIDs,
> though it might be interesting to know if an auto-increment integer is
> possible, if the integer is stored in Riak.
> I'm just trying to get an idea of how people go about this.
> Thanks,
> Justin
> _______________________________________________
> riak-users mailing list
> riak-users at

More information about the riak-users mailing list