basho / basho_bench

A load-generation and testing tool for basically whatever you can write a returning Erlang function for.
Apache License 2.0
311 stars 197 forks source link

Support CRDT counters #141

Closed jonasrichard closed 9 years ago

jonasrichard commented 9 years ago

It would be nice to have this feature in order that we can show/measure the performance of CRDT counters. It should have crdt_counter_incr and crdt_counter_get operations, or something like those.

russelldb commented 9 years ago

There's this https://github.com/basho/basho_bench/blob/master/examples/counters.config for v1.4 style counters, good enough for now?

jonasrichard commented 9 years ago

Not really since with 2.0 counter we can save a GET and the throughput will be twice as much. It is not really demonstrate the capabilities of Riak 2.0. But it is good to compare the two implementations.

russelldb commented 9 years ago

I don't understand "save a GET". The implementation is almost identical, believe me.

dmitrizagidulin commented 9 years ago

Russel - just to double check, the CRDT operations {operations, [{counter_incr, 100}, {counter_val, 1}]} will work for 2.0 counters, for benchmarking?

russelldb commented 9 years ago

@dmitrizagidulin I'm going to go with "probably" until I check. Your issue there is creating/passing the bucket type.

All, I'm keeping the issue open, as of course I plan to add general CRDT benchmarking I know that @cmeiklejohn has gone some way there. I answered about 1.4 counters in case it kept @jonasrichard happy in the meantime.

As always, pull requests accepted.

dmitrizagidulin commented 9 years ago

@jonasrichard Ok, from further conversations with Russell, it sounds like you can use the config file linked above to get an idea of counters performance with basho_bench. Meaning, you can get started on your tests while we're working on adding 2.0 CRDT support to basho_bench in general.

cmeiklejohn commented 9 years ago

I'm happy to provide any support I can here, related to benchmarking.

cmeiklejohn commented 9 years ago

Just pushed commit f7ea0b36b4ee1d5b5f2a7fa7a74d7fb916e1e035, which should add a basic increment operation.

cmeiklejohn commented 9 years ago

Closing; commit cee8727385abbc3b1a87893e0bb4f1c82e5d837a adds a configuration which can be modified to do benchmarking over CRDTs.