Commit 9e5fdbe6 authored by Hejing Li's avatar Hejing Li
Browse files

result: Nopaxos ehseq/swseq data and parser

parent 3fd38de1
import itertools
import sys
import utils.parse_nopaxos
if len(sys.argv) != 2:
print('Usage: nopaxos.py OUTDIR')
sys.exit(1)
basedir = sys.argv[1] + '/'
types_of_seq = ['ehseq', 'swseq']
num_clients = [1, 2, 3, 4, 5, 6, 7, 8]
print('num_client ehseq-tput(req/sec) ehseq-lat(us) swseq-tput(req/sec) swseq-lat(us)\n')
for num_c in num_clients:
line = [str(num_c)]
for seq in types_of_seq:
path_pat = '%snopaxos-gt-cb-%s-%d-1.json' % (basedir, seq, num_c)
res = utils.parse_nopaxos.parse_nopaxos_run(num_c, seq, path_pat)
#print(path_pat)
if ((res['throughput'] is None) or (res['latency'] is None)):
line.append('')
line.append('')
continue
#print tput and avg. latency
tput = res['throughput']
lat = res['latency']
line.append('%.2f' % (tput))
line.append(f'{lat}')
print(' '.join(line))
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
import json
import re
import os
def parse_nopaxos_run(num_c, seq, path):
ret = {}
ret['throughput'] = None
ret['latency'] = None
tp_pat = re.compile(r'(.*)Completed *([0-9\.]*) requests in *([0-9\.]*) seconds')
lat_pat = re.compile(r'(.*)Average latency is *([0-9\.]*) ns(.*)')
if not os.path.exists(path):
return ret
f_log = open(path, 'r')
log = json.load(f_log)
total_tput = 0
total_avglat = 0
for i in range(num_c):
sim_name = f'host.client.{i}'
#print(sim_name)
# in this host log stdout
for j in log["sims"][sim_name]["stdout"]:
#print(j)
m_t = tp_pat.match(j)
m_l = lat_pat.match(j)
if m_l:
#print(j)
lat = float(m_l.group(2)) / 1000 # us latency
#print(lat)
total_avglat += lat
if m_t:
n_req = float(m_t.group(2))
n_time = float(m_t.group(3))
total_tput += n_req/n_time
avglat = total_avglat/num_c
#print(avglat)
#print(total_tput)
ret['throughput'] = total_tput
ret['latency'] = avglat
return ret
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment