Skip to content

Commit

Permalink
Merged in joy's branch.
Browse files Browse the repository at this point in the history
  • Loading branch information
user committed Apr 23, 2014
1 parent 57bdfa5 commit 0a2daf7
Show file tree
Hide file tree
Showing 7 changed files with 194 additions and 11 deletions.
6 changes: 3 additions & 3 deletions buildtools.py
Expand Up @@ -41,10 +41,10 @@ def __init__(self, args):
self.LOG_LEVEL = "DEBUG"
self.VOLT_LOG_LEVEL = None
self.STORAGE_MMAP = False
self.ANTICACHE_BUILD = True
self.ANTICACHE_BUILD = False
self.ANTICACHE_REVERSIBLE_LRU = True
self.ANTICACHE_NVM = True
self.ANTICACHE_DRAM = True
self.ANTICACHE_NVM = False
self.ANTICACHE_DRAM = False
self.ARIES= False

for arg in [x.strip().upper() for x in args]:
Expand Down
4 changes: 2 additions & 2 deletions properties/benchmarks/tpcc.properties
Expand Up @@ -42,7 +42,7 @@ neworder_only = false

# Whether to allow NewOrder txns to touch multiple partitions
# You can control the percentage of these txns with neworder_multip_mix
neworder_multip = true
neworder_multip = false

# The percentage of NewOrder txns that touch multiple partitions.
# Setting it to -1 will use the default configuration
Expand All @@ -64,7 +64,7 @@ neworder_skew_warehouse = false
payment_only = false

# Whether to allow Payment txns to touch multiple partitions.
payment_multip = true
payment_multip = false

# The percentage of Payment txns that touch multiple partitions.
# Setting it to -1 will use the default configuration
Expand Down
2 changes: 1 addition & 1 deletion properties/benchmarks/ycsb.properties
Expand Up @@ -8,6 +8,6 @@ builder = edu.brown.benchmark.ycsb.YCSBProjectBuilder
# only add the number of tuples defined in 'num_records'

fixed_size = true
num_records = 1000000
num_records = 100000
skew_factor = 1.5
#loadthreads = 16
181 changes: 181 additions & 0 deletions scripts/anticache/tpcc.sh
@@ -0,0 +1,181 @@
#!/bin/bash

# ---------------------------------------------------------------------

trap onexit 1 2 3 15
function onexit() {
local exit_status=${1:-$?}
pkill -f hstore.tag
exit $exit_status
}

# ---------------------------------------------------------------------

ENABLE_ANTICACHE=true

SITE_HOST="10.212.84.152"

CLIENT_HOSTS=( \
# "client1" \
# "client2" \
"10.212.84.152" \
"10.212.84.152" \
)

BASE_CLIENT_THREADS=1
BASE_SITE_MEMORY=8192
BASE_SITE_MEMORY_PER_PARTITION=1024
BASE_PROJECT="tpcc"
BASE_DIR=`pwd`
OUTPUT_DIR="~/data/ycsb/read-heavy/2/80-20"

ANTICACHE_BLOCK_SIZE=524288
#ANTICACHE_EVICT_SIZE=268400000
ANTICACHE_THRESHOLD=.5

BASE_ARGS=( \
# SITE DEBUG
"-Dsite.status_enable=false" \
"-Dsite.status_interval=20000" \
# "-Dsite.status_exec_info=true" \
# "-Dsite.status_check_for_zombies=true" \
# "-Dsite.exec_profiling=true" \
# "-Dsite.pool_profiling=true" \
# "-Dsite.network_profiling=false" \
# "-Dsite.log_backup=true"\
# "-Dnoshutdown=true" \

# Site Params
"-Dsite.jvm_asserts=false" \
"-Dsite.specexec_enable=false" \
"-Dsite.cpu_affinity_one_partition_per_core=true" \
#"-Dsite.cpu_partition_blacklist=0,2,4,6,8,10,12,14,16,18" \
#"-Dsite.cpu_utility_blacklist=0,2,4,6,8,10,12,14,16,18" \
"-Dsite.network_incoming_limit_txns=50000" \
"-Dsite.commandlog_enable=false" \
#"-Dsite.commandlog_dir=/mnt/pmfs/cmdlog" \
"-Dsite.txn_incoming_delay=5" \
"-Dsite.exec_postprocessing_threads=true" \
"-Dsite.anticache_profiling=false" \


# "-Dsite.queue_allow_decrease=true" \
# "-Dsite.queue_allow_increase=true" \
# "-Dsite.queue_threshold_factor=0.5" \

# Client Params
"-Dclient.scalefactor=1" \
"-Dclient.memory=2048" \
"-Dclient.txnrate=50000" \
"-Dclient.warmup=120000" \
"-Dclient.duration=120000" \
"-Dclient.shared_connection=false" \
"-Dclient.blocking=false" \
"-Dclient.blocking_concurrent=100" \
"-Dclient.throttle_backoff=100" \
#"-Dclient.output_anticache_evictions=evictions.csv" \

# Anti-Caching Experiments
"-Dsite.anticache_enable=${ENABLE_ANTICACHE}" \
"-Dsite.anticache_block_size=${ANTICACHE_BLOCK_SIZE}"
"-Dsite.anticache_check_interval=10000" \
"-Dsite.anticache_threshold_mb=500" \
"-Dsite.anticache_blocks_per_eviction=100" \
"-Dsite.anticache_max_evicted_blocks=500" \
#"-Dsite.anticache_evict_size=${ANTICACHE_EVICT_SIZE}" \
"-Dsite.anticache_threshold=${ANTICACHE_THRESHOLD}" \
"-Dclient.interval=5000" \
"-Dclient.anticache_enable=false" \
"-Dclient.anticache_evict_interval=5000" \
"-Dclient.anticache_evict_size=4194304" \
"-Dclient.output_csv=results.csv" \
"-Dclient.output_interval=true" \

# CLIENT DEBUG
# "-Dclient.output_txn_counters=txncounters.csv" \
"-Dclient.output_clients=false" \
"-Dclient.profiling=false" \
"-Dclient.output_response_status=false" \
# "-Dclient.output_queue_profiling=${BASE_PROJECT}-queue.csv" \
# "-Dclient.output_basepartitions=true" \
# "-Dclient.jvm_args=\"-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-TraceClassUnloading\""
)

EVICTABLE_TABLES=( \
#"orders" \
#"order_line" \
#"history" \
)

EVICTABLES=""
if [ "$ENABLE_ANTICACHE" = "true" ]; then
for t in ${EVICTABLE_TABLES[@]}; do
EVICTABLES="${t},${EVICTABLES}"
done
fi

# Compile
HOSTS_TO_UPDATE=("$SITE_HOST")
for CLIENT_HOST in ${CLIENT_HOSTS[@]}; do
NEED_UPDATE=1
for x in ${HOSTS_TO_UPDATE[@]}; do
if [ "$CLIENT_HOST" = "$x" ]; then
NEED_UPDATE=0
break
fi
done
if [ $NEED_UPDATE = 1 ]; then
HOSTS_TO_UPDATE+=("$CLIENT_HOST")
fi
done
for HOST in ${HOSTS_TO_UPDATE[@]}; do
ssh $HOST "cd $BASE_DIR && git pull && ant compile" &
done
wait

ant compile
for i in 8; do

HSTORE_HOSTS="${SITE_HOST}:0:0-"`expr $i - 1`
NUM_CLIENTS=`expr $i \* $BASE_CLIENT_THREADS`
SITE_MEMORY=`expr $BASE_SITE_MEMORY + \( $i \* $BASE_SITE_MEMORY_PER_PARTITION \)`

# BUILD PROJECT JAR
ant hstore-prepare \
-Dproject=${BASE_PROJECT} \
-Dhosts=${HSTORE_HOSTS} \
-Devictable=${EVICTABLES}
test -f ${BASE_PROJECT}.jar || exit -1

# UPDATE CLIENTS
CLIENT_COUNT=0
CLIENT_HOSTS_STR=""
for CLIENT_HOST in ${CLIENT_HOSTS[@]}; do
CLIENT_COUNT=`expr $CLIENT_COUNT + 1`
if [ ! -z "$CLIENT_HOSTS_STR" ]; then
CLIENT_HOSTS_STR="${CLIENT_HOSTS_STR},"
fi
CLIENT_HOSTS_STR="${CLIENT_HOSTS_STR}${CLIENT_HOST}"
done

# DISTRIBUTE PROJECT JAR
for HOST in ${HOSTS_TO_UPDATE[@]}; do
if [ "$HOST" != $(hostname) ]; then
scp -r ${BASE_PROJECT}.jar ${HOST}:${BASE_DIR} &
fi
done
wait

# EXECUTE BENCHMARK
ant hstore-benchmark ${BASE_ARGS[@]} \
-Dproject=${BASE_PROJECT} \
-Dkillonzero=false \
-Dclient.threads_per_host=${NUM_CLIENTS} \
-Dsite.memory=${SITE_MEMORY} \
-Dclient.hosts=${CLIENT_HOSTS_STR} \
-Dclient.count=${CLIENT_COUNT}
result=$?
if [ $result != 0 ]; then
exit $result
fi
done
4 changes: 2 additions & 2 deletions src/benchmarks/edu/brown/benchmark/ycsb/YCSBConstants.java
Expand Up @@ -52,7 +52,7 @@ public abstract class YCSBConstants {
// Transaction frequencies as specified in YCSB
public static final int FREQUENCY_INSERT_RECORD = 0;
public static final int FREQUENCY_DELETE_RECORD = 0;
public static final int FREQUENCY_READ_RECORD = 50;
public static final int FREQUENCY_READ_RECORD = 90;
public static final int FREQUENCY_SCAN_RECORD = 0;
public static final int FREQUENCY_UPDATE_RECORD = 50;
public static final int FREQUENCY_UPDATE_RECORD = 10;
}
1 change: 1 addition & 0 deletions src/frontend/org/voltdb/utils/DBBPool.java
Expand Up @@ -742,6 +742,7 @@ public static BBContainer allocateDirect(final int capacity) {
if (retval != null) {
retval.clear();
} else {
System.out.println("allocateDirect: " + capacity);
retval = ByteBuffer.allocateDirect(capacity);
}
return new BBContainer(retval, 0) {
Expand Down
7 changes: 4 additions & 3 deletions ycsb.sh
Expand Up @@ -11,12 +11,12 @@ function onexit() {

# ---------------------------------------------------------------------

ENABLE_ANTICACHE=true
ENABLE_ANTICACHE=false

SITE_HOST="10.212.84.152"

CLIENT_HOSTS=( \
"client1" \
"client2" \
"client2" \
"10.212.84.152" \
"10.212.84.152" \
Expand Down Expand Up @@ -58,6 +58,7 @@ BASE_ARGS=( \
#"-Dsite.cpu_utility_blacklist=0,2,4,6,8,10,12,14,16,18" \
"-Dsite.network_incoming_limit_txns=10000" \
"-Dsite.commandlog_enable=true" \
"-Dsite.commandlog_dir=/mnt/pmfs/cmdlog" \
"-Dsite.txn_incoming_delay=5" \
"-Dsite.exec_postprocessing_threads=false" \
"-Dsite.anticache_eviction_distribution=even" \
Expand All @@ -69,7 +70,7 @@ BASE_ARGS=( \
# Client Params
"-Dclient.scalefactor=1" \
"-Dclient.memory=2048" \
"-Dclient.txnrate=10000" \
"-Dclient.txnrate=20000" \
"-Dclient.warmup=60000" \
"-Dclient.duration=60000" \
"-Dclient.interval=20000" \
Expand Down

0 comments on commit 0a2daf7

Please sign in to comment.