From f61a9c64c8960e3e9b95d759a371a4136b8b9dec Mon Sep 17 00:00:00 2001
From: Peter Cai <peter.cai@uwaterloo.ca>
Date: Wed, 15 Feb 2023 10:12:35 -0500
Subject: [PATCH] refactor: Move most of memcached logic to shared files

---
 experiments/memcached.shared.sh   | 26 +++++++++++++++++++++++++-
 experiments/memcached_qps_scan.sh | 21 ++++-----------------
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh
index 1dd5e8f..e9bf0ed 100644
--- a/experiments/memcached.shared.sh
+++ b/experiments/memcached.shared.sh
@@ -17,7 +17,7 @@ cleanup_memcached() {
 
 start_memcached() {
     echo "Starting memcached"
-    taskset -c 0-$((THREADS - 1)) $MEMCACHED -u root -t $THREADS -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler $@ 2>&1 > /dev/null &
+    taskset -c 0-$((THREADS - 1)) $MEMCACHED -u root -t $THREADS -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler $MEMCACHED_ARGS 2>&1 > /dev/null &
     MEMCACHED_PID=$!
 }
 
@@ -37,3 +37,27 @@ run_mutilate() {
     echo "Running mutilate with $CONNS connections per agent (core) and QPS = $QPS"
     sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1.txt
 }
+
+memcached_pre_start() {
+    load_config
+
+    EXPERIMENT_NAME_EXT="t$THREADS.c$CONNS"
+
+    if [ "$NAPI_LOCALITY" == "true" ]; then
+        MEMCACHED_ARGS="$MEMCACHED_ARGS -N $THREADS"
+    fi
+
+    cleanup_mutilate    
+}
+
+memcached_init() {
+    start_memcached
+    start_mutilate
+    warmup
+}
+
+memcached_deinit() {
+    cleanup_mutilate
+    cleanup_memcached
+}
+
diff --git a/experiments/memcached_qps_scan.sh b/experiments/memcached_qps_scan.sh
index 59bd354..f026cf0 100644
--- a/experiments/memcached_qps_scan.sh
+++ b/experiments/memcached_qps_scan.sh
@@ -1,22 +1,11 @@
 source "$EXP_ROOT/experiments/memcached.shared.sh"
 
 pre_start() {
-    load_config
-
-    EXPERIMENT_NAME_EXT="t$THREADS.c$CONNS"
-
-    cleanup_mutilate    
+    memcached_pre_start
 }
 
 run_exp() {
-    MEMCACHED_ARGS=""
-    if [ "$NAPI_LOCALITY" == "true" ]; then
-        MEMCACHED_ARGS="-N $THREADS"
-    fi
-
-    start_memcached $MEMCACHED_ARGS
-    start_mutilate
-    warmup
+    memcached_init
 
     QPS_START=$((QPS_START_PER_THREAD * THREADS))
     QPS_END=$((QPS_END_PER_THREAD * THREADS))
@@ -27,11 +16,9 @@ run_exp() {
         run_mutilate $QPS
     done    
 
-    cleanup_mutilate
-    cleanup_memcached
+    memcached_deinit
 }
 
 post_start() {
-    cleanup_memcached
-    cleanup_mutilate
+    memcached_deinit
 }
-- 
GitLab