...is here: https://github.com/jbrisbin/riak-async-java-client 

It's a really rough draft. It does all the basic operations 
(put/get/delete/serverinfo/getbucketprops/listbuckets/listkeys) but doesn't do 
link walking or mapreduce yet. I'm trying to work out an issue with how the 
protobuf stuff works. 

Along those lines, maybe somebody can help here: I'm trying to figure out why 
it only really works when I block on the read/write. If I try and enqueue a 
bunch of writes, something is getting confused. It looks like I can write my 
requests all day long, but if I don't wait until I've processed a response, 
then something gets completely hosed. I'm wondering if this isn't something to 
do with how Riak processes PB requests. 

Bottom line is that I think I can get it mostly non-blocking, but I'm afraid I 
can't make it fully non-blocking without some awareness of that on the server 
end. 

I'm using Russell's abstractions for IRiakObject and I've forked the RawClient 
into a RawAsyncClient (which I'm not at all happy with a.t.m. simply because it 
looks messy with the callbacks and futures on the same interface). I may want 
to split them up into RiakAsyncFutureOperations and 
RiakAsyncCallbackOperations. But that's something we'll likely want to hash 
out. 

Since it's not fully non-blocking, it would be relatively easy to adapt what's 
here to the RawClient interface, which seems to work fine. It's reasonably 
performant at ~900 ops/sec (10000 puts and deletes) in blocking, 
one-operation-at-a-time mode. But that's not anywhere near where I want to be. 

Thanks! 

Jon Brisbin 
http//jbrisbin.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