Does Riak support Range Queries over binary safe strings?

Jeremiah Peschka jeremiah.peschka at
Tue Jul 16 18:53:16 EDT 2013

Following up on Alex's comments -

If you know which bytes you need to slice, you can store this in a
secondary index. You can perform range queries across secondary indices (as
well as keys).

As long as you're storing your data in a way that allows it to be read by
either Erlang or JavaScript, you should be able to query over it in
MapReduce. This is typically regarded as a Bad Idea™ since an MR query will
need to scan all keys in a bucket (which effectively means scanning the
entire cluster) and is best done as an infrequent activity to transform

Jeremiah Peschka - Founder, Brent Ozar Unlimited
MCITP: SQL Server 2008, MVP
Cloudera Certified Developer for Apache Hadoop

On Tue, Jul 16, 2013 at 3:45 PM, Alexander Sicular <siculars at>wrote:

> I would say no. Riak is generally oblivious as to the content of your
> data. Any ranges or other method you would use to query needs to be
> explicitly indexed via riak search or secondary indexes. Once you have
> found your data you could operate over that data in a map reduce, but I
> can't speak to "binary safe" blob operations in either erlang or JavaScript
> although I'm inclined to say yes, you would be able to operate over it in
> m/r.
> So searching for keys with certain data in the binblob is probably not
> gonna happen but once you have a key to feed an m/r you could get a slice
> of that value.
> Make sense?
> -Alexander
> @siculars
> Sent from my iRotaryPhone
> On Jul 16, 2013, at 18:17, gbrits <gbrits at> wrote:
> > First, hello all!
> >
> > Coming from Redis, I love that you can just put any binary blob in Redis
> > which is just treated as a string. This is possible because Redis strings
> > are what they call 'binary safe'. This makes it possible to return
> slices of
> > string-encoded binary data, which is super useful for bitset-operations,
> > etc.
> >
> > I'm investigating Riak and I like it a lot so far. Riak seems to have
> range
> > queries (on values, as it seems I must make that distinction with
> > column-stores), but I'm not sure if strings in Riak are "Binary safe" in
> the
> > above sense. If not, is there another way to store binary data in Riak
> and
> > still do range queries over them quickly?
> >
> > To be exact: I want to do multi-key lookups in Riak, where each returned
> > result should be of format: <key,slice(featureX,start,end)>
> >
> > Thanks,
> > Geert-Jan
> >
> >
> >
> > --
> > View this message in context:
> > Sent from the Riak Users mailing list archive at
> >
> > _______________________________________________
> > riak-users mailing list
> > riak-users at
> >
> _______________________________________________
> riak-users mailing list
> riak-users at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the riak-users mailing list