Code cleaning
This commit is contained in:
parent
e2c2c82291
commit
ee8c54b5ee
16 changed files with 1 additions and 6071236 deletions
414
r/config_light.R
414
r/config_light.R
|
@ -1,414 +0,0 @@
|
||||||
library(ggplot2)
|
|
||||||
library(sqldf)
|
|
||||||
library(plyr)
|
|
||||||
library(dplyr)
|
|
||||||
library(cowplot)
|
|
||||||
|
|
||||||
scale_fill_bw_qdu_6 <- scale_fill_manual(values = c("#000000", "#333333", "#666666", "#999999", "#cccccc", "#ffffff"))
|
|
||||||
scale_fill_bw_qdu_4 <- scale_fill_manual(values = c("#000000", "#555555", "#aaaaaa", "#ffffff"))
|
|
||||||
|
|
||||||
d <- read.csv("../../donar-res/tmp_light/window3.csv")
|
|
||||||
d <- d %>% mutate (window = window / 1000)
|
|
||||||
d$strat <- as.factor(d$strat)
|
|
||||||
d$window <- as.factor(d$window)
|
|
||||||
#d$decile <- factor(d$decile, levels = c("MIN", "D0.1", "D1", "D25", "D50", "D75", "D99", "D99.9"))
|
|
||||||
d$percentile <-factor(d$percentile,levels=c("MAX", "P99.9", "P99", "P75", "P50", "P25", "P1", "P0.1", "MIN"))
|
|
||||||
d$strat <- revalue(d$strat, c("1"="TickTock", "0"="Duplicate"))
|
|
||||||
d <- d %>% mutate (lat = latency / 1000)
|
|
||||||
dwin <- sqldf("select * from d where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile)
|
|
||||||
gd <- ggplot(dwin, aes(x=window,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', color="black", width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Window (sec)") +
|
|
||||||
labs(fill="Percentile") +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
geom_hline(yintercept = 160, linetype="dashed", color="white") +
|
|
||||||
annotate("text", x=4, y=160, label = "QoS: OWD best", vjust = -1, color="white") +
|
|
||||||
geom_hline(yintercept = 360) +
|
|
||||||
annotate("text", x=4, y=360, label = "QoS: OWD limit", vjust = -1,color="black") +
|
|
||||||
theme_classic() +
|
|
||||||
theme(legend.position="none") +
|
|
||||||
facet_grid( . ~ strat)
|
|
||||||
|
|
||||||
|
|
||||||
e <- read.csv("../../donar-res/tmp_light/links3.csv")
|
|
||||||
e$strat <- as.factor(e$strat)
|
|
||||||
e$links <- as.factor(e$links)
|
|
||||||
e$strat <- revalue(e$strat, c("1"="TickTock", "0"="Duplicate"))
|
|
||||||
e$percentile <-factor(e$percentile,levels=c("MAX", "P99.9", "P99", "P75", "P50", "P25", "P1", "P0.1", "MIN"))
|
|
||||||
e <- e %>% mutate (lat = latency / 1000)
|
|
||||||
elinks <- sqldf("select * from e where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1' and links != 6 and links != 4") %>% arrange(percentile)
|
|
||||||
ge <- ggplot(sqldf("select * from e where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1' and links != 6 and links != 4") %>% arrange(percentile), aes(x=strat:links,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', width=1, color="black") +
|
|
||||||
scale_fill_grey() +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Strategy:Links") +
|
|
||||||
labs(fill="Percentile") +
|
|
||||||
geom_hline(yintercept = 200) +
|
|
||||||
geom_hline(yintercept = 400) +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
f <- read.csv("../../donar-res/tmp_light/fast3.csv")
|
|
||||||
f$strat <- as.factor(f$strat)
|
|
||||||
f$strat <- revalue(f$strat, c("1"="TickTock", "0"="Duplicate"))
|
|
||||||
f$fast_count <- as.factor(f$fast_count)
|
|
||||||
f$percentile <-factor(f$percentile,levels=c("MAX", "P99.9", "P99", "P75", "P50", "P25", "P1", "P0.1", "MIN"))
|
|
||||||
f <- f %>% mutate (lat = latency / 1000)
|
|
||||||
ffast <- sqldf("select * from f where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile)
|
|
||||||
gf <- ggplot(ffast, aes(x=strat:fast_count,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity') +
|
|
||||||
scale_fill_grey() +
|
|
||||||
geom_hline(yintercept = 200) +
|
|
||||||
geom_hline(yintercept = 400) +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Strategy:Fast Links") +
|
|
||||||
labs(fill="Percentile") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
plot_grid(gd, gdbis, ge, ge, gf, gf, ncol=3) +
|
|
||||||
ggsave("light_config.pdf", dpi=300, dev='pdf', height=17, width=15, units="cm")
|
|
||||||
|
|
||||||
mega <- sqldf("
|
|
||||||
select window as variable, lat, strat, percentile, 'Window (sec)' as variable_name from dwin
|
|
||||||
union
|
|
||||||
select links as variable, lat, strat, percentile, '# of total links' as variable_name from elinks
|
|
||||||
union
|
|
||||||
select fast_count as variable, lat, strat, percentile, '# of fast links' as variable_name from ffast
|
|
||||||
") %>% arrange(percentile)
|
|
||||||
|
|
||||||
mega$percentile <- revalue(mega$percentile, c("P99.9" = "99.9%", "P99" = "99%", "P75"="75%", "P50" = "50%", "P25" = "25%", "MIN" = "Min"))
|
|
||||||
mega$variable <- factor(mega$variable, levels =c("0.2", "1", "2", "3", "4", "5", "6", "8", "10", "12", "13", "14", "16", "20", "34"))
|
|
||||||
|
|
||||||
QoS <- data.frame(x = c(1.2, 1.5), name = c("bar", "foo"))
|
|
||||||
|
|
||||||
ggplot(mega, aes(x=variable,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', color="black", width=1) +
|
|
||||||
scale_fill_bw_qdu_6 +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Protocol Parameter Value") +
|
|
||||||
labs(fill="Distribution") +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
geom_hline(aes(yintercept = 110, linetype="Target One Way Delay"), color="grey") +
|
|
||||||
#annotate("text", x=4, y=160, label = "OWD best", vjust = 1.5, color="white") +
|
|
||||||
geom_hline(aes(yintercept = 360, linetype="Max One Way Delay"), color="grey") +
|
|
||||||
#annotate("text", x=4, y=360, label = "OWD limit", vjust = -1, color="black") +
|
|
||||||
theme_classic() +
|
|
||||||
theme(legend.position="top",
|
|
||||||
legend.direction = "horizontal",
|
|
||||||
legend.box = "vertical",
|
|
||||||
panel.spacing.y = unit(4, "mm"),
|
|
||||||
strip.placement = "outside",
|
|
||||||
legend.margin=margin(t = -0.1, unit='cm')) +
|
|
||||||
guides(fill = guide_legend(nrow = 1)) +
|
|
||||||
facet_grid(strat ~ variable_name, scales = "free", switch = "x") +
|
|
||||||
scale_linetype_manual(name = "QoS", values = c(1, 2), guide = guide_legend(override.aes = list(linetype = c("solid", "dashed")))) +
|
|
||||||
ggsave("light_config.pdf", dpi=300, dev='pdf', height=12.5, width=12.5, units="cm")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
g <- read.csv("../../donar-res/tmp_light/guards.csv")
|
|
||||||
g$strat <- as.factor(g$strat)
|
|
||||||
g$strat <- revalue(g$strat, c("1"="TickTock", "0"="Duplicate"))
|
|
||||||
g$guard <- as.factor(g$guard)
|
|
||||||
g$percentile <- revalue(g$percentile, c("MAX" = "100%", "P99.9"="99.9%", "P99"="99%", "P75" = "75%", "P50"="50%","P25"="25%","P1"="1%","P0.1"="0.1%","MIN"="Min"))
|
|
||||||
g$guard <- revalue(g$guard, c("guard_1"="1", "guard_3"="3", "guard_5"="5", "guard_7"="7", "guard_9"="9", "guard_11"="11", "simple"="inf"))
|
|
||||||
g$guard <- factor(g$guard, levels=c("1", "3", "5", "7", "9", "11", "inf"))
|
|
||||||
g$percentile <-factor(g$percentile,levels=c("100%", "99.9%", "99%", "75%", "50%", "25%", "1%", "0.1%", "Min"))
|
|
||||||
g <- g %>% mutate (lat = latency / 1000)
|
|
||||||
gg <- ggplot(sqldf("select * from g where percentile != '100%' and percentile != '1%' and percentile != '0.1%' ") %>% arrange(percentile), aes(x=guard,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', width=1, color="black") +
|
|
||||||
scale_fill_bw_qdu_6 +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("# of guards") +
|
|
||||||
labs(fill="Distribution") +
|
|
||||||
scale_linetype_manual(name = "QoS", values = c(1, 2), guide = guide_legend(override.aes = list(linetype = c("solid", "dashed")))) +
|
|
||||||
geom_hline(aes(yintercept = 110, linetype="Target One Way Delay"), color="grey") +
|
|
||||||
geom_hline(aes(yintercept = 360, linetype="Max One Way Delay"), color="grey") +
|
|
||||||
facet_grid(. ~ strat, scales = "free", switch = "x") +
|
|
||||||
theme_classic() +
|
|
||||||
guides(fill = guide_legend(nrow = 1)) +
|
|
||||||
theme(strip.placement = "outside",
|
|
||||||
legend.position="top",
|
|
||||||
legend.direction = "horizontal",
|
|
||||||
legend.box = "vertical",
|
|
||||||
legend.margin=margin(t = -0.2, l=-0.8, unit='cm'))
|
|
||||||
|
|
||||||
gg + ggsave("light_guards.pdf", dpi=300, dev='pdf', height=7.5, width=12.5, units="cm")
|
|
||||||
|
|
||||||
h <- read.csv("../../donar-res/tmp_light/complem.csv")
|
|
||||||
h$strat <- revalue(h$strat, c("ticktock"="TickTock", "duplicate"="Duplicate"))
|
|
||||||
h$percentile <- revalue(h$percentile, c("MAX" = "100%", "P99.9"="99.9%", "P99"="99%", "P75" = "75%", "P50"="50%","P25"="25%","P1"="1%","P0.1"="0.1%","MIN"="Min"))
|
|
||||||
h$percentile <-factor(h$percentile,levels=c("100%", "99.9%", "99%", "75%", "50%", "25%", "1%", "0.1%", "Min"))
|
|
||||||
h$mode <- factor(h$mode, levels=c("no_redundancy", "no_scheduler", "donar"))
|
|
||||||
h$mode <- revalue(h$mode, c("no_redundancy" = "scheduler", "no_scheduler" = "padding", "donar"="both"))
|
|
||||||
h <- h %>% mutate (lat = latency / 1000)
|
|
||||||
gh <- ggplot(sqldf("select * from h where percentile != '100%' and percentile != '1%' and percentile != '0.1%' ") %>% arrange(percentile), aes(x=mode,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', width=1, color="black") +
|
|
||||||
scale_fill_bw_qdu_6 +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
scale_linetype_manual(name = "QoS", values = c(1, 2), guide = guide_legend(override.aes = list(linetype = c("solid", "dashed")))) +
|
|
||||||
geom_hline(aes(yintercept = 110, linetype="Target One Way Delay"), color="grey") +
|
|
||||||
geom_hline(aes(yintercept = 360, linetype="Max One Way Delay"), color="grey") +
|
|
||||||
coord_cartesian(ylim=c(0,500)) +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Feature") +
|
|
||||||
labs(fill="Distribution") +
|
|
||||||
facet_grid(. ~ strat, scales = "free", switch = "x") +
|
|
||||||
theme_classic() +
|
|
||||||
guides(fill = guide_legend(nrow = 1)) +
|
|
||||||
theme(strip.placement = "outside",
|
|
||||||
legend.position="top",
|
|
||||||
legend.direction = "horizontal",
|
|
||||||
legend.box = "vertical",
|
|
||||||
legend.margin=margin(t = -0.2, l=-0.8, unit='cm'))
|
|
||||||
|
|
||||||
gh + ggsave("light_complementary.pdf", dpi=300, dev='pdf', height=7.5, width=12.5, units="cm")
|
|
||||||
|
|
||||||
i <- read.csv("../../donar-res/tmp_light/battle.csv")
|
|
||||||
i$percentile <- revalue(i$percentile, c("MAX" = "100%", "P99.9"="99.9%", "P99"="99%", "P75" = "75%", "P50"="50%","P25"="25%","P1"="1%","P0.1"="0.1%","MIN"="Min"))
|
|
||||||
i$percentile <-factor(i$percentile,levels=c("100%", "99.9%", "99%", "75%", "50%", "25%", "1%", "0.1%", "Min"))
|
|
||||||
i <- i %>% mutate (lat = latency / 1000)
|
|
||||||
i$secmode <- factor(i$secmode, levels=c("hardened", "default", "light"))
|
|
||||||
i$algo <- factor(i$algo, levels=c("simple", "dup2", "lightning-ticktock", "lightning-dup"))
|
|
||||||
i$algo <- revalue(i$algo, c("dup2"="torfone", "simple"="simple", "lightning-ticktock"="donar-ticktock", "lightning-dup"="donar-dup"))
|
|
||||||
gi <- ggplot(sqldf("select * from i where percentile != '100%' and percentile != '1%' and percentile != '0.1%' ") %>% arrange(percentile), aes(x=algo,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity',width=1,color="black") +
|
|
||||||
scale_fill_bw_qdu_6 +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
#scale_fill_viridis_d() +
|
|
||||||
geom_hline(aes(yintercept = 110, linetype="Target One Way Delay"), color="grey") +
|
|
||||||
geom_hline(aes(yintercept = 360, linetype="Max One Way Delay"), color="grey") +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Algorithm") +
|
|
||||||
labs(fill="Distribution", title="linear scale, cropped") +
|
|
||||||
theme_classic() +
|
|
||||||
scale_linetype_manual(name = "QoS", values = c(1, 2), guide = guide_legend(override.aes = list(linetype = c("solid", "dashed")))) +
|
|
||||||
guides(fill = guide_legend(nrow = 1)) +
|
|
||||||
facet_grid(. ~ secmode, scales = "free", switch = "x") +
|
|
||||||
theme(axis.text.x = element_text(angle = 20, hjust=1),
|
|
||||||
plot.margin = unit(c(0.3,0.2,0.2,1), "cm"),
|
|
||||||
strip.placement = "outside",
|
|
||||||
legend.position="none",
|
|
||||||
legend.direction = "horizontal",
|
|
||||||
legend.box = "vertical",
|
|
||||||
legend.margin=margin(t = -0.1, unit='cm'))
|
|
||||||
|
|
||||||
gibis <- ggplot(sqldf("select * from i where percentile != '100%' and percentile != '1%' and percentile != '0.1%' ") %>% arrange(percentile), aes(x=algo,y=lat,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', color="black", width=1) +
|
|
||||||
scale_fill_bw_qdu_6 +
|
|
||||||
scale_y_log10() +
|
|
||||||
#geom_hline(aes(yintercept = 160, linetype="Target One Way Delay"), color="grey") +
|
|
||||||
#geom_hline(aes(yintercept = 360, linetype="Max One Way Delay"), color="grey") +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
coord_cartesian(ylim=c(30,250000)) +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Algorithm") +
|
|
||||||
labs(fill="Distribution", title="log scale, full") +
|
|
||||||
facet_grid(. ~ secmode, scales = "free", switch = "x") +
|
|
||||||
theme_classic() +
|
|
||||||
theme(legend.position="none",
|
|
||||||
axis.text.x = element_text(angle = 20, hjust=1),
|
|
||||||
plot.margin = unit(c(0.2,0.2,0.2,1), "cm"),
|
|
||||||
strip.placement = "outside")
|
|
||||||
|
|
||||||
gilegend <- get_legend(gi + theme(legend.position = "top"))
|
|
||||||
|
|
||||||
plot_grid(gilegend, plot_grid(gibis, gi, align="v", ncol=1), ncol=1, rel_heights = c(1,6)) +
|
|
||||||
ggsave("light_battle.pdf", dpi=300, dev='pdf', height=15, width=12.5, units="cm")
|
|
||||||
|
|
||||||
#gi + ggsave("battle_color.pdf", dpi=300, dev='pdf', height=7, width=12, units='cm')
|
|
||||||
|
|
||||||
fastprobe = read.csv(text=
|
|
||||||
"
|
|
||||||
group,pad,count,strat
|
|
||||||
fast,orig,0.47348781884198304,ticktock
|
|
||||||
fast,pad,0.2629428441715532,ticktock
|
|
||||||
probe,orig,0.23705662669600178,ticktock
|
|
||||||
probe,pad,0.026512710290461965,ticktock
|
|
||||||
probe,orig,0.1154165656941915,duplicate
|
|
||||||
probe,pad,0.015345347029610245,duplicate
|
|
||||||
fast,orig,0.7349205324574037,duplicate
|
|
||||||
fast,pad,0.13431755481879454,duplicate
|
|
||||||
")
|
|
||||||
gj <- ggplot(fastprobe, aes(x=group:pad, y=count, fill=strat)) +
|
|
||||||
geom_bar(stat='identity', position='dodge') +
|
|
||||||
scale_fill_grey() +
|
|
||||||
ylab("Count") +
|
|
||||||
xlab("Group:Padding") +
|
|
||||||
labs(fill="Strategy") +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x = element_text(angle = 20, hjust=1))
|
|
||||||
gj + ggsave("light_fastprobe.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
|
||||||
|
|
||||||
fastprobe2 = read.csv(text="
|
|
||||||
strat,schedule_state,packet_position,ratio
|
|
||||||
Ticktock,tick,original on 1st class,0.946975638
|
|
||||||
Ticktock,tick,piggybacked on 2nd class,0.053025421
|
|
||||||
Ticktock,tock,original on 2nd class,0.474113253
|
|
||||||
Ticktock,tock,piggybacked on 1st class,0.525885688
|
|
||||||
Duplicate,all,original on 1st class,0.7349205324574037
|
|
||||||
Duplicate,all,piggybacked on 1st class,0.13431755481879454
|
|
||||||
Duplicate,all,original on 2nd class,0.1154165656941915
|
|
||||||
Duplicate,all,piggybacked on 2nd class,0.015345347029610245
|
|
||||||
")
|
|
||||||
fastprobe2$schedule_state <-factor(fastprobe2$schedule_state,levels=c("all", "tock", "tick"))
|
|
||||||
ggplot(fastprobe2, aes(x=schedule_state, y=ratio, fill=packet_position)) +
|
|
||||||
geom_bar(stat='identity', position='stack', width=1, color="black") +
|
|
||||||
facet_grid(strat ~ ., scales = "free", switch = "x") +
|
|
||||||
scale_y_continuous(expand = c(0, 0), labels = scales::percent) +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
scale_fill_bw_qdu_4 +
|
|
||||||
xlab("Schedule State") +
|
|
||||||
ylab("Fastest Delivery") +
|
|
||||||
labs(fill="Scheduling Decision") +
|
|
||||||
coord_flip() +
|
|
||||||
theme_classic() +
|
|
||||||
ggsave("light_fastprobe.pdf", dpi=300, dev='pdf', height=5, width=12.5, units="cm")
|
|
||||||
|
|
||||||
|
|
||||||
fastlinks = read.csv(text=
|
|
||||||
"
|
|
||||||
link_count,occ_count,strat
|
|
||||||
5,0,Ticktock
|
|
||||||
9,0.20634920634920634,Ticktock
|
|
||||||
8,0.25396825396825395,Ticktock
|
|
||||||
7,0.1111111111111111,Ticktock
|
|
||||||
6,0.1746031746031746,Ticktock
|
|
||||||
10,0.1746031746031746,Ticktock
|
|
||||||
11,0.07936507936507936,Ticktock
|
|
||||||
12,0,Ticktock
|
|
||||||
9,0.19047619047619047,Duplicate
|
|
||||||
8,0.14285714285714285,Duplicate
|
|
||||||
10,0.20634920634920634,Duplicate
|
|
||||||
7,0.09523809523809523,Duplicate
|
|
||||||
6,0.09523809523809523,Duplicate
|
|
||||||
11,0.14285714285714285,Duplicate
|
|
||||||
5,0.015873015873015872,Duplicate
|
|
||||||
12,0.1111111111111111,Duplicate
|
|
||||||
")
|
|
||||||
gk <- ggplot(fastlinks, aes(x=link_count, y=occ_count, fill=strat)) +
|
|
||||||
geom_bar(stat='identity', position='dodge', color="black") +
|
|
||||||
scale_fill_grey() +
|
|
||||||
ylab("Calls") +
|
|
||||||
xlab("Links fast at least once") +
|
|
||||||
labs(fill="Strategy") +
|
|
||||||
scale_y_continuous(expand = c(0, 0), labels = scales::percent) +
|
|
||||||
scale_x_continuous(expand = c(0, 0)) +
|
|
||||||
theme_classic()
|
|
||||||
#theme(axis.text.x = element_text(angle = 20, hjust=1))
|
|
||||||
gk + ggsave("light_fastlinks.pdf", dpi=300, dev='pdf', height=6, width=12.5, units="cm")
|
|
||||||
|
|
||||||
|
|
||||||
l <- read.csv("../../donar-res/tmp_light/basic.csv")
|
|
||||||
l <- l %>% mutate (lat = latency / 1000)
|
|
||||||
gl <- ggplot(sqldf("select * from l where way='client'"), aes(x=packet_id,y=lat)) +
|
|
||||||
coord_cartesian(ylim=c(0,500)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
scale_x_continuous(expand = c(0, 0)) +
|
|
||||||
xlab("Packet Identifier") +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
labs(linetype="Way") +
|
|
||||||
geom_point(size=0.1) +
|
|
||||||
geom_hline(aes(yintercept = 110, linetype="Target One Way Delay"), color="white") +
|
|
||||||
geom_hline(aes(yintercept = 360, linetype="Max One Way Delay"), color="grey") +
|
|
||||||
scale_linetype_manual(name = "QoS", values = c(1, 2), guide = guide_legend(override.aes = list(linetype = c("solid", "dashed")))) +
|
|
||||||
theme_classic() +
|
|
||||||
theme(legend.position="top",legend.margin=margin(t = -0.1, b = -0.1, unit='cm'))
|
|
||||||
#gl + ggsave("light_single.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
|
||||||
|
|
||||||
m <- read.csv("../../donar-res/tmp_light/fp.csv")
|
|
||||||
m <- m %>% mutate (lat = latency / 1000)
|
|
||||||
m$group <- revalue(m$group, c("fast" = "1st class links", "probe" = "2nd class links"))
|
|
||||||
gm <- ggplot(sqldf("select * from m where `way`='client'"), aes(x=packet_id,y=lat,color=group)) +
|
|
||||||
scale_color_grey() +
|
|
||||||
coord_cartesian(ylim=c(0,500)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
scale_x_continuous(expand = c(0, 0)) +
|
|
||||||
xlab("Packet Identifier") +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
labs(color="Link Group") +
|
|
||||||
labs(linetype="Way") +
|
|
||||||
geom_point(size=0.1) +
|
|
||||||
geom_hline(yintercept = 110, linetype="dashed", color="white") +
|
|
||||||
geom_hline(yintercept = 360, linetype="solid", color="grey") +
|
|
||||||
guides(color = guide_legend(override.aes = list(size=2))) +
|
|
||||||
theme_classic() +
|
|
||||||
theme(legend.position="top", legend.margin=margin(t = -0.1, b = -0.1, unit='cm'))
|
|
||||||
|
|
||||||
n <- read.csv("../../donar-res/tmp_light/linkgroup.csv")
|
|
||||||
n$group <- revalue(n$group, c("fast" = "1st class links", "probe" = "2nd class links"))
|
|
||||||
#n$link_id <- as.factor(n$link_id)
|
|
||||||
gn <- ggplot(n, aes(x=packet_id, y=link_id, color=group)) +
|
|
||||||
scale_color_grey() +
|
|
||||||
scale_fill_grey() +
|
|
||||||
geom_point(size=0.6) +
|
|
||||||
scale_y_continuous(expand = c(0.1, 0.1)) +
|
|
||||||
scale_x_continuous(expand = c(0, 0)) +
|
|
||||||
#scale_color_viridis_d() +
|
|
||||||
xlab("Packet Identifier") +
|
|
||||||
ylab("Link Identifier") +
|
|
||||||
labs(color="Link group") +
|
|
||||||
#geom_tile() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(legend.position="none")
|
|
||||||
|
|
||||||
plot_grid(gl, gm, gn, ncol=1,align="v",rel_heights = c(1.3,1.3,1)) + ggsave("light_single.pdf", dpi=300, dev='pdf', height=12.5, width=12.5, units="cm")
|
|
||||||
|
|
||||||
gn+ggsave("links_group.pdf", dpi=300, dev='pdf', height=7, width=15, units="cm")
|
|
||||||
|
|
||||||
o <- read.csv("../../donar-res/tmp_light/torrate.csv")
|
|
||||||
o <- o %>% mutate (latency = latency / 1000)
|
|
||||||
o <- o %>% mutate (rate = round(rate, 0))
|
|
||||||
|
|
||||||
q1coefs <- coef(lm(latency ~ rate, data = sqldf("select rate, latency from o where percentile= 'P25'")))
|
|
||||||
mcoefs <- coef(lm(latency ~ rate, data = sqldf("select rate, latency from o where percentile= 'P50'")))
|
|
||||||
q3coefs <- coef(lm(latency ~ rate, data = sqldf("select rate, latency from o where percentile= 'P75'")))
|
|
||||||
|
|
||||||
o$percentile <- revalue(o$percentile, c("MAX"="100%", "MIN" = "0%", "P99.9" = "99.9%", "P99" = "99%", "P75" = "75%", "P50" = "50%", "P25" = "25%"))
|
|
||||||
o$percentile <-factor(o$percentile,levels=c("100%", "99.9%", "99%", "75%", "50%", "25%", "1%", "0.1%", "0%"))
|
|
||||||
o$rate <- factor(o$rate)
|
|
||||||
|
|
||||||
go <- ggplot(sqldf("select * from o where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile), aes(x=rate,y=latency,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity', width=1) +
|
|
||||||
#scale_fill_grey() +
|
|
||||||
scale_fill_viridis_d(expand = c(0, 0)) +
|
|
||||||
scale_y_continuous(expand = c(0, 0)) +
|
|
||||||
scale_x_discrete(expand = c(0, 0)) +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Packets / second") +
|
|
||||||
labs(fill="Distribution") +#, title="low values") +
|
|
||||||
coord_cartesian(ylim=c(0,500)) +
|
|
||||||
geom_hline(yintercept = 200) +
|
|
||||||
geom_hline(yintercept = 400) +
|
|
||||||
#geom_abline(intercept = q1coefs[1], slope = q1coefs[2], linetype='dashed') +
|
|
||||||
#geom_abline(intercept = mcoefs[1], slope = mcoefs[2], linetype='dashed') +
|
|
||||||
#geom_abline(intercept = q3coefs[1], slope = q3coefs[2], linetype='dashed') +
|
|
||||||
theme_classic()
|
|
||||||
gp <- ggplot(sqldf("select * from o where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile), aes(x=rate,y=latency,group=percentile,fill=percentile)) +
|
|
||||||
geom_bar(stat='identity', position='identity') +
|
|
||||||
scale_fill_grey() +
|
|
||||||
scale_y_log10() +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
xlab("Packets / second") +
|
|
||||||
labs(fill="Percentile", title="high values (log scale)") +
|
|
||||||
coord_cartesian(ylim=c(100,100000)) +
|
|
||||||
geom_hline(yintercept = 200) +
|
|
||||||
geom_hline(yintercept = 400) +
|
|
||||||
theme_classic()
|
|
||||||
plot_grid(gp, go, align = "v", axis = "l", ncol=1) + ggsave("torrate.pdf", dpi=300, dev='pdf', height=12, width=15, units="cm")
|
|
||||||
|
|
||||||
go + ggsave("torrate_scale.pdf", dpi=300, dev='pdf', height=6, width=12, units='cm')
|
|
|
@ -1,172 +0,0 @@
|
||||||
library(ggplot2)
|
|
||||||
library(sqldf)
|
|
||||||
library(plyr)
|
|
||||||
library(dplyr)
|
|
||||||
library(cowplot)
|
|
||||||
|
|
||||||
link_info <- read.csv("../res/tmp_graph/u.txt")
|
|
||||||
ggplot(data=link_info, aes(x=timestamp, y=link, color=speed)) +
|
|
||||||
#geom_line() +
|
|
||||||
geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
|
|
||||||
xx <- read.csv("../../donar-res/tmp_light/v2.csv")
|
|
||||||
xx2 <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way from xx group by packet_id,way")
|
|
||||||
ggplot(data=xx2, aes(x=packet_id, y=lat, color=way)) +
|
|
||||||
geom_line() +
|
|
||||||
geom_hline(yintercept=400) +
|
|
||||||
geom_hline(yintercept=200) +
|
|
||||||
coord_cartesian(ylim=c(0,1000)) +
|
|
||||||
#geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
xx4 <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way from xx where flag = 0 group by packet_id,way")
|
|
||||||
ggplot(data=xx4, aes(x=packet_id, y=lat, color=way)) +
|
|
||||||
geom_line() +
|
|
||||||
geom_hline(yintercept=400) +
|
|
||||||
geom_hline(yintercept=200) +
|
|
||||||
coord_cartesian(ylim=c(0,1000)) +
|
|
||||||
#geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
|
|
||||||
xx5 <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way from xx where flag = 1 group by packet_id,way")
|
|
||||||
ggplot(data=xx5, aes(x=packet_id, y=lat, color=way)) +
|
|
||||||
geom_line() +
|
|
||||||
geom_hline(yintercept=400) +
|
|
||||||
geom_hline(yintercept=200) +
|
|
||||||
coord_cartesian(ylim=c(0,1000)) +
|
|
||||||
#geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
|
|
||||||
prepros <- sqldf(
|
|
||||||
"select
|
|
||||||
r.packet_id,
|
|
||||||
r.way,
|
|
||||||
r.lat,
|
|
||||||
s.flag
|
|
||||||
from
|
|
||||||
(select
|
|
||||||
packet_id,
|
|
||||||
way,
|
|
||||||
min(latency) as lat
|
|
||||||
from xx
|
|
||||||
group by packet_id,way) as r,
|
|
||||||
xx as s
|
|
||||||
where
|
|
||||||
s.packet_id = r.packet_id and
|
|
||||||
s.way = r.way and
|
|
||||||
r.lat = s.latency")
|
|
||||||
|
|
||||||
xx3 <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,flag,way from xx group by packet_id,way,flag")
|
|
||||||
xx3$flag <- factor(xx3$flag)
|
|
||||||
ggplot(data=xx3, aes(x=lat, group=flag, color=flag)) +
|
|
||||||
stat_ecdf(pad = FALSE) +
|
|
||||||
geom_vline(xintercept = 200) +
|
|
||||||
geom_vline(xintercept = 400) +
|
|
||||||
coord_cartesian(xlim=c(0,1200)) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
xy <- read.csv("../../donar-res/tmp_light/light.csv")
|
|
||||||
xz <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way,conf,run from xy where packet_id > 50 and packet_id < 7400 group by packet_id,way,conf,run")
|
|
||||||
xz$conf <- factor(xz$conf)
|
|
||||||
ggplot(data=xz, aes(x=lat, group=conf, color=conf)) +
|
|
||||||
stat_ecdf(pad = FALSE) +
|
|
||||||
geom_vline(xintercept = 200) +
|
|
||||||
geom_vline(xintercept = 400) +
|
|
||||||
coord_cartesian(xlim=c(0,600)) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
ggplot(data=xz, aes(y=lat, x=conf)) +
|
|
||||||
geom_violin(scale='width') +
|
|
||||||
geom_boxplot(width=0.1, outlier.shape=NA) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
xa <- sqldf("select packet_id,1.0 * MIN(latency) / 1000.0 as lat,way,conf,run from xy group by packet_id,way,conf,run")
|
|
||||||
ggplot(data=sqldf("select * from xa where run='out/I0mj7t5OJu9DGMq1-6'"), aes(x=packet_id, y=lat, color=way)) +
|
|
||||||
geom_line() +
|
|
||||||
geom_hline(yintercept=400) +
|
|
||||||
geom_hline(yintercept=200) +
|
|
||||||
coord_cartesian(ylim=c(0,1000)) +
|
|
||||||
#geom_point(aes(shape=conf)) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
xb <- read.csv("../../donar-res/tmp_light/v1.csv")
|
|
||||||
xb$flag <- factor(xb$flag)
|
|
||||||
xb$link_id <- factor(xb$link_id)
|
|
||||||
xc <- sqldf("select *, 1.0 * latency / 1000.0 as lat from xb where vanilla = 1 and link_id = 5")
|
|
||||||
ggplot(data=xc, aes(x=packet_id, y=lat, color=link_id:way)) +
|
|
||||||
coord_cartesian(ylim=c(100,600)) +
|
|
||||||
geom_line() +
|
|
||||||
#geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
ggplot(data=sqldf("select
|
|
||||||
packet_id,way,latency,1.0 * MIN(latency) / 1000 as lat
|
|
||||||
from xb
|
|
||||||
group by packet_id,way"), aes(x=packet_id, y=lat, color=way)) +
|
|
||||||
coord_cartesian(ylim=c(100,600)) +
|
|
||||||
geom_line() +
|
|
||||||
#geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
|
|
||||||
xd <- sqldf("
|
|
||||||
select
|
|
||||||
lat,
|
|
||||||
xb.latency,
|
|
||||||
vanilla,
|
|
||||||
xb.packet_id,
|
|
||||||
xb.way,
|
|
||||||
link_id,
|
|
||||||
flag
|
|
||||||
from
|
|
||||||
(select
|
|
||||||
packet_id,way,latency,1.0 * MIN(latency) / 1000 as lat
|
|
||||||
from xb
|
|
||||||
group by packet_id,way) nn,
|
|
||||||
xb
|
|
||||||
where
|
|
||||||
xb.latency = nn.latency and
|
|
||||||
xb.packet_id = nn.packet_id and
|
|
||||||
xb.way = nn.way
|
|
||||||
")
|
|
||||||
ggplot(data=xd, aes(x=packet_id, y=lat, color=link_id)) +
|
|
||||||
#coord_cartesian(ylim=c(0,1000),xlim=c(3200,3500)) +
|
|
||||||
geom_line() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
ggplot(data=sqldf("select * from xb where vanilla = 1 and way= 'client'"), aes(x=packet_id, y=link_id, color=flag)) +
|
|
||||||
geom_point() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
torbw <- read.csv("../../donar-res/tmp_light/tor_bw.csv")
|
|
||||||
torbw <- sqldf("select *, 1.0 * latency / 1000.0 as lat from torbw")
|
|
||||||
|
|
||||||
torbw2 <- torbw %>%
|
|
||||||
dplyr::group_by(rate) %>%
|
|
||||||
dplyr::summarise(
|
|
||||||
third = quantile(lat,0.75),
|
|
||||||
median = median(lat)
|
|
||||||
)
|
|
||||||
|
|
||||||
coefs <- coef(lm(median ~ rate, data = torbw2))
|
|
||||||
coefs2 <- coef(lm(third ~ rate, data = torbw2))
|
|
||||||
|
|
||||||
|
|
||||||
lats <- ggplot(torbw, aes(x=rate,y=lat, group=rate)) +
|
|
||||||
coord_cartesian(ylim=c(0,650)) +
|
|
||||||
geom_hline(yintercept=400, linetype="dashed") +
|
|
||||||
geom_hline(yintercept=200, linetype="dashed") +
|
|
||||||
ylab("latency (ms)") +
|
|
||||||
xlab("packets/sec") +
|
|
||||||
geom_abline(intercept = coefs[1], slope = coefs[2]) +
|
|
||||||
geom_abline(intercept = coefs2[1], slope = coefs2[2]) +
|
|
||||||
geom_boxplot(outlier.shape = NA) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
lats + ggsave("tor_bw.png", dpi=300, dev='png', height=8, width=15, units="cm")
|
|
||||||
|
|
||||||
lightlinks <- read.csv("../../donar-res/tmp_light/lightning-links.csv")
|
|
|
@ -1,431 +0,0 @@
|
||||||
library(ggplot2)
|
|
||||||
library(sqldf)
|
|
||||||
library(plyr)
|
|
||||||
library(cowplot)
|
|
||||||
|
|
||||||
thunder_ms <- read.csv("thunder_22.csv")
|
|
||||||
thunder_ms <- sqldf("select run,ident,jmax,links,latency, CAST(latency as real) / 1000. as lat_ms from thunder_ms")
|
|
||||||
thunder_ms$links <- as.factor(thunder_ms$links)
|
|
||||||
thunder_ms$jmax <- as.factor(thunder_ms$jmax)
|
|
||||||
|
|
||||||
ggplot(data = thunder_ms, aes(x = links, y=lat_ms)) +
|
|
||||||
#geom_violin() +
|
|
||||||
geom_boxplot(outlier.size=0.1) +
|
|
||||||
geom_hline(yintercept=800, color = "red", linetype="dashed") +
|
|
||||||
geom_hline(yintercept=400, color = "DarkGreen") +
|
|
||||||
annotate("text", x=7.1, y=650, label= "high", color="DarkGreen") +
|
|
||||||
annotate("text", x=7, y=1200, label= "acceptable", color="red") +
|
|
||||||
coord_cartesian(xlim = c(1, 7), ylim = c(0, 1000)) +
|
|
||||||
#ylim(0,1000) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
#scale_y_log10() +
|
|
||||||
ylab("latency (ms)") +
|
|
||||||
xlab("links") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
v1 <- ggplot(data = thunder_ms, aes(x = jmax, y=lat_ms, fill=links)) +
|
|
||||||
#geom_violin() +
|
|
||||||
geom_boxplot(outlier.size=0.1) +
|
|
||||||
geom_hline(yintercept=800, color = "red", linetype="dashed") +
|
|
||||||
geom_hline(yintercept=400, color = "DarkGreen") +
|
|
||||||
annotate("text", x=7.1, y=650, label= "high", color="DarkGreen") +
|
|
||||||
annotate("text", x=7, y=1200, label= "acceptable", color="red") +
|
|
||||||
coord_cartesian(xlim = c(1, 7), ylim = c(0, 1000)) +
|
|
||||||
#ylim(0,1000) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
#scale_y_log10() +
|
|
||||||
ylab("latency (ms)") +
|
|
||||||
xlab("max allowed jitter") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
#v1 + ggsave("thunder_configure_ms.png", dpi=300, dev='png', height=5, width=15, units="cm")
|
|
||||||
|
|
||||||
thunder_rcv <- sqldf("select run,jmax,links,(9900-COUNT(latency)*1.0)/9900 as dlv from thunder_ms group by jmax,links,run")
|
|
||||||
thunder_rcv$jmax <- as.factor(thunder_rcv$jmax)
|
|
||||||
thunder_rcv$links <- as.factor(thunder_rcv$links)
|
|
||||||
v2 <- ggplot(data = thunder_rcv, aes(x = jmax, y=dlv, fill=links)) +
|
|
||||||
geom_boxplot(outlier.size=0.1) +
|
|
||||||
#geom_violin(scale='width') +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
#scale_y_log10(labels = scales::percent) +
|
|
||||||
ylab("dropped packets") +
|
|
||||||
xlab("max allowed jitter") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
thunder_bw <- read.csv("thunder_22_bw.csv")
|
|
||||||
thunder_bw <- sqldf("select run,jmax,links,udp_sent,udp_rcv,cells_sent,cells_rcv,1.0*cells_sent/udp_sent as sent_ratio,1.0*cells_rcv/udp_rcv as rcv_ratio from thunder_bw where udp_sent > 4000")
|
|
||||||
thunder_bw$jmax <- as.factor(thunder_bw$jmax)
|
|
||||||
thunder_bw$links <- as.factor(thunder_bw$links)
|
|
||||||
|
|
||||||
v3 <- ggplot(data = thunder_bw, aes(x = jmax, y=sent_ratio, fill=links)) +
|
|
||||||
geom_boxplot(outlier.size=0.1) +
|
|
||||||
#scale_y_log10() +
|
|
||||||
coord_cartesian(ylim = c(1,4)) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
ylab("bandwidth ratio") +
|
|
||||||
xlab("max allowed jitter") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
|
|
||||||
t1 <- plot_grid(v1, v2, v3, labels = c('A', 'B', 'C'), ncol=1)
|
|
||||||
t1 + ggsave("thunder_configure.png", dpi=300, dev='png', height=15, width=15, units="cm")
|
|
||||||
|
|
||||||
thunder_links <- read.csv("thunder_configure_20_links.csv")
|
|
||||||
links_down_at_least_once <- sqldf("select run,xp_time,link_id, COUNT(status) as downcount, SUM(delta) as elapsed from thunder_links where status='down' group by run,link_id,xp_time")
|
|
||||||
links_down_at_least_once2 <- sqldf("select row_number () OVER (PARTITION BY run ORDER BY elapsed DESC) sorting,run,link_id,downcount,elapsed,xp_time,1.0*elapsed/xp_time down_ratio from links_down_at_least_once")
|
|
||||||
links_down_at_least_once2$sorting <- as.factor(links_down_at_least_once2$sorting)
|
|
||||||
v4 <- ggplot(data = links_down_at_least_once2, aes(x = sorting, y=down_ratio)) +
|
|
||||||
#geom_violin() +
|
|
||||||
#geom_boxplot(width=0.2) +
|
|
||||||
#scale_y_log10() +
|
|
||||||
#scale_y_log10(labels = scales::percent) +
|
|
||||||
geom_bar(stat="summary") +
|
|
||||||
#scale_y_log10() +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
ylab("Cumulated downtime") +
|
|
||||||
xlab("Sorted links") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
downtime <- sqldf(
|
|
||||||
"
|
|
||||||
select sorting,1.0*duration/1000 as dur
|
|
||||||
from thunder_links as tl
|
|
||||||
inner join links_down_at_least_once2 as l2 on
|
|
||||||
tl.run = l2.run
|
|
||||||
and tl.link_id = l2.link_id
|
|
||||||
where will_change='True'
|
|
||||||
and status='down'")
|
|
||||||
|
|
||||||
v5 <- ggplot(data = downtime, aes(x=sorting, y=dur)) +
|
|
||||||
geom_violin() +
|
|
||||||
geom_boxplot(width=0.1, outlier.shape = NA) +
|
|
||||||
scale_y_log10() +
|
|
||||||
ylab("Downtime (in sec)") +
|
|
||||||
xlab("Sorted links") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
gobal_links <- sqldf(
|
|
||||||
"
|
|
||||||
select ts,run,durations_global,12-COUNT(status) as down_link_count,xp_time
|
|
||||||
from thunder_links
|
|
||||||
where will_change_global='True' and status='up' and durations_global > 0
|
|
||||||
group by ts,run,durations_global
|
|
||||||
")
|
|
||||||
|
|
||||||
down_group_ratio <- sqldf(
|
|
||||||
"
|
|
||||||
select run,1.0 * SUM(durations_global)/xp_time as down_ratio, down_link_count
|
|
||||||
from gobal_links
|
|
||||||
where down_link_count >= 0
|
|
||||||
group by run,down_link_count,xp_time
|
|
||||||
")
|
|
||||||
|
|
||||||
down_group_ratio$down_link_count <- as.factor(down_group_ratio$down_link_count)
|
|
||||||
v6 <- ggplot(data = down_group_ratio, aes(x=down_link_count, y=down_ratio)) +
|
|
||||||
geom_bar(stat="summary") +
|
|
||||||
#scale_y_log10() +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
ylab("Cumulated downtime") +
|
|
||||||
xlab("Number of links down at once") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
downtime_group <- sqldf(
|
|
||||||
"
|
|
||||||
select down_link_count, 1.0*durations_global/1000 as dur from gobal_links where down_link_count >= 0
|
|
||||||
")
|
|
||||||
downtime_group$down_link_count <- as.factor(downtime_group$down_link_count)
|
|
||||||
v7 <- ggplot(data = downtime_group, aes(x=down_link_count, y=dur)) +
|
|
||||||
geom_violin() +
|
|
||||||
geom_boxplot(width=0.1, outlier.shape = NA) +
|
|
||||||
scale_y_log10() +
|
|
||||||
ylab("Downtime (in sec)") +
|
|
||||||
xlab("Number of links down at once") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
t2 <- plot_grid(v4, v5, v6, v7, labels = c('A', 'B', 'C', 'D'), ncol=2)
|
|
||||||
t2 + ggsave("thunder_links.png", dpi=300, dev='png', height=12, width=15, units="cm")
|
|
||||||
|
|
||||||
latency_evol <- sqldf(
|
|
||||||
"
|
|
||||||
select sorting,lat_ms,ident,tm.jmax,tm.links
|
|
||||||
from
|
|
||||||
thunder_ms as tm,
|
|
||||||
(select run,jmax,links,row_number () OVER (ORDER BY links DESC) sorting from thunder_ms group by run,jmax,links ORDER BY links DESC limit 0,1) as sel_run
|
|
||||||
where
|
|
||||||
tm.run = sel_run.run and tm.jmax = sel_run.jmax and tm.links = sel_run.links
|
|
||||||
")
|
|
||||||
|
|
||||||
latency_evol$sorting <- as.factor(latency_evol$sorting)
|
|
||||||
v8 <- ggplot(data=latency_evol, aes(x=ident,y=lat_ms)) +
|
|
||||||
geom_line() +
|
|
||||||
xlab("Packet identifier") +
|
|
||||||
ylab("Latency (ms)") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
thunder_drop <- read.csv("thunder_configure_partial_drop.csv")
|
|
||||||
thunder_drop_2 <- sqldf("select run, packet_range, 1.0*count / 990 as packet_ratio, row_number() OVER (partition by packet_range order by run) sorting from thunder_drop where run LIKE '%-23' ")
|
|
||||||
#cats <- c("0-989","990-1979","1980-2969","2970-3959","3960-4949","4950-5939","5940-6929","6930-7919","7920-8909","8910-9899")
|
|
||||||
thunder_drop_2$packet_range <- as.factor(thunder_drop_2$packet_range)
|
|
||||||
thunder_drop_2$sorting <- as.factor(thunder_drop_2$sorting)
|
|
||||||
|
|
||||||
#thunder_drop_2$packet_range <- factor(
|
|
||||||
# mapvalues(thunder_drop_2$packet_range, cats, cats),
|
|
||||||
# levels = cats,
|
|
||||||
# ordered = TRUE)
|
|
||||||
|
|
||||||
v9 <- ggplot(data = thunder_drop_2, aes(x=packet_range, y=packet_ratio,fill=sorting)) +
|
|
||||||
geom_bar(stat="summary",position = "dodge") +
|
|
||||||
#grom_bar() +
|
|
||||||
#scale_y_log10() +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
ylab("Packets dropped") +
|
|
||||||
xlab("Packet identifier") +
|
|
||||||
labs(fill="Run") +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.key.size = unit(0.2, "cm"))
|
|
||||||
|
|
||||||
thunder_drop_burst <- read.csv("thunder_configure_partial_drop_burst.csv")
|
|
||||||
tdb_ag <- sqldf("select run,count,COUNT(count) as oc from thunder_drop_burst where run LIKE '%-23' group by run,count")
|
|
||||||
tdb_ag_2 <- sqldf(
|
|
||||||
"
|
|
||||||
select
|
|
||||||
td.run as r,
|
|
||||||
count,
|
|
||||||
oc,
|
|
||||||
total,
|
|
||||||
1.0 * oc / total as oc_ratio,
|
|
||||||
row_number() OVER (partition by count order by td.run) as sorting
|
|
||||||
from
|
|
||||||
tdb_ag as td,
|
|
||||||
(select run,SUM(oc) as total from tdb_ag group by run) as ag
|
|
||||||
where
|
|
||||||
td.run = ag.run
|
|
||||||
")
|
|
||||||
|
|
||||||
tdb_ag_2$sorting <- as.factor(tdb_ag_2$sorting)
|
|
||||||
tdb_ag_2$count <- as.factor(tdb_ag_2$count)
|
|
||||||
|
|
||||||
v10 <- ggplot(data = tdb_ag_2, aes(x=count, y=oc_ratio)) +
|
|
||||||
#geom_bar(stat="summary",position = "dodge") +
|
|
||||||
#scale_y_log10() +
|
|
||||||
geom_violin(scale='width') +
|
|
||||||
geom_boxplot(width=0.1, outlier.shape=NA) +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
ylab("% observed drops") +
|
|
||||||
xlab("Packets lost during the drop") +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
thunder_red <- read.csv("thunder_configure_partial_red.csv")
|
|
||||||
tred <- sqldf(
|
|
||||||
"
|
|
||||||
select
|
|
||||||
tr.run as r,
|
|
||||||
delivered_at_once,
|
|
||||||
1.0 * occur / total as occur_ratio,
|
|
||||||
occur,
|
|
||||||
total,
|
|
||||||
row_number() OVER (partition by delivered_at_once order by tr.run) as sorting
|
|
||||||
from
|
|
||||||
thunder_red tr,
|
|
||||||
(select run,SUM(occur) as total from thunder_red group by run) as ag
|
|
||||||
WHERE
|
|
||||||
tr.run LIKE '%-23'
|
|
||||||
and tr.run = ag.run
|
|
||||||
|
|
||||||
")
|
|
||||||
tred$sorting <- as.factor(tred$sorting)
|
|
||||||
tred$delivered_at_once <- as.factor(tred$delivered_at_once)
|
|
||||||
v11 <- ggplot(data = tred, aes(x=delivered_at_once, y=occur_ratio)) +
|
|
||||||
#geom_bar(stat="summary",position = "dodge") +
|
|
||||||
geom_violin(scale='width') +
|
|
||||||
xlab('Fresh packets per cell') +
|
|
||||||
ylab('% of received cells') +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
geom_boxplot(width=0.1, outlier.shape=NA) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
t3 <- plot_grid(v8, v9, v10, v11, labels = c('A', 'B', 'C', 'D'), ncol=2)
|
|
||||||
t3 + ggsave("thunder_packets.png", dpi=300, dev='png', height=12, width=15, units="cm")
|
|
||||||
|
|
||||||
tor_multi_lat <- read.csv("tor_just_many_latencies.csv")
|
|
||||||
tor_multi_lat_100 <- read.csv("tor_just_many_latencies_100.csv")
|
|
||||||
|
|
||||||
tor_drop <- sqldf(
|
|
||||||
"
|
|
||||||
select run,conf,1.0*MAX(ident)/33 as last_one,'33' as pkt_sec from tor_multi_lat group by run,conf
|
|
||||||
union
|
|
||||||
select run,conf,1.0*MAX(ident)/10 as last_one, '10' as pkt_sec from tor_multi_lat_100 group by run,conf
|
|
||||||
")
|
|
||||||
|
|
||||||
v12 <- ggplot(data=tor_drop,aes(x=last_one, linetype=factor(pkt_sec, levels=c('33', '10')))) +
|
|
||||||
stat_ecdf(pad = FALSE) +
|
|
||||||
ylab("% broken links") +
|
|
||||||
labs(linetype="Pkt/sec") +
|
|
||||||
coord_cartesian(xlim = c(0, 300), ylim = c(0,0.5)) +
|
|
||||||
scale_y_continuous(labels = scales::percent) +
|
|
||||||
xlab("Elapsed time (sec)") +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
v12 + ggsave("broken.png", dpi=300, dev='png', height=5, width=15, units="cm")
|
|
||||||
|
|
||||||
library(dplyr)
|
|
||||||
library(purrr)
|
|
||||||
library(tidyr)
|
|
||||||
|
|
||||||
tor_lat_stack <- tor_multi_lat %>%
|
|
||||||
dplyr::mutate(latency = latency / 1000) %>%
|
|
||||||
dplyr::group_by(run,conf) %>%
|
|
||||||
dplyr::summarise(
|
|
||||||
id = paste(first(run),first(conf)),
|
|
||||||
P0 = min(latency),
|
|
||||||
P25 = quantile(latency,0.25) - min(latency),
|
|
||||||
P50 = median(latency) - quantile(latency,0.25),
|
|
||||||
P75 = quantile(latency,0.75) - median(latency),
|
|
||||||
P95 = quantile(latency,0.95) - quantile(latency,0.75),
|
|
||||||
P99 = quantile(latency,0.99) - quantile(latency,0.95),
|
|
||||||
P100 = max(latency) - quantile(latency,0.99),
|
|
||||||
max_sort = max(latency),
|
|
||||||
median_sort = median(latency)
|
|
||||||
)
|
|
||||||
|
|
||||||
tor_lat_stack <- gather(tor_lat_stack, 'P0', 'P100', 'P25', 'P50', 'P75', 'P95', 'P99', key="quantile_name", value="quantile_value")
|
|
||||||
v13 <- ggplot(tor_lat_stack, aes(
|
|
||||||
x=reorder(id,median_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
|
||||||
) +
|
|
||||||
coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="Percentile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"))
|
|
||||||
|
|
||||||
v14 <- ggplot(tor_lat_stack, aes(
|
|
||||||
x=reorder(id,median_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
|
||||||
) +
|
|
||||||
#coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="Percentile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(),axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"))
|
|
||||||
|
|
||||||
v15 <- ggplot(tor_lat_stack, aes(
|
|
||||||
x=reorder(id,max_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
|
||||||
) +
|
|
||||||
coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="Percentile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"), plot.tag.position='top')
|
|
||||||
|
|
||||||
v16 <- ggplot(tor_lat_stack, aes(
|
|
||||||
x=reorder(id,max_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
|
||||||
) +
|
|
||||||
#coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="Percentile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"),plot.tag.position='bottom')
|
|
||||||
|
|
||||||
t4 <- plot_grid(v16, v15, v14, v13, align = "v", axis = "l", labels = c('A', 'B', 'C', 'D'), ncol=1)
|
|
||||||
t4 + ggsave("tor_30ms.pdf", dpi=150, dev='pdf', height=15, width=12, units="cm")
|
|
||||||
|
|
||||||
|
|
||||||
tor_lat_stack_100 <- tor_multi_lat_100 %>%
|
|
||||||
dplyr::mutate(latency = latency / 1000) %>%
|
|
||||||
dplyr::group_by(run,conf) %>%
|
|
||||||
dplyr::summarise(
|
|
||||||
id = paste(first(run),first(conf)),
|
|
||||||
min = min(latency),
|
|
||||||
q25 = quantile(latency,0.25) - min(latency),
|
|
||||||
median = median(latency) - quantile(latency,0.25),
|
|
||||||
q75 = quantile(latency,0.75) - median(latency),
|
|
||||||
q95 = quantile(latency,0.95) - quantile(latency,0.75),
|
|
||||||
q99 = quantile(latency,0.99) - quantile(latency,0.95),
|
|
||||||
max = max(latency) - quantile(latency,0.99),
|
|
||||||
max_sort = max(latency),
|
|
||||||
median_sort = median(latency)
|
|
||||||
)
|
|
||||||
|
|
||||||
tor_lat_stack_100 <- gather(tor_lat_stack_100, 'min', 'max', 'q25', 'median', 'q75', 'q95', 'q99', key="quantile_name", value="quantile_value")
|
|
||||||
v17 <- ggplot(tor_lat_stack_100, aes(
|
|
||||||
x=reorder(id,median_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
|
||||||
) +
|
|
||||||
coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="quantile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"))
|
|
||||||
|
|
||||||
v18 <- ggplot(tor_lat_stack_100, aes(
|
|
||||||
x=reorder(id,median_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
|
||||||
) +
|
|
||||||
#coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="quantile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(),axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"))
|
|
||||||
|
|
||||||
v19 <- ggplot(tor_lat_stack_100, aes(
|
|
||||||
x=reorder(id,max_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
|
||||||
) +
|
|
||||||
coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="quantile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"), plot.tag.position='top')
|
|
||||||
|
|
||||||
v20 <- ggplot(tor_lat_stack_100, aes(
|
|
||||||
x=reorder(id,max_sort),
|
|
||||||
y=quantile_value,
|
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
|
||||||
) +
|
|
||||||
#coord_cartesian(ylim = c(0,1500)) +
|
|
||||||
labs(fill="quantile")+
|
|
||||||
xlab("Tor circuits") +
|
|
||||||
ylab("RTT (ms)") +
|
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
|
||||||
scale_fill_grey() +
|
|
||||||
theme_classic() +
|
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"),plot.tag.position='bottom')
|
|
||||||
|
|
||||||
t5 <- plot_grid(v20, v19, v18, v17, labels = c('A', 'B', 'C', 'D'), ncol=1)
|
|
||||||
t5 + ggsave("tor_100ms.png", dpi=300, dev='png', height=20, width=15, units="cm")
|
|
||||||
|
|
246814
r/thunder_configure_15.csv
246814
r/thunder_configure_15.csv
File diff suppressed because it is too large
Load diff
|
@ -1,29 +0,0 @@
|
||||||
run,jmax,links,udp_sent,udp_rcv,cells_sent,cells_rcv
|
|
||||||
NdTagQwY9eZOOUVL,50,2,6606,9971,10452,7991
|
|
||||||
NdTagQwY9eZOOUVL,150,2,8917,9979,10259,9453
|
|
||||||
NdTagQwY9eZOOUVL,200,2,9776,9987,10020,9979
|
|
||||||
NdTagQwY9eZOOUVL,250,2,5472,9938,10628,11511
|
|
||||||
NdTagQwY9eZOOUVL,350,2,9899,10028,9923,9909
|
|
||||||
NdTagQwY9eZOOUVL,450,2,9905,9912,9912,9908
|
|
||||||
NdTagQwY9eZOOUVL,550,2,9898,9926,9911,9902
|
|
||||||
NdTagQwY9eZOOUVL,50,4,5724,9909,14779,7646
|
|
||||||
NdTagQwY9eZOOUVL,150,4,9076,9909,10397,10379
|
|
||||||
NdTagQwY9eZOOUVL,200,4,9728,9969,9924,15849
|
|
||||||
NdTagQwY9eZOOUVL,250,4,9314,9995,10553,15598
|
|
||||||
NdTagQwY9eZOOUVL,350,4,9863,9968,10061,10571
|
|
||||||
NdTagQwY9eZOOUVL,450,4,9873,9920,10060,15227
|
|
||||||
NdTagQwY9eZOOUVL,550,4,9909,9971,9919,9920
|
|
||||||
NdTagQwY9eZOOUVL,50,6,8240,9918,18821,16632
|
|
||||||
NdTagQwY9eZOOUVL,150,6,7856,9910,10960,11897
|
|
||||||
NdTagQwY9eZOOUVL,200,6,8303,9925,10691,12092
|
|
||||||
NdTagQwY9eZOOUVL,250,6,9872,9914,9976,10320
|
|
||||||
NdTagQwY9eZOOUVL,350,6,9793,9907,9935,9919
|
|
||||||
NdTagQwY9eZOOUVL,450,6,9851,9911,9931,9920
|
|
||||||
NdTagQwY9eZOOUVL,550,6,9885,9909,9909,9906
|
|
||||||
NdTagQwY9eZOOUVL,50,8,4106,9966,21765,12422
|
|
||||||
NdTagQwY9eZOOUVL,150,8,9207,9907,10690,10689
|
|
||||||
NdTagQwY9eZOOUVL,200,8,9448,9920,10451,20147
|
|
||||||
NdTagQwY9eZOOUVL,250,8,8806,9911,10361,10289
|
|
||||||
NdTagQwY9eZOOUVL,350,8,9828,9909,9959,9964
|
|
||||||
NdTagQwY9eZOOUVL,450,8,9893,9910,9911,9961
|
|
||||||
NdTagQwY9eZOOUVL,550,8,8008,10031,9917,23757
|
|
|
File diff suppressed because it is too large
Load diff
3003226
r/thunder_configure_16.csv
3003226
r/thunder_configure_16.csv
File diff suppressed because it is too large
Load diff
|
@ -1,290 +0,0 @@
|
||||||
run,jmax,links,udp_sent,udp_rcv,cells_sent,cells_rcv
|
|
||||||
58XX8CuIDxTTOSE8,50,2,9039,9911,11176,10672
|
|
||||||
58XX8CuIDxTTOSE8,150,2,9483,10028,9921,9950
|
|
||||||
58XX8CuIDxTTOSE8,200,2,9677,9918,11182,10289
|
|
||||||
58XX8CuIDxTTOSE8,250,2,9911,9919,10160,9966
|
|
||||||
58XX8CuIDxTTOSE8,350,2,9909,9971,9914,9910
|
|
||||||
58XX8CuIDxTTOSE8,450,2,9874,9981,10039,10030
|
|
||||||
58XX8CuIDxTTOSE8,550,2,9863,9909,9958,9936
|
|
||||||
58XX8CuIDxTTOSE8,50,4,6277,10209,14508,9523
|
|
||||||
58XX8CuIDxTTOSE8,150,4,8863,9913,10133,11326
|
|
||||||
58XX8CuIDxTTOSE8,200,4,9443,9916,11711,14180
|
|
||||||
58XX8CuIDxTTOSE8,250,4,9536,9909,9980,9929
|
|
||||||
58XX8CuIDxTTOSE8,350,4,9892,9910,9913,9914
|
|
||||||
58XX8CuIDxTTOSE8,450,4,9908,9909,9910,9910
|
|
||||||
58XX8CuIDxTTOSE8,550,4,9904,10206,9998,10436
|
|
||||||
58XX8CuIDxTTOSE8,50,6,4227,9976,17664,10025
|
|
||||||
58XX8CuIDxTTOSE8,150,6,5996,9976,12582,17163
|
|
||||||
58XX8CuIDxTTOSE8,200,6,9797,9911,10404,10846
|
|
||||||
58XX8CuIDxTTOSE8,250,6,9854,9909,9986,10003
|
|
||||||
58XX8CuIDxTTOSE8,350,6,9610,9909,9909,9891
|
|
||||||
58XX8CuIDxTTOSE8,450,6,9385,9912,9938,9852
|
|
||||||
58XX8CuIDxTTOSE8,550,6,7899,10207,9933,19750
|
|
||||||
58XX8CuIDxTTOSE8,50,8,5914,9908,20865,9483
|
|
||||||
58XX8CuIDxTTOSE8,150,8,7810,9911,12721,12627
|
|
||||||
58XX8CuIDxTTOSE8,200,8,9706,9924,10860,22358
|
|
||||||
58XX8CuIDxTTOSE8,250,8,9845,9908,10000,10002
|
|
||||||
58XX8CuIDxTTOSE8,350,8,9450,9907,10090,10058
|
|
||||||
58XX8CuIDxTTOSE8,450,8,9904,9907,9907,9907
|
|
||||||
58XX8CuIDxTTOSE8,550,8,9884,9910,9925,9923
|
|
||||||
cnXklO5KAFAUWRxz,50,2,7026,9909,10592,8620
|
|
||||||
cnXklO5KAFAUWRxz,150,2,9806,9908,11206,11265
|
|
||||||
cnXklO5KAFAUWRxz,200,2,9906,10211,9914,9914
|
|
||||||
cnXklO5KAFAUWRxz,250,2,9906,9909,9953,9954
|
|
||||||
cnXklO5KAFAUWRxz,350,2,9822,9910,9941,10035
|
|
||||||
cnXklO5KAFAUWRxz,450,2,9904,9912,10078,10082
|
|
||||||
cnXklO5KAFAUWRxz,550,2,9905,9913,9936,9927
|
|
||||||
cnXklO5KAFAUWRxz,50,4,5399,9971,15011,7741
|
|
||||||
cnXklO5KAFAUWRxz,150,4,9378,9911,10062,9816
|
|
||||||
cnXklO5KAFAUWRxz,200,4,9846,9907,9946,9939
|
|
||||||
cnXklO5KAFAUWRxz,250,4,9448,9913,10066,9997
|
|
||||||
cnXklO5KAFAUWRxz,350,4,8155,10252,10063,15847
|
|
||||||
cnXklO5KAFAUWRxz,450,4,9317,9972,9965,15826
|
|
||||||
cnXklO5KAFAUWRxz,550,4,9906,9967,10065,10036
|
|
||||||
cnXklO5KAFAUWRxz,50,6,6357,9907,19379,9334
|
|
||||||
cnXklO5KAFAUWRxz,150,6,8830,9908,11176,11059
|
|
||||||
cnXklO5KAFAUWRxz,200,6,9770,10027,10537,19767
|
|
||||||
cnXklO5KAFAUWRxz,250,6,8186,9911,10089,9817
|
|
||||||
cnXklO5KAFAUWRxz,350,6,8954,9910,9950,10019
|
|
||||||
cnXklO5KAFAUWRxz,450,6,9843,9913,9968,9962
|
|
||||||
cnXklO5KAFAUWRxz,550,6,9760,9908,9925,9931
|
|
||||||
cnXklO5KAFAUWRxz,50,8,6430,9908,18849,13299
|
|
||||||
cnXklO5KAFAUWRxz,150,8,6016,10209,12259,21940
|
|
||||||
cnXklO5KAFAUWRxz,200,8,9705,9906,10527,10663
|
|
||||||
cnXklO5KAFAUWRxz,250,8,9654,9969,9943,23761
|
|
||||||
cnXklO5KAFAUWRxz,350,8,9871,9911,9945,9990
|
|
||||||
cnXklO5KAFAUWRxz,450,8,9891,9910,9937,9938
|
|
||||||
cnXklO5KAFAUWRxz,550,8,9850,9908,9914,9914
|
|
||||||
dRMZI84sJ2sF2Jda,50,2,9910,9913,11889,11892
|
|
||||||
dRMZI84sJ2sF2Jda,150,2,9900,9972,11220,11669
|
|
||||||
dRMZI84sJ2sF2Jda,200,2,9887,9967,9975,10007
|
|
||||||
dRMZI84sJ2sF2Jda,250,2,9903,9910,9919,9917
|
|
||||||
dRMZI84sJ2sF2Jda,350,2,9909,9909,9909,9911
|
|
||||||
dRMZI84sJ2sF2Jda,450,2,9909,9912,9910,9915
|
|
||||||
dRMZI84sJ2sF2Jda,550,2,9910,9910,9910,9910
|
|
||||||
dRMZI84sJ2sF2Jda,50,4,3191,9908,15358,4681
|
|
||||||
dRMZI84sJ2sF2Jda,150,4,8190,9921,10984,11846
|
|
||||||
dRMZI84sJ2sF2Jda,200,4,9770,9909,10570,10565
|
|
||||||
dRMZI84sJ2sF2Jda,250,4,9634,9969,10852,15755
|
|
||||||
dRMZI84sJ2sF2Jda,350,4,9566,9911,9928,10318
|
|
||||||
dRMZI84sJ2sF2Jda,450,4,9905,9965,9905,9905
|
|
||||||
dRMZI84sJ2sF2Jda,550,4,9907,9910,9917,9917
|
|
||||||
dRMZI84sJ2sF2Jda,50,6,6894,9909,13352,12446
|
|
||||||
dRMZI84sJ2sF2Jda,150,6,8879,9910,11575,11083
|
|
||||||
dRMZI84sJ2sF2Jda,200,6,9487,9915,10115,12589
|
|
||||||
dRMZI84sJ2sF2Jda,250,6,9239,9969,10415,19668
|
|
||||||
dRMZI84sJ2sF2Jda,350,6,9511,9973,9933,19791
|
|
||||||
dRMZI84sJ2sF2Jda,450,6,9840,9912,9913,9901
|
|
||||||
dRMZI84sJ2sF2Jda,550,6,9106,9908,9909,9773
|
|
||||||
dRMZI84sJ2sF2Jda,50,8,7907,9973,12705,19528
|
|
||||||
dRMZI84sJ2sF2Jda,150,8,9511,9908,10312,10991
|
|
||||||
dRMZI84sJ2sF2Jda,200,8,9221,9910,10547,10845
|
|
||||||
dRMZI84sJ2sF2Jda,250,8,9832,9967,9998,23654
|
|
||||||
dRMZI84sJ2sF2Jda,350,8,9816,10210,10338,23752
|
|
||||||
dRMZI84sJ2sF2Jda,450,8,9806,9910,9945,9938
|
|
||||||
dRMZI84sJ2sF2Jda,550,8,9479,9915,9934,9780
|
|
||||||
i36cjxY4LgBTzaPn,50,2,5294,9912,10774,7321
|
|
||||||
i36cjxY4LgBTzaPn,150,2,9919,9927,11844,11877
|
|
||||||
i36cjxY4LgBTzaPn,200,2,9904,9968,9916,9918
|
|
||||||
i36cjxY4LgBTzaPn,250,2,9882,9974,10513,11878
|
|
||||||
i36cjxY4LgBTzaPn,350,2,9911,9914,9916,9914
|
|
||||||
i36cjxY4LgBTzaPn,450,2,9913,9973,9916,9915
|
|
||||||
i36cjxY4LgBTzaPn,550,2,9878,9910,10177,10168
|
|
||||||
i36cjxY4LgBTzaPn,50,4,5497,9910,15070,8179
|
|
||||||
i36cjxY4LgBTzaPn,150,4,9468,9909,14468,13778
|
|
||||||
i36cjxY4LgBTzaPn,200,4,9374,9909,10050,10102
|
|
||||||
i36cjxY4LgBTzaPn,250,4,8801,9907,9973,10365
|
|
||||||
i36cjxY4LgBTzaPn,350,4,9906,9910,9912,9912
|
|
||||||
i36cjxY4LgBTzaPn,450,4,9905,10029,9935,15844
|
|
||||||
i36cjxY4LgBTzaPn,550,4,9905,9972,9951,9948
|
|
||||||
i36cjxY4LgBTzaPn,50,6,6923,9969,14094,13169
|
|
||||||
i36cjxY4LgBTzaPn,150,6,9742,9905,10702,10647
|
|
||||||
i36cjxY4LgBTzaPn,200,6,8583,9910,10423,10623
|
|
||||||
i36cjxY4LgBTzaPn,250,6,9752,9967,10227,19778
|
|
||||||
i36cjxY4LgBTzaPn,350,6,9428,9909,10258,10350
|
|
||||||
i36cjxY4LgBTzaPn,450,6,9605,9908,9922,9853
|
|
||||||
i36cjxY4LgBTzaPn,550,6,9892,9907,9907,9906
|
|
||||||
i36cjxY4LgBTzaPn,50,8,3164,10214,15766,14706
|
|
||||||
i36cjxY4LgBTzaPn,150,8,7449,9926,13069,21981
|
|
||||||
i36cjxY4LgBTzaPn,200,8,9634,9906,10295,10508
|
|
||||||
i36cjxY4LgBTzaPn,250,8,9017,9968,12976,22056
|
|
||||||
i36cjxY4LgBTzaPn,350,8,9899,9907,9967,9972
|
|
||||||
i36cjxY4LgBTzaPn,450,8,9869,9907,9954,9964
|
|
||||||
i36cjxY4LgBTzaPn,550,8,9814,9966,9908,23770
|
|
||||||
JxaBExeiRd2ukUhi,50,2,9831,9910,11877,11796
|
|
||||||
JxaBExeiRd2ukUhi,150,2,9830,9967,9939,9949
|
|
||||||
JxaBExeiRd2ukUhi,200,2,9567,9922,10255,9903
|
|
||||||
JxaBExeiRd2ukUhi,250,2,9900,9914,10061,10042
|
|
||||||
JxaBExeiRd2ukUhi,350,2,9905,9972,10137,10155
|
|
||||||
JxaBExeiRd2ukUhi,450,2,9910,9970,10184,10132
|
|
||||||
JxaBExeiRd2ukUhi,550,2,9903,9927,9913,9904
|
|
||||||
JxaBExeiRd2ukUhi,50,4,4313,9971,14816,6982
|
|
||||||
JxaBExeiRd2ukUhi,150,4,8660,9909,10254,10406
|
|
||||||
JxaBExeiRd2ukUhi,200,4,9729,9907,9928,10039
|
|
||||||
JxaBExeiRd2ukUhi,250,4,9833,9967,9952,9948
|
|
||||||
JxaBExeiRd2ukUhi,350,4,9862,10206,9985,9956
|
|
||||||
JxaBExeiRd2ukUhi,450,4,9900,9906,9938,9939
|
|
||||||
JxaBExeiRd2ukUhi,550,4,9906,9907,9911,9908
|
|
||||||
JxaBExeiRd2ukUhi,50,6,7987,10210,15984,16321
|
|
||||||
JxaBExeiRd2ukUhi,150,6,6258,9969,12181,18495
|
|
||||||
JxaBExeiRd2ukUhi,200,6,9628,9911,9969,10396
|
|
||||||
JxaBExeiRd2ukUhi,250,6,8990,9934,10311,17020
|
|
||||||
JxaBExeiRd2ukUhi,350,6,7819,9912,10052,9506
|
|
||||||
JxaBExeiRd2ukUhi,450,6,9781,9913,9970,9960
|
|
||||||
JxaBExeiRd2ukUhi,550,6,9756,9967,9925,19802
|
|
||||||
JxaBExeiRd2ukUhi,50,8,5948,9906,19597,12569
|
|
||||||
JxaBExeiRd2ukUhi,150,8,9698,9907,11440,11475
|
|
||||||
JxaBExeiRd2ukUhi,200,8,9690,9970,11162,23568
|
|
||||||
JxaBExeiRd2ukUhi,250,8,8804,9927,10826,12669
|
|
||||||
JxaBExeiRd2ukUhi,350,8,9429,9968,10002,23716
|
|
||||||
JxaBExeiRd2ukUhi,450,8,9852,9911,9919,9920
|
|
||||||
JxaBExeiRd2ukUhi,550,8,9673,9970,9933,23722
|
|
||||||
MdVXNUUYf2O820VO,50,2,7286,9910,10516,8978
|
|
||||||
MdVXNUUYf2O820VO,150,2,7408,9972,10252,10893
|
|
||||||
MdVXNUUYf2O820VO,200,2,9901,9909,9916,9937
|
|
||||||
MdVXNUUYf2O820VO,250,2,9902,9972,10307,10070
|
|
||||||
MdVXNUUYf2O820VO,350,2,9907,9909,9914,9913
|
|
||||||
MdVXNUUYf2O820VO,450,2,9823,9983,9986,10048
|
|
||||||
MdVXNUUYf2O820VO,550,2,9888,9908,9919,9922
|
|
||||||
MdVXNUUYf2O820VO,50,4,5948,9974,11431,11974
|
|
||||||
MdVXNUUYf2O820VO,150,4,8794,9909,11366,11689
|
|
||||||
MdVXNUUYf2O820VO,200,4,9415,9970,10702,15084
|
|
||||||
MdVXNUUYf2O820VO,250,4,9658,9967,10511,10431
|
|
||||||
MdVXNUUYf2O820VO,350,4,9870,9911,9932,9918
|
|
||||||
MdVXNUUYf2O820VO,450,4,9905,9968,9991,10002
|
|
||||||
MdVXNUUYf2O820VO,550,4,9906,10027,9916,9915
|
|
||||||
MdVXNUUYf2O820VO,50,6,5986,9969,16817,12607
|
|
||||||
MdVXNUUYf2O820VO,150,6,8450,10025,10471,10644
|
|
||||||
MdVXNUUYf2O820VO,200,6,9738,9908,10011,10021
|
|
||||||
MdVXNUUYf2O820VO,250,6,9713,9909,10277,10388
|
|
||||||
MdVXNUUYf2O820VO,350,6,8972,9979,10034,19342
|
|
||||||
MdVXNUUYf2O820VO,450,6,9372,10216,10138,17938
|
|
||||||
MdVXNUUYf2O820VO,550,6,9861,9966,9986,19301
|
|
||||||
MdVXNUUYf2O820VO,50,8,5884,9910,22953,11090
|
|
||||||
MdVXNUUYf2O820VO,150,8,8750,9908,11453,11263
|
|
||||||
MdVXNUUYf2O820VO,200,8,9874,9908,10049,10679
|
|
||||||
MdVXNUUYf2O820VO,250,8,9888,9910,10004,11330
|
|
||||||
MdVXNUUYf2O820VO,350,8,9892,9908,9935,9935
|
|
||||||
MdVXNUUYf2O820VO,450,8,9847,10035,9971,23757
|
|
||||||
MdVXNUUYf2O820VO,550,8,9252,9912,9946,9845
|
|
||||||
Nh4DvP2KogaVgfxv,250,8,9570,9908,10181,10205
|
|
||||||
Nh4DvP2KogaVgfxv,350,8,9879,9969,10199,23712
|
|
||||||
Nh4DvP2KogaVgfxv,450,8,9808,9908,9968,10061
|
|
||||||
Nh4DvP2KogaVgfxv,550,8,9738,9909,9920,9871
|
|
||||||
NqVYxVRzIMN5nlQR,200,8,8877,9907,10633,10426
|
|
||||||
NqVYxVRzIMN5nlQR,250,8,9819,9908,10079,10268
|
|
||||||
NqVYxVRzIMN5nlQR,350,8,9839,9908,9952,10171
|
|
||||||
NqVYxVRzIMN5nlQR,450,8,9892,10206,10052,23738
|
|
||||||
NqVYxVRzIMN5nlQR,550,8,9243,9907,9917,9853
|
|
||||||
QK2TkEk5CeNvIzoo,50,2,7719,9910,10474,9589
|
|
||||||
QK2TkEk5CeNvIzoo,150,2,9819,9966,10243,10204
|
|
||||||
QK2TkEk5CeNvIzoo,200,2,9885,9914,9912,9909
|
|
||||||
QK2TkEk5CeNvIzoo,250,2,9903,9967,9927,9919
|
|
||||||
QK2TkEk5CeNvIzoo,350,2,9906,9909,9910,10412
|
|
||||||
QK2TkEk5CeNvIzoo,450,2,9906,9912,9918,9921
|
|
||||||
QK2TkEk5CeNvIzoo,550,2,9897,9940,9914,9907
|
|
||||||
QK2TkEk5CeNvIzoo,50,4,4098,9909,15384,5428
|
|
||||||
QK2TkEk5CeNvIzoo,150,4,9492,9907,10091,9893
|
|
||||||
QK2TkEk5CeNvIzoo,200,4,9664,9910,9928,9890
|
|
||||||
QK2TkEk5CeNvIzoo,250,4,9534,9912,10801,10628
|
|
||||||
QK2TkEk5CeNvIzoo,350,4,9907,9909,9908,9908
|
|
||||||
QK2TkEk5CeNvIzoo,450,4,9906,9909,9910,9908
|
|
||||||
QK2TkEk5CeNvIzoo,550,4,9906,9913,9921,9919
|
|
||||||
QK2TkEk5CeNvIzoo,50,6,5043,10024,12953,15817
|
|
||||||
QK2TkEk5CeNvIzoo,150,6,7692,9923,10869,19529
|
|
||||||
QK2TkEk5CeNvIzoo,200,6,8079,9912,10516,10060
|
|
||||||
QK2TkEk5CeNvIzoo,250,6,9548,9911,10237,10334
|
|
||||||
QK2TkEk5CeNvIzoo,350,6,9898,9968,9909,9910
|
|
||||||
QK2TkEk5CeNvIzoo,450,6,9888,9922,10026,18265
|
|
||||||
QK2TkEk5CeNvIzoo,550,6,9468,9908,9908,9845
|
|
||||||
QK2TkEk5CeNvIzoo,50,8,4769,9907,21973,8120
|
|
||||||
QK2TkEk5CeNvIzoo,150,8,9337,9909,10801,10884
|
|
||||||
QK2TkEk5CeNvIzoo,200,8,9876,9907,10225,10475
|
|
||||||
QK2TkEk5CeNvIzoo,250,8,9853,9907,10543,10636
|
|
||||||
QK2TkEk5CeNvIzoo,350,8,9826,9924,10152,19277
|
|
||||||
QK2TkEk5CeNvIzoo,450,8,9882,9909,9909,9908
|
|
||||||
QK2TkEk5CeNvIzoo,550,8,9892,9907,9911,9911
|
|
||||||
rX6DvPBTZFF6rBKU,50,2,8637,9930,10847,10308
|
|
||||||
rX6DvPBTZFF6rBKU,150,2,9873,9920,11522,11831
|
|
||||||
rX6DvPBTZFF6rBKU,200,2,9911,9913,10642,11232
|
|
||||||
rX6DvPBTZFF6rBKU,250,2,9891,9912,10237,11721
|
|
||||||
rX6DvPBTZFF6rBKU,350,2,9668,9913,10138,10001
|
|
||||||
rX6DvPBTZFF6rBKU,450,2,9903,9912,10044,10044
|
|
||||||
rX6DvPBTZFF6rBKU,550,2,9919,9945,9919,9919
|
|
||||||
rX6DvPBTZFF6rBKU,50,4,5140,9913,14367,8030
|
|
||||||
rX6DvPBTZFF6rBKU,150,4,9756,9908,9970,10675
|
|
||||||
rX6DvPBTZFF6rBKU,200,4,9382,9914,9934,9706
|
|
||||||
rX6DvPBTZFF6rBKU,250,4,9642,9913,9940,10094
|
|
||||||
rX6DvPBTZFF6rBKU,350,4,8741,9977,9921,15849
|
|
||||||
rX6DvPBTZFF6rBKU,450,4,9906,9910,9931,9932
|
|
||||||
rX6DvPBTZFF6rBKU,550,4,9905,9907,9928,9929
|
|
||||||
rX6DvPBTZFF6rBKU,50,6,5488,9971,11742,16137
|
|
||||||
rX6DvPBTZFF6rBKU,150,6,7703,9957,12354,18646
|
|
||||||
rX6DvPBTZFF6rBKU,200,6,9705,9910,10046,10181
|
|
||||||
rX6DvPBTZFF6rBKU,250,6,9712,9909,9982,9973
|
|
||||||
rX6DvPBTZFF6rBKU,350,6,9879,10025,9922,19810
|
|
||||||
rX6DvPBTZFF6rBKU,450,6,9409,9910,9925,9893
|
|
||||||
rX6DvPBTZFF6rBKU,550,6,9693,9908,9911,9858
|
|
||||||
rX6DvPBTZFF6rBKU,50,8,5563,9909,18645,12367
|
|
||||||
rX6DvPBTZFF6rBKU,150,8,9800,9910,11029,11524
|
|
||||||
rX6DvPBTZFF6rBKU,200,8,8978,9909,10760,11837
|
|
||||||
rX6DvPBTZFF6rBKU,250,8,8347,9907,10160,10197
|
|
||||||
rX6DvPBTZFF6rBKU,350,8,9795,9911,9991,10536
|
|
||||||
rX6DvPBTZFF6rBKU,450,8,9829,9971,9953,23754
|
|
||||||
rX6DvPBTZFF6rBKU,550,8,9824,9923,10120,11284
|
|
||||||
vrDZxzhxDsHrsosk,50,2,9828,9909,11710,11810
|
|
||||||
vrDZxzhxDsHrsosk,150,2,9902,9951,11320,11107
|
|
||||||
vrDZxzhxDsHrsosk,200,2,9892,9966,9907,9904
|
|
||||||
vrDZxzhxDsHrsosk,250,2,9854,9917,10048,9909
|
|
||||||
vrDZxzhxDsHrsosk,350,2,9844,10027,9910,11871
|
|
||||||
vrDZxzhxDsHrsosk,450,2,9895,9908,9922,9924
|
|
||||||
vrDZxzhxDsHrsosk,550,2,9896,9909,9990,9980
|
|
||||||
vrDZxzhxDsHrsosk,50,4,6256,10028,14077,10299
|
|
||||||
vrDZxzhxDsHrsosk,150,4,8810,9909,10191,9766
|
|
||||||
vrDZxzhxDsHrsosk,200,4,8052,9970,10545,15252
|
|
||||||
vrDZxzhxDsHrsosk,250,4,9709,9908,9941,10097
|
|
||||||
vrDZxzhxDsHrsosk,350,4,9864,9909,9933,9921
|
|
||||||
vrDZxzhxDsHrsosk,450,4,9900,9909,10121,10036
|
|
||||||
vrDZxzhxDsHrsosk,550,4,9906,9913,9917,9913
|
|
||||||
vrDZxzhxDsHrsosk,50,6,6625,9914,18986,12153
|
|
||||||
vrDZxzhxDsHrsosk,150,6,9387,9908,10178,10299
|
|
||||||
vrDZxzhxDsHrsosk,200,6,9526,10040,10558,19567
|
|
||||||
vrDZxzhxDsHrsosk,250,6,9157,9909,10621,11068
|
|
||||||
vrDZxzhxDsHrsosk,350,6,9575,9906,9942,9934
|
|
||||||
vrDZxzhxDsHrsosk,450,6,9804,9909,9916,9933
|
|
||||||
vrDZxzhxDsHrsosk,550,6,9745,9909,10052,10056
|
|
||||||
vrDZxzhxDsHrsosk,50,8,5929,9909,19684,11089
|
|
||||||
vrDZxzhxDsHrsosk,150,8,9854,9907,10779,11324
|
|
||||||
vrDZxzhxDsHrsosk,200,8,9596,9971,11107,23702
|
|
||||||
vrDZxzhxDsHrsosk,250,8,9648,9910,10364,10792
|
|
||||||
vrDZxzhxDsHrsosk,350,8,9870,9909,9995,10323
|
|
||||||
vrDZxzhxDsHrsosk,450,8,9444,9915,9938,10230
|
|
||||||
vrDZxzhxDsHrsosk,550,8,9862,9909,9952,9946
|
|
||||||
XLgh1cZBhXVMJQ0v,50,2,9064,10209,11841,10835
|
|
||||||
XLgh1cZBhXVMJQ0v,150,2,9890,9912,9918,9903
|
|
||||||
XLgh1cZBhXVMJQ0v,200,2,9903,9909,9930,9926
|
|
||||||
XLgh1cZBhXVMJQ0v,250,2,9875,9921,9951,9980
|
|
||||||
XLgh1cZBhXVMJQ0v,350,2,9827,9914,9942,9894
|
|
||||||
XLgh1cZBhXVMJQ0v,450,2,9906,9914,10080,10086
|
|
||||||
XLgh1cZBhXVMJQ0v,550,2,9828,9916,10481,9945
|
|
||||||
XLgh1cZBhXVMJQ0v,50,4,3628,9920,15154,5618
|
|
||||||
XLgh1cZBhXVMJQ0v,150,4,8554,9912,11370,10961
|
|
||||||
XLgh1cZBhXVMJQ0v,200,4,8665,9911,10088,10150
|
|
||||||
XLgh1cZBhXVMJQ0v,250,4,9824,9909,9914,9981
|
|
||||||
XLgh1cZBhXVMJQ0v,350,4,9801,9909,10006,10031
|
|
||||||
XLgh1cZBhXVMJQ0v,450,4,9871,9921,9930,15668
|
|
||||||
XLgh1cZBhXVMJQ0v,550,4,9907,9907,9909,9907
|
|
||||||
XLgh1cZBhXVMJQ0v,50,6,5008,9970,16381,12986
|
|
||||||
XLgh1cZBhXVMJQ0v,150,6,9155,9907,10388,10636
|
|
||||||
XLgh1cZBhXVMJQ0v,200,6,9894,9907,9946,9975
|
|
||||||
XLgh1cZBhXVMJQ0v,250,6,9774,9911,9964,10457
|
|
||||||
XLgh1cZBhXVMJQ0v,350,6,9332,9910,9939,10269
|
|
||||||
XLgh1cZBhXVMJQ0v,450,6,9858,9968,9914,19779
|
|
||||||
XLgh1cZBhXVMJQ0v,550,6,9606,10028,10010,19634
|
|
||||||
XLgh1cZBhXVMJQ0v,50,8,6881,9920,21055,13458
|
|
||||||
XLgh1cZBhXVMJQ0v,150,8,9872,9905,10408,10413
|
|
||||||
XLgh1cZBhXVMJQ0v,200,8,9323,9908,10581,10535
|
|
||||||
XLgh1cZBhXVMJQ0v,250,8,9255,9920,10398,14495
|
|
||||||
XLgh1cZBhXVMJQ0v,350,8,7251,9970,10470,21946
|
|
||||||
XLgh1cZBhXVMJQ0v,450,8,9234,9972,9956,15887
|
|
||||||
XLgh1cZBhXVMJQ0v,550,8,9868,9910,9933,9924
|
|
|
1336017
r/thunder_configure_16_links.csv
1336017
r/thunder_configure_16_links.csv
File diff suppressed because it is too large
Load diff
|
@ -1,77 +0,0 @@
|
||||||
library(ggplot2)
|
|
||||||
library(sqldf)
|
|
||||||
library(plyr)
|
|
||||||
library(cowplot)
|
|
||||||
|
|
||||||
cellssec <- c("1","2","10","20")
|
|
||||||
tor_bw <- read.csv("tor_bw_2.csv")
|
|
||||||
tor_bw <- sqldf("select run,conf,latency, CAST(latency as real) / 1000. as lat_ms from tor_bw")
|
|
||||||
tor_bw$conf <- factor(
|
|
||||||
mapvalues(tor_bw$conf, c(0,1,2,3), cellssec),
|
|
||||||
levels = cellssec,
|
|
||||||
ordered = TRUE)
|
|
||||||
gbw1 <- ggplot(data = tor_bw, aes(x = conf, y=lat_ms)) +
|
|
||||||
geom_boxplot() +
|
|
||||||
ylim(0,1000) +
|
|
||||||
ylab("latency (in ms)") +
|
|
||||||
xlab("cells / second") +
|
|
||||||
theme_minimal()
|
|
||||||
|
|
||||||
gbw2 <- ggplot(data = tor_bw, aes(x = conf, y=lat_ms)) +
|
|
||||||
geom_boxplot() +
|
|
||||||
scale_y_log10() +
|
|
||||||
ylab("latency (in ms)") +
|
|
||||||
xlab("cells / second") +
|
|
||||||
theme_minimal()
|
|
||||||
|
|
||||||
new_values <- c("1","2","3","4","5","6","7","8","∞")
|
|
||||||
tor_guards <- read.csv("tor_guards.csv")
|
|
||||||
tor_guards <- sqldf("select run,conf,latency, CAST(latency as real) / 1000. as lat_ms from tor_guards")
|
|
||||||
tor_guards$conf <- factor(
|
|
||||||
mapvalues(tor_guards$conf, c(0,1,2,3,4,5,6,7,8), new_values),
|
|
||||||
levels = new_values,
|
|
||||||
ordered = TRUE)
|
|
||||||
|
|
||||||
gguard1 <- ggplot(data = tor_guards, aes(x = conf, y=lat_ms)) +
|
|
||||||
geom_boxplot() +
|
|
||||||
ylim(0,1000) +
|
|
||||||
ylab("latency (in ms)") +
|
|
||||||
xlab("guards") +
|
|
||||||
theme_minimal()
|
|
||||||
|
|
||||||
gguard2 <- ggplot(data = tor_guards, aes(x = conf, y=lat_ms)) +
|
|
||||||
geom_boxplot() +
|
|
||||||
scale_y_log10() +
|
|
||||||
ylab("latency (in ms)") +
|
|
||||||
xlab("guards") +
|
|
||||||
theme_minimal()
|
|
||||||
|
|
||||||
relay_count <- c("6","4","3")
|
|
||||||
tor_relays <- read.csv("tor_relays.csv")
|
|
||||||
tor_relays <- sqldf("select run,conf,latency, CAST(latency as real) / 1000. as lat_ms from tor_relays")
|
|
||||||
tor_relays$conf <- factor(
|
|
||||||
mapvalues(tor_relays$conf, c(0,1,2), relay_count),
|
|
||||||
levels = relay_count,
|
|
||||||
ordered = TRUE)
|
|
||||||
|
|
||||||
grelay1 <- ggplot(data = tor_relays, aes(x = conf, y=lat_ms)) +
|
|
||||||
geom_boxplot() +
|
|
||||||
ylim(0,1000) +
|
|
||||||
#scale_y_log10() +
|
|
||||||
ylab("latency (in ms)") +
|
|
||||||
xlab("relay count") +
|
|
||||||
theme_minimal()
|
|
||||||
|
|
||||||
grelay2 <- ggplot(data = tor_relays, aes(x = conf, y=lat_ms)) +
|
|
||||||
geom_boxplot() +
|
|
||||||
scale_y_log10() +
|
|
||||||
ylab("latency (in ms)") +
|
|
||||||
xlab("relay count") +
|
|
||||||
theme_minimal()
|
|
||||||
|
|
||||||
t1 <- plot_grid(gbw1, gguard1, grelay1, labels = c('D', 'E', 'F'), nrow=1, rel_widths = c(5, 8, 4))
|
|
||||||
t1 + ggsave("tor_latency_crop.png", dpi=300, dev='png', height=5, width=15, units="cm")
|
|
||||||
|
|
||||||
t2 <- plot_grid(gbw2, gguard2, grelay2, labels = c('A', 'B', 'C'), nrow=1, rel_widths = c(5, 8, 4))
|
|
||||||
t2 + ggsave("tor_latency_log.png", dpi=300, dev='png', height=5, width=15, units="cm")
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
Before Width: | Height: | Size: 36 KiB |
Binary file not shown.
Before Width: | Height: | Size: 37 KiB |
32
r/tor_owd.R
32
r/tor_owd.R
|
@ -1,32 +0,0 @@
|
||||||
library(ggplot2)
|
|
||||||
library(sqldf)
|
|
||||||
library(dplyr)
|
|
||||||
library(cowplot)
|
|
||||||
|
|
||||||
tor_owd <- read.csv("tor_owd.csv")
|
|
||||||
|
|
||||||
for (run_id in c(0:39)) {
|
|
||||||
print(run_id)
|
|
||||||
sel_owd <- filter(tor_owd, measure_type != "delta", measure_type != 'd_client_server', measure_type != 'd_server_client', measure_type != 'd_server_client_abs', measure_type != 'd_client_server_abs', run == paste("./out/nBV7DWLpj8WA6Be3-",run_id,sep=""))
|
|
||||||
ggplot(data = sel_owd, aes(x = packet_id, y=latency_ms, color=measure_type)) +
|
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
|
||||||
geom_line() +
|
|
||||||
theme_classic() +
|
|
||||||
ggsave(paste("tor_owd_",run_id,".png", sep = ""), dpi=150, dev='png', height=18, width=32, units="cm")
|
|
||||||
}
|
|
||||||
|
|
||||||
ggplot(data = sqldf("select * from tor_owd where measure_type='delta_abs'"), aes(x=latency_ms)) +
|
|
||||||
stat_ecdf(pad = FALSE) +
|
|
||||||
coord_cartesian(xlim = c(0,500)) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
ggplot(data = sqldf("select * from tor_owd where measure_type='d_client_server_abs' or measure_type='d_server_client_abs'"), aes(x=latency_ms)) +
|
|
||||||
stat_ecdf(pad = FALSE) +
|
|
||||||
coord_cartesian(xlim = c(0,500)) +
|
|
||||||
theme_classic()
|
|
||||||
|
|
||||||
ggplot(data = sqldf("select * from tor_owd where packet_id < 500 and run = './out/nBV7DWLpj8WA6Be3-16' and (measure_type='d_client_server' or measure_type='d_server_client')"), aes(y=latency_ms,x=packet_id,color=measure_type)) +
|
|
||||||
geom_line() +
|
|
||||||
coord_cartesian(ylim=c(-250,250)) +
|
|
||||||
geom_point() +
|
|
||||||
theme_classic()
|
|
764441
r/tor_owd.csv
764441
r/tor_owd.csv
File diff suppressed because it is too large
Load diff
92
src/dcall.c
92
src/dcall.c
|
@ -4,6 +4,7 @@
|
||||||
#include <glib-2.0/glib-object.h>
|
#include <glib-2.0/glib-object.h>
|
||||||
#include <glib-2.0/glib-unix.h>
|
#include <glib-2.0/glib-unix.h>
|
||||||
#include <gst/rtp/gstrtpbuffer.h>
|
#include <gst/rtp/gstrtpbuffer.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
struct dcall_elements {
|
struct dcall_elements {
|
||||||
GstElement *pipeline;
|
GstElement *pipeline;
|
||||||
|
@ -130,93 +131,6 @@ static GstPadProbeReturn jitter_buffer_sink_event(GstPad *pad, GstPadProbeInfo *
|
||||||
return GST_PAD_PROBE_OK;
|
return GST_PAD_PROBE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadProbeReturn jitter_buffer_sink_event_up(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) {
|
|
||||||
g_print("upstream event: begin\n");
|
|
||||||
jitter_buffer_sink_event (pad, info, user_data);
|
|
||||||
g_print("upstream event: end\n");
|
|
||||||
return GST_PAD_PROBE_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static GstPadProbeReturn jitter_buffer_sink_event_down(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) {
|
|
||||||
g_print("downstream event: begin\n");
|
|
||||||
jitter_buffer_sink_event (pad, info, user_data);
|
|
||||||
g_print("downstream event: end\n");
|
|
||||||
return GST_PAD_PROBE_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean foreach_buffer (GstBuffer *inbuf, GstMeta **meta, gpointer user_data) {
|
|
||||||
//@FIXME Dead code, please remove me
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static GstPadProbeReturn extract_buffer(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) {
|
|
||||||
//g_print("Entering rtpjitterbuffer sink pad handler for buffers...\n");
|
|
||||||
struct dcall_elements *de = user_data;
|
|
||||||
guint16 seqnum;
|
|
||||||
GstBuffer *out = NULL, *rtp_extracted = NULL;
|
|
||||||
//GstRTPBuffer rtp_buffer = {0};
|
|
||||||
GstMapInfo map;
|
|
||||||
|
|
||||||
out = gst_pad_probe_info_get_buffer (info);
|
|
||||||
if (out == NULL) {
|
|
||||||
g_print("Empty buffer \n");
|
|
||||||
return GST_PAD_PROBE_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GST_BUFFER_FLAG_IS_SET (out, GST_BUFFER_FLAG_DISCONT)) {
|
|
||||||
g_print("Discontinuous buffer\n");
|
|
||||||
}
|
|
||||||
return GST_PAD_PROBE_OK;
|
|
||||||
//gst_buffer_map (out, &map, GST_MAP_READ);
|
|
||||||
|
|
||||||
//if (gst_buffer_get_size (out) != 172) g_print("buffer size is %ld\n", gst_buffer_get_size (out));
|
|
||||||
/*
|
|
||||||
if (G_UNLIKELY (!gst_rtp_buffer_map (out, GST_MAP_READ, &rtp_buffer))) return GST_PAD_PROBE_OK;
|
|
||||||
seqnum = gst_rtp_buffer_get_seq (&rtp_buffer);
|
|
||||||
|
|
||||||
if (de->prev_seqnum == 0) de->prev_seqnum = seqnum;
|
|
||||||
else if (de->prev_seqnum + 1 == seqnum) de->prev_seqnum = seqnum;
|
|
||||||
else {
|
|
||||||
g_print("Current seqnum = %d, previous seqnum = %d, gap\n", seqnum, de->prev_seqnum);
|
|
||||||
de->prev_seqnum = seqnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_print("Receiving packet %d\n", seqnum);
|
|
||||||
|
|
||||||
rtp_extracted = gst_rtp_buffer_get_payload_buffer (&rtp_buffer);
|
|
||||||
|
|
||||||
gst_buffer_foreach_meta (rtp_extracted, foreach_buffer, NULL);
|
|
||||||
|
|
||||||
gst_rtp_buffer_unmap (&rtp_buffer);*/
|
|
||||||
}
|
|
||||||
|
|
||||||
void register_pad(struct dcall_elements *de) {
|
|
||||||
GstPad *pad_src, *pad_opusdec;
|
|
||||||
pad_src = gst_element_get_static_pad (de->rx_jitterbuffer, "src");
|
|
||||||
pad_opusdec = gst_element_get_static_pad (de->rx_opusdec, "src");
|
|
||||||
|
|
||||||
//gst_pad_add_probe (pad_src, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, jitter_buffer_sink_event_down, &de, NULL);
|
|
||||||
//gst_pad_add_probe (pad_src, GST_PAD_PROBE_TYPE_EVENT_UPSTREAM, jitter_buffer_sink_event_up, &de, NULL);
|
|
||||||
gst_pad_add_probe (pad_opusdec, GST_PAD_PROBE_TYPE_BUFFER, extract_buffer, &de, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean pipeline_bus_handler (GstBus *bus, GstMessage *message, gpointer data) {
|
|
||||||
g_print ("Got %s message\n", GST_MESSAGE_TYPE_NAME (message));
|
|
||||||
|
|
||||||
const GstStructure *struc = NULL;
|
|
||||||
struc = gst_message_get_structure(message);
|
|
||||||
g_print("structure is: %s \n", gst_structure_to_string (struc));
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void register_bus(struct dcall_elements *de) {
|
|
||||||
GstBus *bus;
|
|
||||||
bus = gst_pipeline_get_bus (GST_PIPELINE (de->pipeline));
|
|
||||||
de->bus_watch_id = gst_bus_add_watch (bus, pipeline_bus_handler, de);
|
|
||||||
gst_object_unref(bus);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean stop_handler(gpointer user_data) {
|
gboolean stop_handler(gpointer user_data) {
|
||||||
GMainLoop *loop = user_data;
|
GMainLoop *loop = user_data;
|
||||||
g_main_loop_quit(loop);
|
g_main_loop_quit(loop);
|
||||||
|
@ -249,9 +163,6 @@ int main(int argc, char *argv[]) {
|
||||||
if (create_rx_chain (&de) != 0) return -1;
|
if (create_rx_chain (&de) != 0) return -1;
|
||||||
if (create_tx_chain (&de) != 0) return -1;
|
if (create_tx_chain (&de) != 0) return -1;
|
||||||
|
|
||||||
register_pad(&de);
|
|
||||||
//register_bus(&de);
|
|
||||||
|
|
||||||
gst_element_set_state (de.pipeline, GST_STATE_PLAYING);
|
gst_element_set_state (de.pipeline, GST_STATE_PLAYING);
|
||||||
|
|
||||||
g_unix_signal_add (SIGTERM, stop_handler, loop);
|
g_unix_signal_add (SIGTERM, stop_handler, loop);
|
||||||
|
@ -275,7 +186,6 @@ int main(int argc, char *argv[]) {
|
||||||
gst_element_set_state (de.pipeline, GST_STATE_NULL);
|
gst_element_set_state (de.pipeline, GST_STATE_NULL);
|
||||||
|
|
||||||
gst_object_unref (GST_OBJECT (de.pipeline));
|
gst_object_unref (GST_OBJECT (de.pipeline));
|
||||||
// g_source_remove (de.bus_watch_id);
|
|
||||||
g_main_loop_unref (loop);
|
g_main_loop_unref (loop);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue