Thanks Russel for the reply .

After going through all the APIs I too reached the same opinion. 1)Simultaneous 
multiple fetch and 2)MapReduce. However, simultaneous access would make the 
fetch very slower and it doesnt look efficient ( since there are threads 
spawned for each key and fetching say, 10K records might be an over head) let 
me know if I miss something here and that I shoudl not be concerned. My worry 
is not the procedure to spawn so many worker threads, but the number of 
connections they open and close and the performance overhead, thereby


I tried the map reduce in similar way that you mentioned. For weird reasons, it 
throws Java Heap memory exception and dies.

MapReduceResult result = client.mapReduce() .addInput("goog","2010-01-04") 
.addInput("goog","2010-01-05") .addInput("goog","2010-01-06") 
.addInput("goog","2010-01-07") .addInput("goog","2010-01-08") .addMapPhase(new 
NamedJSFunction("Riak.mapValuesJson"), true) .execute();


I used the same format as above mentioned in 
https://github.com/basho/riak-java-client page. I tried with and without the 
addMapPhase method, but in vain. Am I missing something here? Is there a 
prerequisite to use this code?

I also see that the above methods works only for IRiakClient. Until now I have 
been using RiakClient. Only to access these methods. I am using IRiakClient. 
Does that have any significance? way to access/ configure IRiakClient/ 
Mapreduce. This is the only place I need the map reduce, 
and throughout my code, i just store and fetch key values.  

I dont seem to get the answers in the forums or documents. If there are any,can 
you please point? Thanks again.

Suresh C Nair  



________________________________
 From: Russell Brown <[email protected]>
To: suresh chandran <[email protected]> 
Cc: "[email protected]" <[email protected]> 
Sent: Monday, November 28, 2011 7:14 PM
Subject: Re: Multiple keys to fetch in a Java client
 



On 28 Nov 2011, at 20:16, suresh chandran wrote:

May be I can make my statement clear :) I store my devices values in buckets 
named after OS (say windows/ linux) with the device id's as keys. I want to 
get  the devices  for a list of device ids . From what I see, the fetch API 
signature takes in bucket name and key. (Client.fetch("windows", "D1"). Is 
there a way where I can get Client.fetch("windows", <Collection fo keys>?
>

There is no multi-fetch from Riak right now. You can either fetch your 
individual keys (serially on in parallel) or run a Map/Reduce. In most case the 
Map/Reduce will be slower (though the API is simpler, I suppose.)

Use IRiakClient.mapReduce().addInput(bucket, key).addInput(bucket, 
key2)…(repeat!) I guess this is ripe for a convenience method that takes (as 
you suggest) addInputs(bucket, Collection<String> keys), so I'll add that to 
the features list.

Or just fetch all your keys using fetch. 

I guess it would be possible to add a bulk fetch API to the Riak Java Client 
that spawns a configurable number of threads to fetch a bunch of keys in 
parallel, but right now that is left as an exercise for the reader :)

Cheers

Russell



>Thanks
>Suresh C Nair
>
>
>________________________________
> From: suresh chandran <[email protected]>
>To: "[email protected]" <[email protected]> 
>Sent: Monday, November 28, 2011 2:53 PM
>Subject: Multiple keys to fetch in a Java client
> 
>
>HI,
>
>
>I am storing values of a devices under a particular OS. I want to fetch the 
>list of all vallues, based on the key list. What I see if that, I can fetch 
>the value one by one using the FETCH. Am using the HttpClient in Java. How do 
>I go about this? Assume I am tryign to reach the same behavior like query that 
>has "CONTAINS(key1, key2...). Is there a way to do this? or we can fetch the 
>values only one by one. I do see that Map-reduce, makes use of the list fo 
>keys, but am not sure if it is applicable in my case, as it ia simple 
>fetch with collection of / list of keys.
>
>
>Thanks
>Suresh C Nair
>_______________________________________________
>riak-users mailing list
>[email protected]
>http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
>_______________________________________________
>riak-users mailing list
>[email protected]
>http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to