From: Waldemar Kozaczuk <jwkozac...@gmail.com> Committer: Waldemar Kozaczuk <jwkozac...@gmail.com> Branch: master
redis and keydb: added YCSB tests Signed-off-by: Waldemar Kozaczuk <jwkozac...@gmail.com> --- diff --git a/keydb/test.sh b/keydb/test.sh --- a/keydb/test.sh +++ b/keydb/test.sh @@ -2,10 +2,18 @@ THIS_DIR=$(readlink -f $(dirname $0)) CMDLINE=$($THIS_DIR/../cmdline.sh $THIS_DIR) +TEST_TYPE=${1:-'benchmark'} + +case $TEST_TYPE in + benchmark) + TESTER=tester.py;; + ycsb) + TESTER=tester_with_ycsb.py;; +esac $THIS_DIR/../../scripts/tests/test_app_with_test_script.py \ -e "$CMDLINE" \ --guest_port 6379 \ --host_port 6379 \ --start_line 'Not listening to IPv6' \ - --script_path $THIS_DIR/tester.py + --script_path $THIS_DIR/$TESTER diff --git a/keydb/tester.py b/keydb/tester.py --- a/keydb/tester.py +++ b/keydb/tester.py @@ -1,11 +1,14 @@ import sys +import os import subprocess success = False print("Started keydb test ...") try: - output = subprocess.check_output(["redis-benchmark", "-t", "set,lpush", "-n", "100000", "-q"], stderr=subprocess.STDOUT).decode() + server_host = os.getenv('OSV_HOSTNAME') + output = subprocess.check_output(["redis-benchmark", "-h", server_host, "-t", "set,lpush", "-n", "100000", "-q"], + stderr=subprocess.STDOUT).decode() print(output) if 'requests per second' in output: diff --git a/keydb/tester_with_ycsb.py b/keydb/tester_with_ycsb.py --- a/keydb/tester_with_ycsb.py +++ b/keydb/tester_with_ycsb.py @@ -0,0 +1,30 @@ +import sys +import os +import subprocess + +success = False + +print("Started YCSB redis test ...") + +curr_dir = os.getcwd() +server_host = os.getenv('OSV_HOSTNAME') +ycsb_home = os.getenv('YCSB_HOME') #Home of the cloned http://github.com/brianfrankcooper/YCSB.git + +if not ycsb_home or not os.path.exists(ycsb_home): + print("Please set YCSB_HOME env variable that points to the directory of the http://github.com/brianfrankcooper/YCSB.git project") +else: + try: + os.chdir(ycsb_home) + output = subprocess.check_output(['./bin/ycsb', 'load', 'redis', '-s', '-P', 'workloads/workloada', + '-p', 'redis.host=%s' % server_host, '-p', 'redis.port=6379'], stderr=subprocess.STDOUT).decode() + print(output) + output = subprocess.check_output(['./bin/ycsb', 'run', 'redis', '-s', '-P', 'workloads/workloada', + '-p', 'redis.host=%s' % server_host, '-p', 'redis.port=6379'], stderr=subprocess.STDOUT).decode() + print(output) + + if '[UPDATE], Return=OK' in output: + success = True + except subprocess.CalledProcessError as err: + print(err.output) + finally: + os.chdir(curr_dir) diff --git a/redis-memonly/.gitignore b/redis-memonly/.gitignore --- a/redis-memonly/.gitignore +++ b/redis-memonly/.gitignore @@ -0,0 +1,2 @@ +redis-server +usr.manifest diff --git a/redis-memonly/test.sh b/redis-memonly/test.sh --- a/redis-memonly/test.sh +++ b/redis-memonly/test.sh @@ -2,10 +2,18 @@ THIS_DIR=$(readlink -f $(dirname $0)) CMDLINE=$($THIS_DIR/../cmdline.sh $THIS_DIR) +TEST_TYPE=${1:-'benchmark'} + +case $TEST_TYPE in + benchmark) + TESTER=tester.py;; + ycsb) + TESTER=tester_with_ycsb.py;; +esac $THIS_DIR/../../scripts/tests/test_app_with_test_script.py \ -e "$CMDLINE" \ --guest_port 6379 \ --host_port 6379 \ --start_line 'The server is now ready' \ - --script_path $THIS_DIR/tester.py + --script_path $THIS_DIR/$TESTER diff --git a/redis-memonly/tester.py b/redis-memonly/tester.py --- a/redis-memonly/tester.py +++ b/redis-memonly/tester.py @@ -7,7 +7,8 @@ print("Started redis test ...") try: server_host = os.getenv('OSV_HOSTNAME') - output = subprocess.check_output(["redis-benchmark", "-h", server_host, "-t", "set,lpush", "-n", "100000", "-q"], stderr=subprocess.STDOUT).decode() + output = subprocess.check_output(["redis-benchmark", "-h", server_host, "-t", "set,lpush", "-n", "100000", "-q"], + stderr=subprocess.STDOUT).decode() print(output) if 'requests per second' in output: diff --git a/redis-memonly/tester_with_ycsb.py b/redis-memonly/tester_with_ycsb.py --- a/redis-memonly/tester_with_ycsb.py +++ b/redis-memonly/tester_with_ycsb.py @@ -0,0 +1,30 @@ +import sys +import os +import subprocess + +success = False + +print("Started YCSB redis test ...") + +curr_dir = os.getcwd() +server_host = os.getenv('OSV_HOSTNAME') +ycsb_home = os.getenv('YCSB_HOME') #Home of the cloned http://github.com/brianfrankcooper/YCSB.git + +if not ycsb_home or not os.path.exists(ycsb_home): + print("Please set YCSB_HOME env variable that points to the directory of the http://github.com/brianfrankcooper/YCSB.git project") +else: + try: + os.chdir(ycsb_home) + output = subprocess.check_output(['./bin/ycsb', 'load', 'redis', '-s', '-P', 'workloads/workloada', + '-p', 'redis.host=%s' % server_host, '-p', 'redis.port=6379'], stderr=subprocess.STDOUT).decode() + print(output) + output = subprocess.check_output(['./bin/ycsb', 'run', 'redis', '-s', '-P', 'workloads/workloada', + '-p', 'redis.host=%s' % server_host, '-p', 'redis.port=6379'], stderr=subprocess.STDOUT).decode() + print(output) + + if '[UPDATE], Return=OK' in output: + success = True + except subprocess.CalledProcessError as err: + print(err.output) + finally: + os.chdir(curr_dir) -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/000000000000b1d8ba05a3b1e79a%40google.com.