Performance benchmark

I would like to reproduce some of fdb performance /latency measurements on small cluster.
Currently I tested with 3 machines.
I used adapted python script from fdb github for throughput and wrote new one for latencies.

I would know if there are some resources or methods to run parallel clients to target the performances reported here : Performance — FoundationDB 6.3

On my side I obtain in some test latencies about 3ms for wrting entries like this is subspace:

def create(self, tr, ...):
        tr[cts_space.pack((account_id, cname))] = b''
        tr[ct_space.pack((cname, pack(('name', cname))))] = b''
        tr[ct_space.pack((cname, pack(('objects', 0))))] = b''
        tr[ct_space.pack((cname, pack(('bytes', 0))))] = b''
        tr[ct_space.pack((cname, pack(('mtime', time.time()))))] = b''
        tr[ct_space.pack((cname, pack(('dtime', 0))))] = b''

Any guide or advice to run bench in parallel, how to configure fdbserver process per core etc ?
Thank you

I found go-ycsb tool to use with workload configuration

There’s some discussion about go-ycsb and its current limitations in Benchmarking FoundationDB on AWS

Multiple network connection support in 6.3 should make it rather easy to fix go-ycsb to be more realistic now though :thinking:

interesting! I got the tool and tested on one machine. Could you explain changes to do , I will be interested to implement them to test with a cluster.

If you’re using a client at >= 6.3.0, then you’d need to:

  • Set the CLIENT_THREADS_PER_VERSION network option to create some number of threads as described in Using FoundationDB Clients — FoundationDB 6.3
  • Create the same number of FDBDatabase objects, and round-robin requests across them in go-ycsb.