goncalotomas / FMKe

🛠️ Realistic benchmark for key value stores
Other
23 stars 8 forks source link

Instructions for running the benchmark in multiple databases #201

Closed yunhaom94 closed 5 years ago

yunhaom94 commented 6 years ago

Hello,

Sorry if this sounds trivial. I'm new to erlang and trying to compare perfomance of my Redis(geo-replicatied CRDB) set-up and AntidoteDB set-up. I read the documention and don't understand how should I run it, I tried to make bench-redis but turns out travis.sh is missing and I don't know how to connect to my running Redis server.

Thank you.

goncalotomas commented 5 years ago

I think you might have missed cmake, at least from looking at the error traced:

./build_deps.sh: line 93: cmake: command not found
yunhaom94 commented 5 years ago

Update: I deleted /_build folder and got different errors again: https://gist.github.com/yunhaom94/1ef7c96eee5f982c30aaae64f525b955

There seems to be problem of cassendra library again /usr/bin/ld: cannot find -lcassandra_static

======

Opps, sorry I just noticed that there the errors are new after installing the dependencis

===> Compiling antidote_pb_codec
===> Compiling antidotec_pb
===> Compiling erlcass
cpp-driver fork already exist. delete _build/deps for a fresh checkout.
make[1]: Entering directory '/home/redis1/FMKe/_build/default/lib/erlcass/c_src'
 CPP    uuid_serialization.cc
 CPP    cass_binding.cc
 CPP    nif_cass_statement.cc
In file included from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/address.hpp:22:0,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/serialization.hpp:20,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/c_src/uuid_serialization.cc:2:
/home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/third_party/sparsehash/src/sparsehash/dense_hash_set:103:10: fatal error: sparsehash/internal/sparseconfig.h: No such file or directory
 #include <sparsehash/internal/sparseconfig.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
nif.mk:78: recipe for target '/home/redis1/FMKe/_build/default/lib/erlcass/c_src/uuid_serialization.o' failed
make[1]: *** [/home/redis1/FMKe/_build/default/lib/erlcass/c_src/uuid_serialization.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/ref_counted.hpp:20:0,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/buffer.hpp:20,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/abstract_data.hpp:20,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/statement.hpp:20,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/execute_request.hpp:23,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/c_src/nif_cass_statement.cc:3:
/home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/atomic.hpp:20:10: fatal error: cassconfig.hpp: No such file or directory
 #include "cassconfig.hpp"
          ^~~~~~~~~~~~~~~~
compilation terminated.
nif.mk:78: recipe for target '/home/redis1/FMKe/_build/default/lib/erlcass/c_src/nif_cass_statement.o' failed
make[1]: *** [/home/redis1/FMKe/_build/default/lib/erlcass/c_src/nif_cass_statement.o] Error 1
In file included from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/ref_counted.hpp:20:0,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/data_type.hpp:24,
                 from /home/redis1/FMKe/_build/default/lib/erlcass/c_src/cass_binding.cc:7:
/home/redis1/FMKe/_build/default/lib/erlcass/_build/deps/cpp-driver/src/atomic.hpp:20:10: fatal error: cassconfig.hpp: No such file or directory
 #include "cassconfig.hpp"
          ^~~~~~~~~~~~~~~~
compilation terminated.
nif.mk:78: recipe for target '/home/redis1/FMKe/_build/default/lib/erlcass/c_src/cass_binding.o' failed
make[1]: *** [/home/redis1/FMKe/_build/default/lib/erlcass/c_src/cass_binding.o] Error 1
make[1]: Leaving directory '/home/redis1/FMKe/_build/default/lib/erlcass/c_src'
Makefile:12: recipe for target 'nif_compile' failed
make: *** [nif_compile] Error 2
===> Hook for compile failed!
goncalotomas commented 5 years ago

OK, the next clue is in the following trace line:

/usr/bin/ld: cannot find -lcassandra_static

This typically happens when you are installing an old version of libuv (there is v0 and v1). You need to ensure that when installing libuv-dev that you get v1. Try using the following command to fetch this specific Cassandra dependency:

sudo apt install libuv1-dev

While you are getting errors on the Cassandra compilation, you should delete _build between attempts :)

yunhaom94 commented 5 years ago

I got it working by deleting the old libuv-dev and downloading a new version manually!

However the fmke_poplutor stoped working again:

Booted distributed erlang node 'fmke_populator@127.0.0.1', using cookie fmke
Error: could not ping FMKe node: 'fmke@127.0.0.1.'

and this after I restarting a couple of times

Booted distributed erlang node 'fmke_populator@127.0.0.1', using cookie fmke
escript: exception error: no match of right hand side value undefined
  in function  fmke_populator:main/1 (/home/redis1/fmke_populator/_build/default/lib/fmke_populator/src/fmke_populator.erl, line 52)
  in call from escript:run/2 (escript.erl, line 758)
  in call from escript:start/1 (escript.erl, line 277)
  in call from init:start_em/1 
  in call from init:do_boot/3 
goncalotomas commented 5 years ago

You're trying to reach fmke@127.0.0.1. (extra dot at the end) which is not a valid Erlang node name. Run it like so, without the trailing dot:

./_build/default/bin/fmke_populator fmke@127.0.0.1
yunhaom94 commented 5 years ago

I got the second error then with this command.

goncalotomas commented 5 years ago

Yes, that was due to the latest changes I made here, which on some configurations don't fill in the target_database. I patched fmke_populator, can you pull the latest changes and try again?

yunhaom94 commented 5 years ago

It worked out well. Thanks!

goncalotomas commented 5 years ago

No problem. In your setup have you figured out how to add multiple nodes to a single cluster in Redis CRDB?

yunhaom94 commented 5 years ago

1

Just use Join Cluster option instead when first setting it up. https://docs.redislabs.com/latest/rs/concepts/high-availability/clustering/