Java Client performance woes

Jake Eakle jseakle at
Mon Dec 13 22:47:57 EST 2010

[list moderators -- please ignore the first copy of this message I sent
before subscribing]


While attempting to write a YCSB[1] interface for Riak (for a school
project, so alternative benchmarking tools aren't solutions), I have
encountered some pretty severe performance issues with the official Java
client. In particular, an insert currently takes a minimum of 50
milliseconds, which I have determined are spent in
HttpClient.executeMethod() (10 msec) and HttpMethod.getResponseBody() (40
msec). These are both calls into the Apache Commons HttpLib  library that
the Riak client depends on. At these speeds, even loading a YCSB workload
into Riak is practically untenable -- by comparison, we benchmarked
Cassandra inserts at roughly .5 msec.

I heard something in the irc channel about using protobuf instead, but the
section of the code that uses protobuf is utterly undocumented, and seems to
mostly be supporting the StreamClient, which, if the README is to be
believed, is only for streaming reads anyway.

Any practical advice about how to get Riak up and running from Java at
workable speeds would be very much appreciated.




A warb degombs the brangy. Your gitch zanks and leils the warb.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the riak-users mailing list