Designing Your Buckets

Jeremiah Peschka jeremiah.peschka at gmail.com
Fri Oct 15 09:20:40 EDT 2010


And here are the posts in question, which I clearly need to re-read (thanks
for the gentle reminder, Alexander

http://blog.basho.com/2010/03/19/schema-design-in-riak---introduction/
http://blog.basho.com/2010/03/25/schema-design-in-riak---relationships/
http://blog.basho.com/2010/07/09/webinar-recap---schema-design-for-riak/

And this video covers a tiny bit of schema design: http://vimeo.com/14275191

I know what I'm doing with my afternoon.

Jeremiah Peschka
Microsoft SQL Server MVP
MCITP: Database Developer, DBA
614.515.0727


On Fri, Oct 15, 2010 at 8:58 AM, Alexander Sicular <siculars at gmail.com>wrote:

> 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.
>
> -Alexander
>
> On 2010-10-15, Jeremiah Peschka <jeremiah.peschka at gmail.com> 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 gmail.com> 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 lists.basho.com
> >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> >>
> >>
> >
>
> --
> Sent from my mobile device
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20101015/769ed2dc/attachment.html>


More information about the riak-users mailing list