On 11 Apr 2012, at 22:15, Ahmed Bashir <[email protected]> wrote:

> It's not clear why the raw client API can't store() a RiakObject; it
> looks like I need to implement IRiakObject myself

It stores IRiakObject. There is an implementation in the library. Or use the 
builder. It doesn't store RiakObject as there are 2 legacy RiakObject 
implementations, each protocol specific, which should RawClient store? Those 
classes still exist for backwards compatibility reasons but I recommend you use 
the new API, if at all possible.

There is a blog post here ( 
http://basho.com/blog/technical/2011/07/14/The-All-New-Riak-Java-Client/ ) with 
some history.

Cheers

Russell
> 
> On Wed, Apr 11, 2012 at 1:39 PM, Russell Brown <[email protected]> wrote:
>> 
>> On 11 Apr 2012, at 21:20, Ahmed Bashir wrote:
>> 
>>> Thanks Russell!
>>> 
>>> Any benefit to using IRiakClient vs RawClient other than what's
>>> apparent in the API spec?
>>> 
>> 
>> RawClient leaves you to deal with all the trade-offs that are consequences 
>> of using fault-tolerant, distributed databases like Riak, IRiakClient offers 
>> one set of possible well-behaved approaches.
>> 
>> With RawClient, you need to retry a failure, IRiakClient has a default 
>> retrier and lets you provide a custom one of your own to handle faults. 
>> RawClient will give you an array of Riak Objects and a vector clock where 
>> IRiakClient makes it easy to convert the payload to a domain type to 
>> simplify sibling resolution. IRiakClient will always fetch before a store 
>> and will pass the vector clock for you.
>> 
>> Which you chose depends on what code you want to write and the style you 
>> prefer to code in. IRiakClient is there to make it harder for people to 
>> shoot themselves in the foot and to incorporate some best practices for 
>> being a well behaved Riak client, RawClient is used by IRiakClient, and can 
>> certainly be used to build your own interactions with Riak.
>> 
>> I hope that helps explain why there are there 2 layers that you can use, one 
>> building on the other.
>> 
>> Please feel free to ask away if I can clear it up any more,
>> 
>> Cheers
>> 
>> Russell
>> 
>>> On Wed, Apr 11, 2012 at 12:09 PM, Russell Brown <[email protected]> 
>>> wrote:
>>>> Hi Ahmed,
>>>> 
>>>> On 11 Apr 2012, at 19:45, Ahmed Bashir wrote:
>>>> 
>>>> Thanks for the link; this is precisely what led me to believe that
>>>> PBClusterConfig only supports IRiakClient, so I thought I'd ask around
>>>> 
>>>> 
>>>> PBClusterConfig is used to produce a RawClient. IRiakClient is just a
>>>> wrapper around RawClient. The cluster client is a RawClient. RawClient is
>>>> more like that legacy RiakClient/RiakObject classes you're using.
>>>> 
>>>> See 
>>>> http://basho.github.com/riak-java-client/1.0.5/com/basho/riak/client/raw/pbc/PBRiakClientFactory.html
>>>>  for
>>>> details.
>>>> 
>>>> Cheers
>>>> 
>>>> Russell
>>>> 
>>>> 
>>>> ...
>>>> 
>>>> Also, if we create a RiakClient with a single host (and others exist),
>>>> is there any auto-dicovery that goes on to balance the requests across
>>>> ll ring members, or will that one host process all the app requests?
>>>> 
>>>> 
>>>> 
>>>> On Wed, Apr 11, 2012 at 11:32 AM, Sean Cribbs <[email protected]> wrote:
>>>> 
>>>> Ahmed,
>>>> 
>>>> 
>>>> I think you'll find this resource useful, it contains some examples of how
>>>> 
>>>> to use
>>>> 
>>>> PBClusterConfig: 
>>>> https://github.com/basho/riak-java-client/wiki/ClientFactory
>>>> 
>>>> 
>>>> On Wed, Apr 11, 2012 at 2:29 PM, Ahmed Bashir <[email protected]>
>>>> 
>>>> wrote:
>>>> 
>>>> 
>>>> Hey guys,
>>>> 
>>>> 
>>>> I currently have an app that uses the RiakClient/RiakObject interface
>>>> 
>>>> (fetch(),store(),etc) in lieu of the
>>>> 
>>>> IRiakClient/IRiakObject/FetchObject interface.
>>>> 
>>>> 
>>>> Is there any way for me to continue using my code with
>>>> 
>>>> PBClusterConfig?  It looks like I need to move to using IRiakClient in
>>>> 
>>>> order to take advantage of PBClusterConfig, is that so?
>>>> 
>>>> 
>>>> Any insight would be appreciated, thanks!
>>>> 
>>>> 
>>>> Ahmed
>>>> 
>>>> 
>>>> _______________________________________________
>>>> 
>>>> riak-users mailing list
>>>> 
>>>> [email protected]
>>>> 
>>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> 
>>>> Sean Cribbs <[email protected]>
>>>> 
>>>> Software Engineer
>>>> 
>>>> Basho Technologies, Inc.
>>>> 
>>>> http://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
>> 
> 
> _______________________________________________
> 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