...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