OK now I understand. This isn't really a batch call it is just calling a user defined delegate and conveniently passing in an interface to be used for multiple method calls.
I don't see the RetryCount being used. Is it? Thanks again this has been a great help. From: riak-users [mailto:[email protected]] On Behalf Of Jeremiah Peschka Sent: Sunday, February 10, 2013 4:42 PM To: riak-users Subject: Re: CorrugatedIron batch get? It's all there in the source. ;) Responses inline [1]: https://github.com/DistributedNonsense/CorrugatedIron/blob/master/Corrugated Iron/Models/RiakObjectId.cs [2]: https://github.com/DistributedNonsense/CorrugatedIron/blob/master/Corrugated Iron.Tests.Live/RiakClientTests.cs#L62 --- Jeremiah Peschka - Founder, Brent Ozar Unlimited MCITP: SQL Server 2008, MVP Cloudera Certified Developer for Apache Hadoop On Sun, Feb 10, 2013 at 2:28 PM, Kevin Burton <[email protected]> wrote: So for [2] what is a RiakObjectID? The name of the argument is bucket-key pairs? But I am confused what is the constructor that takes an array of strings that is labeled object id? No relation to RiakBucketKeyInput. RiakObjectId is nothing more than a wrapper around a Bucket/Key pair [1] that are wired up for easy JSON conversion for Get operations. RiakBucketKeyInput is a sub-class of RiakPhaseInput for MR operations. I hadn't even known about IRiakBatchClient. Now I am intrigued. From the source it seems to mimic all of the calls to IRiakClient. How is the setup different? When does the "batch" start? There are examples of IRiakBatchClient in the test suite [2] This is kind of off-topic but I notice that there is a property public int RetryCount { get; set; }. What is the default value? How does it work? Is the whole batch retried or individual calls within the batch? RetryCount is related to the cluster config that you set up in app.config - it's the number of retries before CorrugatedIron marks a node as dead. From: riak-users [mailto:[email protected]] On Behalf Of Jeremiah Peschka Sent: Sunday, February 10, 2013 4:05 PM To: riak-users Subject: Re: CorrugatedIron batch get? My guess is that you're referring to the method Put(IEnumerable<RiakObject> values) [1]. If that's the case, yes there's also a Get that accepts an IEnumerable of RiakObjectID [2]. Riak doesn't support multi-get so CI is just wrapping a bunch of Gets in the background for you. MapReduce might be more effective here. If you're talking about the IRiakBatchClient interface [3], all actions of RiakClient can be handled through IRiakBatchClient. Keep in mind that CI's batch operations are just a wrapper around making a large number of calls at once. Nothing about Batch() is atomic - if you need a Unit of Work pattern you'll have to implement it yourself. [1]: https://github.com/DistributedNonsense/CorrugatedIron/blob/master/Corrugated Iron/RiakClient.cs#L306 [2]: https://github.com/DistributedNonsense/CorrugatedIron/blob/master/Corrugated Iron/RiakClient.cs#L191 [3]: https://github.com/DistributedNonsense/CorrugatedIron/blob/master/Corrugated Iron/IRiakBatchClient.cs --- Jeremiah Peschka - Founder, Brent Ozar Unlimited MCITP: SQL Server 2008, MVP Cloudera Certified Developer for Apache Hadoop On Sun, Feb 10, 2013 at 1:32 PM, Kevin Burton <[email protected]> wrote: Looking at the method calls I can see that there is a batch Put. Where I can form a list of RiakObject s and do one put that writes all of the objects to the database. Is there an equivalent "batch get"? Examples? Thank you. _______________________________________________ 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
