Hi Mark,

Riak is at its core a key-value store, and accessing objects directly through 
the key is therefore the by far the most efficient and scalable method. For 
each query, Riak can through consistent hashing determine exactly where the 
data should live and GET/PUT/DELETE it very efficiently, giving near-linerar 
scalability. It is generally recommended that you use semantic keys that will 
allow you to query directly based on key, rather that e.g. always use a UUID.

Some of the other features in Riak, e.g. secondary index queries and mapreduce, 
are often referred to as 'coverage queries'. As objects having a secondary 
index that matches the query can be stored in any partition, Riak needs to 
access a covering set of partitions in order to find all objects. A covering 
set of partitions is generally at least 'ring_size / n_val' rounded up. As 
these kind of queries require Riak to do significantly more work compared to 
direct key access, they generally result in higher and less predictable 
latencies. As the number of partitions that need to be queried increases with 
ring size, they do not scale linearly either. For this reason it is generally 
recommended that you use secondary index queries and mapreduce when you can 
control the level of concurrency and the thereby the load of the system.

When you are considering using secondary indexes, it makes sense to first 
consider whether your application will be read or write heavy or perhaps even 
balanced. As described in http://basho.com/index-for-fun-and-for-profit/ , it 
does in some scenarios make sense to create and maintain your own indexes 
rather than automatically relying on secondary indexes.

Link walking is behind the scenes based on mapreduce and suffers from the same 
limitation and performance characteristic.

Best regards,

Christian



On 8 Nov 2013, at 20:28, "Mark A. Basil, Jr." <m...@badarmadillo.com> wrote:

> Yes that would certainly work.  My experience up until recently has been 
> limited to RDBMS, so I’m still trying to wrap my head around ideas of 
> relating data when done this way. 
>  
> How does one choose the “best” of 2i vs. links vs. deterministic key names?  
> What makes this hard to adopt is that there isn’t much background info on 
> use-case, and the impact that a particular method had on that case.  I don’t 
> know what resource to turn to that is a starting point for “when you need to 
> do this, then these are the options and here are the pros/cons”.
>  
> I just don’t have time to watch 96 Vimeo videos that are all 30-60 minutes 
> long.
>  
> Counters seem like a good idea, but in order to use one we must solve another 
> problem.  My mindset is use the built-in counter because that’s what they are 
> meant to do; however, when that brings about a more complex problem of 
> determining how to relate the data, it just doesn’t make sense.
>  
> Again, I’m very new to “NoSQL”.  So if I’m missing some fundamental thing 
> that should be obvious please forgive me. 
>  
> -m
>  
> From: Dave Rusek [mailto:dru...@basho.com] 
> Sent: Friday, November 08, 2013 2:53 PM
> To: Mark A. Basil, Jr.; riak-users@lists.basho.com
> Subject: Re: Multiple named counters per key
>  
> Could you accomplish this with a bucket which is a map of counters? The 
> counter name would be the map key.
>  
> -- 
> Dave Rusek
> Sent with Airmail
>  
> On November 8, 2013 at 12:50:23 PM, Mark A. Basil, Jr. 
> (m...@badarmadillo.com) wrote:
> 
> Just a thought.  It would be handy if one could add many named counters per 
> buket/key to more closely handle a shopping cart scenario.  Otherwise, unless 
> I’m mistaken, one would have to have a bucket that would be the “cart” and 
> keys which are the “items”.  That doesn’t make a lot of sense to me.
>  
> _______________________________________________ 
> riak-users mailing list 
> riak-users@lists.basho.com 
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> _______________________________________________
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to