Designing Your Buckets

Alexander Sicular siculars at
Fri Oct 15 08:58:20 EDT 2010

State > zip > person with links in between seems very normalized to
me. Ya, you can do it, but I wouldn't. You in flat space now.
Denormalize ftw.

Sean Cribbs had a blog post on m/r'ing over some people and I have a
post on using m/r to sort by date. Google will find em.


On 2010-10-15, Jeremiah Peschka <jeremiah.peschka at> wrote:
> Based on my experience, you're on the right track.
> In addition to your main 'entity' buckets, you'll want to create index
> buckets that you use to speed lookups and create links back to the entity
> buckets.
> e.g. If you have a People bucket that is a nested record for a person with a
> mailing address, you might want to create some kind of States bucket with
> links to a ZipCodes bucket with further links to the People bucket. This way
> you can do link traversal from a state -> zip code -> person.
> To perform aggregations, you can use MapReduce. Using buckets and link
> walking can make it very easy to perform operations that closely mimic index
> seeks.
> Someone correct me if I've gone completely off the deep end on this one :)
> Jeremiah Peschka
> Microsoft SQL Server MVP
> MCITP: Database Developer, DBA
> 614.515.0727
> On Fri, Oct 15, 2010 at 1:49 AM, Cagdas Tulek <ctulek at> wrote:
>> Hi,
>> I'm a newbie to Riak (and riak like databases) and unfortunately I am a
>> long time RDB user. So, my mind is very biased but I try to think
>> differently and this will take some time.
>>  What I understand is that you try to avoid range queries and map/reduce
>> operations for live traffic. This part, I guess I understand better.
>> However, one thing that I don't understand is the needs on admin side.
>> Although on frontend you can play smart to limit the objects that a user
>> should interact, on the admin side you usually want to list all records
>> and
>> usually you want them to be sorted by id or creation time. These are also
>> true for your stats etc.
>> How do you design your buckets in Riak to solve this problem? Or do you
>> use
>> different approaches on admin side.
>> One (maybe dirty) solution with my RDB biased mind is to have auxiliary
>> buckets to list items:
>> books/book1..n
>> lists/list1..n
>> where list-i is an array of x keys (where x is a small number like 10,
>> 20).
>> This way we can have features like pagination. Same thing maybe for days:
>> days/20101014
>> I try to find slides/documents about these topics but usually the
>> information I find is about dealing with individual items and their
>> relations, not a list of these items.
>> I would appreciate any resources addressing these problems.
>> Best,
>> Cagdas
>> _______________________________________________
>> riak-users mailing list
>> riak-users at

Sent from my mobile device

More information about the riak-users mailing list