diff --git a/paper/graph_fifo_query_index.grap b/paper/graph_fifo_query_index.grap new file mode 100644 index 0000000..932493a --- /dev/null +++ b/paper/graph_fifo_query_index.grap @@ -0,0 +1,71 @@ +.G1 +copy "legend.grap" +frame invis ht 3 wid 4 left solid bot solid +coord y 0,500 +ticks left out from 0 to 500 by 50 +ticks bot out at 50000 "50,000", 100000 "100,000", 150000 "150,000", 200000 "200,000", 250000 "250,000" + +label left "Request duration with" unaligned "an index (ns)" "(Median)" left 0.8 +label bot "Number of cars in the database" down 0.1 + +obfifo1 = obfifo5 = obfifo10 = obfifo20 = 0 # old bullets +cbfifo1 = cbfifo5 = cbfifo10 = cbfifo20 = 0 # current bullets + +legendxleft = 180000 +legendxright = 240000 +legendyup = 400 +legendydown = 300 + +boite(legendxleft,legendxright,legendyup,legendydown) +legend_common(legendxleft,legendxright,legendyup,legendydown) + +copy "../data/fifo_index.d" thru X + cx = $1*5 + + y_scale = 1 + + ## fifo1 fifo5 fifo10 fifo20 + #line from cx,$2/y_scale to cx,$4/y_scale + #line from cx,$5/y_scale to cx,$7/y_scale + #line from cx,$8/y_scale to cx,$10/y_scale + #line from cx,$11/y_scale to cx,$13/y_scale + + #ty = $3 + + cx = $1*5 + + cbfifo1 = $3/y_scale + cbfifo5 = $6/y_scale + cbfifo10 = $9/y_scale + cbfifo20 = $12/y_scale + +.gcolor red + if (obfifo1 > 0) then {line from cx,cbfifo1 to ox,obfifo1} +.gcolor +.gcolor green + if (obfifo5 > 0) then {line from cx,cbfifo5 to ox,obfifo5} +.gcolor + if (obfifo10 > 0) then {line from cx,cbfifo10 to ox,obfifo10} +.gcolor pink + if (obfifo20 > 0) then {line from cx,cbfifo20 to ox,obfifo20} +.gcolor + + obfifo1 = cbfifo1 + obfifo5 = cbfifo5 + obfifo10 = cbfifo10 + obfifo20 = cbfifo20 + ox = cx + + # fifo1 fifo5 fifo10 fifo20 +.gcolor red + bullet at cx,cbfifo1 +.gcolor +.gcolor green + bullet at cx,cbfifo5 +.gcolor + bullet at cx,cbfifo10 +.gcolor pink + bullet at cx,cbfifo20 +.gcolor +X +.G2 diff --git a/paper/graph_fifo_query_partition.grap b/paper/graph_fifo_query_partition.grap new file mode 100644 index 0000000..66748ce --- /dev/null +++ b/paper/graph_fifo_query_partition.grap @@ -0,0 +1,68 @@ +.G1 +copy "legend.grap" +frame invis ht 3 wid 4 left solid bot solid +coord x 0,5000*2 y 0,5000 +ticks left out from 0 to 5000 by 1000 + +label left "Request duration" unaligned "for a partition (µs)" "(Median)" left 0.8 +label bot "Number of cars matching the partition" down 0.1 + +obfifo1 = obfifo5 = obfifo10 = obfifo20 = 0 +cbfifo1 = cbfifo5 = cbfifo10 = cbfifo20 = 0 + +legendxleft = 1000 +legendxright = 2500 +legendyup = 4000 +legendydown = 2500 + +boite(legendxleft,legendxright,legendyup,legendydown) +legend_common(legendxleft,legendxright,legendyup,legendydown) + +copy "../data/fifo_partitions.d" thru X + cx = $1*2 + + y_scale = 1000 + + ## fifo1 fifo5 fifo10 fifo20 + #line from cx,$2/y_scale to cx,$4/y_scale + #line from cx,$5/y_scale to cx,$7/y_scale + #line from cx,$8/y_scale to cx,$10/y_scale + #line from cx,$11/y_scale to cx,$13/y_scale + + #ty = $3 + + cbfifo1 = $3/y_scale + cbfifo5 = $6/y_scale + cbfifo10 = $9/y_scale + cbfifo20 = $12/y_scale + +.gcolor red + if (obfifo1 > 0) then {line from cx,cbfifo1 to ox,obfifo1} +.gcolor +.gcolor green + if (obfifo5 > 0) then {line from cx,cbfifo5 to ox,obfifo5} +.gcolor + if (obfifo10 > 0) then {line from cx,cbfifo10 to ox,obfifo10} +.gcolor pink + if (obfifo20 > 0) then {line from cx,cbfifo20 to ox,obfifo20} +.gcolor + + obfifo1 = cbfifo1 + obfifo5 = cbfifo5 + obfifo10 = cbfifo10 + obfifo20 = cbfifo20 + ox = cx + + # fifo1 fifo5 fifo10 fifo20 +.gcolor red + bullet at cx,cbfifo1 +.gcolor +.gcolor green + bullet at cx,cbfifo5 +.gcolor + bullet at cx,cbfifo10 +.gcolor pink + bullet at cx,cbfifo20 +.gcolor +X +.G2 diff --git a/paper/legend.grap b/paper/legend.grap index 631a796..33ab683 100644 --- a/paper/legend.grap +++ b/paper/legend.grap @@ -53,6 +53,44 @@ define legend { .ps +2 } +define legend_common { + xleft = $1 + xright = $2 + yup = $3 + ydown = $4 + + diffx = xright - xleft + diffy = yup - ydown + + hdiff = diffy/4.5 + cy = yup - (diffy/6) + cx = (diffx/20) + xleft + + lstartx = cx + lendx = cx + diffx/8 + tstartx = lendx + diffx/20 + +.ps -2 +.gcolor red + line from lstartx,cy to lendx,cy +.gcolor + "1k" ljust at tstartx,cy + cy = cy - hdiff +.gcolor green + line from lstartx,cy to lendx,cy +.gcolor + "5k" ljust at tstartx,cy + cy = cy - hdiff + line from lstartx,cy to lendx,cy + "10k" ljust at tstartx,cy + cy = cy - hdiff +.gcolor pink + line from lstartx,cy to lendx,cy +.gcolor + "20k" ljust at tstartx,cy +.ps +2 +} + define legend_fifo_addition { xleft = $1 xright = $2 diff --git a/paper/paper.ms b/paper/paper.ms index 9f9ac70..3d196d1 100644 --- a/paper/paper.ms +++ b/paper/paper.ms @@ -1044,3 +1044,11 @@ Since this implementation of DODB is related to the Crystal language (which isn' .ps -2 .so graph_addition_fifo.grap .ps \n[PS] + +.APPENDIX Common database +.ps -2 +.so graph_fifo_query_index.grap +.ps \n[PS] +.ps -2 +.so graph_fifo_query_partition.grap +.ps \n[PS]