How do I improve Level DB performance?

Tim Haines tmhaines at
Fri May 11 12:20:04 EDT 2012

On Fri, May 11, 2012 at 9:13 AM, Ryan Zezeski <rzezeski at> wrote:

> On Thu, May 10, 2012 at 11:14 PM, Tim Haines <tmhaines at> wrote:
>> With the adjusted ring size and settings, and adjusted to only do puts
>> (so no missed reads), my cluster is doing about 400 puts per second:
> Actually, every put (put from a riak API level) does a read on the backend
> [1].  This is needed to merge contents from the two objects [2].
> Like Dave already mentioned the key generation strategy along with
> leveldb's degrading performance on not-found means your benchmark will just
> get worse the longer it runs.
> Are you testing an actual use case here?  Do you envision 100M objects
> being written in a constant stream?  Will your objects have a median size
> of 1000 bytes?  Basho bench also provides a pareto key generator which uses
> a fraction of the key space most of the time.  I'm not sure it matches your
> use case but thought I'd mention it is there.
Hi Ryan,

Thanks. Greg just mentioned the reads on puts too.  I'd changed the config
to 250 bytes (matching about what I store for a tweet), and reran it
overnight, and observed performance drop from 400 puts/s to 250 puts/s.
 Right now my use case has me constantly writing about 200 new tweets per
second, so unless I'm missing something, this throughput measurement is a
realistic indicator for me.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the riak-users mailing list