From: Waldemar Kozaczuk <
jwkoz...@gmail.com>
Committer: Waldemar Kozaczuk <
jwkoz...@gmail.com>
Branch: master
redis and keydb: added YCSB tests
Signed-off-by: Waldemar Kozaczuk <
jwkoz...@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)