Hi Alex,

Thank you for the clarify( and the warning :) ).

Just out of curiosity, by using erlang_pb_client, is there a good way
to retrieve *all* the Objects that have been walked in on shot( like
the HTTP interface does)?

And if there's not, then how is the HTTP map-reduce implemented so
that it can return all the Objects alone the way?

Best Regards :)
fxmy

2014-03-15 0:30 GMT+08:00 Alex Moore <amo...@basho.com>:
> Hi fxmy,
>
> The return value is just Bucket/Key/link-tag pairs, without ObjectValue or
> other metadata.
>>
>> {ok,[{0,[[<<"people">>,<<"timoreilly">>,<<"friend">>]]},
>>
>> {1,[[<<"people">>,<<"dhh">>,<<"friend">>]]}]}
>
>
> Is this intended or not?
>
>
> This is intended.  You are running a map reduce job with one "link" stage,
> which does the link walking for you.
> Link stages only return a list of key/value/relation tuples.
>
> If so, what's the best way to get these ObjectValues through one single pass
> of link-walking?
>
>
> If you want to grab everything in one shot you would have to feed the link
> stage's output into a map stage to grab the actual objects:
>
> {ok, RiakObj} = riakc_pb_socket:mapred(Pid,[{<<"people">>,
> <<"timoreilly">>}],
> [{link, <<"people">>, <<"friend">>, false},
>  {link, <<"people">>, <<"friend">>, false},
>  {map, {modfun, riak_kv_mapreduce, map_identity}, none, true}]).
>
> This should give you the entire object for the results of the last link
> phase, namely Dave Thomas's.
>
> I should warn you thought that while link walking and map reduce let you do
> things like this in one shot, you should be cautious about using them in
> production since a bad query can kill performance.
>
> Thanks,
> Alex
>
> On Mar 14, 2014, at 6:49 AM, fxmy wang <fxm...@gmail.com> wrote:
>
>
> Hi, list,
>
> This should be a trivial question and I think I'm definitely missing
> something( and feeling stupid :\).
>
> So when I am doing a chained link-walking through HTTP interface like
> this(copied from link walking docs):
>>
>> curl -v localhost:8091/riak/people/davethomas/_,friend,1/_,friend,_/
>
>
> The output is quite verbose, including Bucket/Key/Value etc.etc.
>>
>> --JCgqdOHsL4BdXPCb0cuQDnLTxOH
>>
>> Content-Type: multipart/mixed; boundary=LpfqXc9urbAJJNFH7aGGPBiAtnX
>>
>>
>> --LpfqXc9urbAJJNFH7aGGPBiAtnX
>>
>> X-Riak-Vclock: a85hYGBgzGDKBVIcc+04TgWFOj/NYEpkzGNlyNCadoYvCwA=
>>
>> Location: /riak/people/timoreilly
>>
>> Content-Type: text/plain
>>
>> Link: </riak/people/dhh>; riaktag="friend", </riak/people>; rel="up"
>>
>> Etag: 3DmGNeyDj2hUlLR2UhJvMr
>>
>> Last-Modified: Thu, 13 Mar 2014 13:11:04 GMT
>>
>>
>> I am an excellent public speaker.
>>
>> --LpfqXc9urbAJJNFH7aGGPBiAtnX--
>>
>>
>> --JCgqdOHsL4BdXPCb0cuQDnLTxOH
>>
>> Content-Type: multipart/mixed; boundary=IcBLyeIFObvJlJGyXuhTty5cRSs
>>
>>
>> --IcBLyeIFObvJlJGyXuhTty5cRSs
>>
>> X-Riak-Vclock: a85hYGBgzGDKBVIcR4M2cgeFOkdkMCUy5rEyzNSadoYvCwA=
>>
>> Location: /riak/people/dhh
>>
>> Content-Type: text/plain
>>
>> Link: </riak/people>; rel="up"
>>
>> Etag: 4qbA2ZufXNgzFRb8PlSLUO
>>
>> Last-Modified: Thu, 13 Mar 2014 13:11:53 GMT
>>
>>
>> I drive a Zonda.
>>
>> --IcBLyeIFObvJlJGyXuhTty5cRSs--
>>
>>
>> --JCgqdOHsL4BdXPCb0cuQDnLTxOH--
>
>
>
> But when I retried it through the erlang_pb_client
>>
>> riakc_pb_socket:mapred(Pid,[{<<"people">>, <<"davethomas">>}],[{link,
>> <<"people">>, <<"friend">>, true},{link, <<"people">>, <<"friend">>,
>> true}]).
>
>
> The return value is just Bucket/Key/link-tag pairs, without ObjectValue or
> other metadata.
>>
>> {ok,[{0,[[<<"people">>,<<"timoreilly">>,<<"friend">>]]},
>>
>> {1,[[<<"people">>,<<"dhh">>,<<"friend">>]]}]}
>
>
> Is this intended or not?
> If so, what's the best way to get these ObjectValues through one single pass
> of link-walking?
>
>
> Cheers,
> _______________________________________________
> 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