Java Client performance woes
Hello, 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. Thanks, Jake -- A warb degombs the brangy. Your gitch zanks and leils the warb. ___ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Re: Java Client performance woes
[list moderators -- please ignore the first copy of this message I sent before subscribing] Hello, 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. Thanks, Jake -- A warb degombs the brangy. Your gitch zanks and leils the warb. ___ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com