Thanks Casey. I had started to come to this realisation, although I am considering a slightly different approach of storing the links (as simple structured strings) in a set in a CRDT map object.
Thanks for the very useful response. Cheers, Paul On 25 Mar 2014, at 16:08, Casey Rosenthal <[email protected]> wrote: > Hi Paul, > > You would actually get the most predictable performance simply storing the > edges as k/v pairs and 'following' the links client-side. This is especially > helpful if you have a wide trees or a high crossing number, for example. In > such cases, you can retrieve multiple edges simultaneously in parallel, which > is a much more efficient query pattern than having Riak hop around the > cluster finding those edges and queuing up the result set while the client > application waits. > > Another advantage of this approach is that you can keep your logic and tests > in your native language, rather than going through Riak's m/r abstraction. > > This is a different mindset from working with relational databases, where we > were taught to always do as much calculation in the database layer as > possible. With a database tuned for high concurrency and low latency like > Riak, you will get the most bang for your buck if you keep the application > close to the database, pre-calculate your desired results as much as > possible, and perform the calculations and logic in the client application > layer, not the database layer. > > Thanks! > -Casey > > > On Tue, Mar 25, 2014 at 8:12 AM, Paul Walk <[email protected]> wrote: > Thanks - this is somewhat reassuring (the ability to do some basic graph-like > operations is one reason I have been using Riak). > > I have so far not had cause to use MapReduce. I wonder if you know of any > examples/docs for using MapReduce to perform an operation similar to > link_walking that I could use to get a head start? > > Thanks, > > Paul > > On 25 Mar 2014, at 15:08, Brian Roach <[email protected]> wrote: > > > Hi Paul, > > > > Link walking is being deprecated as Christian notes. > > > > We removed it from the official 2.0 clients for that reason, and also > > that the new clients only use protocol buffers which on the Riak PB > > API side never had that functionality directly. > > > > It is still possible to perform the operation, you just have to do it > > through map-reduce (which is what our clients have always done when > > using PB) > > > > Thanks, > > - Roach > > > > On Tue, Mar 25, 2014 at 8:56 AM, Paul Walk <[email protected]> wrote: > >> I'm gradually getting up to speed with the technical release of Riak 2.0, > >> and am appreciating CRDT and the seamless integration into search. > >> > >> I had just turned my attention to links, and started to wonder how I > >> should implement links when the objects I will mostly be dealing with are > >> CRDT 'map' objects, when I discovered that the link-walking functions > >> appear to have been removed from the latest Ruby client!! > >> > >> Is link-walking deprecated and intentionally removed from Riak version > >> 2.0? Or is it just missing from the Ruby client? > >> > >> Paul > >> ------------------------------------------- > >> Paul Walk > >> http://www.paulwalk.net > >> ------------------------------------------- > >> > >> > >> > >> > >> > >> > >> _______________________________________________ > >> riak-users mailing list > >> [email protected] > >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > > ------------------------------------------- > Paul Walk > http://www.paulwalk.net > ------------------------------------------- > > > > > > > _______________________________________________ > riak-users mailing list > [email protected] > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > ------------------------------------------- Paul Walk http://www.paulwalk.net ------------------------------------------- _______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
