Logarithmic scale!!
This commit is contained in:
parent
00a5531b73
commit
948f995ef4
@ -1,78 +0,0 @@
|
||||
.G1
|
||||
copy "legend.grap"
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord y 0,50
|
||||
ticks left out from 0 to 50 by 10
|
||||
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 (µs)" "(Median)" left 0.8
|
||||
label bot "Number of cars in the database" down 0.1
|
||||
|
||||
obram = obuncache = obcache = obfifo = obsemi = 0 # old bullets
|
||||
cbram = cbuncache = cbcache = cbfifo = cbsemi = 0 # current bullets
|
||||
|
||||
legendxleft = 100000
|
||||
legendxright = 250000
|
||||
legendyup = 15
|
||||
legendydown = 2
|
||||
|
||||
boite(legendxleft,legendxright,legendyup,legendydown)
|
||||
legend(legendxleft,legendxright,legendyup,legendydown)
|
||||
|
||||
copy "../data/index.d" thru X
|
||||
cx = $1*5
|
||||
|
||||
y_scale = 1000
|
||||
|
||||
# ram cached fifo semi uncached
|
||||
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
|
||||
line from cx,$14/y_scale to cx,$16/y_scale
|
||||
|
||||
#ty = $3
|
||||
|
||||
cx = $1*5
|
||||
|
||||
cbram = $3/y_scale
|
||||
cbcache = $6/y_scale
|
||||
cbfifo = $9/y_scale
|
||||
cbsemi = $12/y_scale
|
||||
cbuncache = $15/y_scale
|
||||
|
||||
if (obram > 0) then {line from cx,cbram to ox,obram}
|
||||
if (obcache > 0) then {line from cx,cbcache to ox,obcache}
|
||||
.gcolor pink
|
||||
if (obfifo > 0) then {line from cx,cbfifo to ox,obfifo}
|
||||
.gcolor
|
||||
.gcolor blue
|
||||
if (obsemi > 0) then {line from cx,cbsemi to ox,obsemi}
|
||||
.gcolor
|
||||
.gcolor green
|
||||
if (obuncache > 0) then {line from cx,cbuncache to ox,obuncache}
|
||||
.gcolor
|
||||
|
||||
obram = cbram
|
||||
obcache = cbcache
|
||||
obfifo = cbfifo
|
||||
obsemi = cbsemi
|
||||
obuncache = cbuncache
|
||||
ox = cx
|
||||
|
||||
# ram cached fifo semi uncached
|
||||
.gcolor red
|
||||
bullet at cx,cbram
|
||||
.gcolor
|
||||
bullet at cx,cbcache
|
||||
.gcolor pink
|
||||
bullet at cx,cbfifo
|
||||
.gcolor
|
||||
.gcolor blue
|
||||
bullet at cx,cbsemi
|
||||
.gcolor
|
||||
.gcolor green
|
||||
bullet at cx,cbuncache
|
||||
.gcolor
|
||||
X
|
||||
.G2
|
@ -1,40 +0,0 @@
|
||||
.G1
|
||||
copy "legend.grap"
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord x 0,5000*2 y 0.05,350 log y
|
||||
ticks bot out from 1000 to 10000 by 1000
|
||||
|
||||
label left "Request duration" unaligned "for a partition (ms)" "(Median)" left 0.8
|
||||
label bot "Number of cars matching the partition" down 0.1
|
||||
|
||||
obram = obuncache = obfifo = obcache = obsemi = 0
|
||||
cbram = cbuncache = cbfifo = cbcache = cbsemi = 0
|
||||
|
||||
legendxleft = 1000
|
||||
legendxright = 6500
|
||||
legendyup = 0.01
|
||||
legendydown = 0.0001
|
||||
|
||||
#boite(legendxleft,legendxright,legendyup,legendydown)
|
||||
#legend(legendxleft,legendxright,legendyup,legendydown)
|
||||
|
||||
copy "../data/partitions.d" thru X
|
||||
cx = $1*2
|
||||
|
||||
y_scale = 1000000
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
#line_with_mustache(cbram, obram, $3, red, $2, $4)
|
||||
#line_with_mustache(cbcache, obcache, $6, black, $5, $7)
|
||||
#line_with_mustache(cbfifo, obfifo, $9, pink, $8, $10)
|
||||
#line_with_mustache(cbsemi, obsemi, $12,blue, $11, $13)
|
||||
#line_with_mustache(cbuncache,obuncache,$15,green, $14, $16)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
.G2
|
@ -1,40 +0,0 @@
|
||||
.G1
|
||||
copy "legend.grap"
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord x 0,5000 y 0,170
|
||||
ticks left out from 0 to 170 by 20
|
||||
ticks bot out from 1000 to 5000 by 1000
|
||||
label left "Request duration" unaligned "for a tag (ms)" "(Median)" left 0.8
|
||||
label bot "Number of cars matching the tag" down 0.1
|
||||
|
||||
obram = obuncache = obfifo = obcache = obsemi = 0
|
||||
cbram = cbuncache = cbfifo = cbcache = cbsemi = 0
|
||||
|
||||
legendxleft = 200
|
||||
legendxright = 3000
|
||||
legendyup = 170
|
||||
legendydown = 120
|
||||
|
||||
boite(legendxleft,legendxright,legendyup,legendydown)
|
||||
legend(legendxleft,legendxright,legendyup,legendydown)
|
||||
|
||||
copy "../data/tags.d" thru X
|
||||
cx = $1
|
||||
|
||||
y_scale = 1000000
|
||||
|
||||
#line_no_mustache(cbram, obram, $3, red)
|
||||
#line_no_mustache(cbcache, obcache, $6, black)
|
||||
#line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
#line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
#line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
line_with_mustache(cbram, obram, $3, red, $2, $4)
|
||||
line_with_mustache(cbcache, obcache, $6, black, $5, $7)
|
||||
line_with_mustache(cbfifo, obfifo, $9, pink, $8, $10)
|
||||
line_with_mustache(cbsemi, obsemi, $12,blue, $11, $13)
|
||||
line_with_mustache(cbuncache,obuncache,$15,green, $14, $16)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
.G2
|
64
paper/graphs/query_index.grap
Normal file
64
paper/graphs/query_index.grap
Normal file
@ -0,0 +1,64 @@
|
||||
.G1
|
||||
copy "legend.grap"
|
||||
|
||||
graph Linear
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord y 0,40000
|
||||
ticks left out from 0 to 40000 by 10000
|
||||
ticks bot off
|
||||
|
||||
label left "Request duration with" unaligned "an index (ns)" "(Median)" left 0.8
|
||||
label right "\s+2Linear" unaligned "scale\s0"
|
||||
|
||||
obram = obuncache = obcache = obfifo = obsemi = 0 # old bullets
|
||||
cbram = cbuncache = cbcache = cbfifo = cbsemi = 0 # current bullets
|
||||
|
||||
legendxleft = 100000
|
||||
legendxright = 250000
|
||||
legendyup = 15000
|
||||
legendydown = 2000
|
||||
|
||||
boite(legendxleft,legendxright,legendyup,legendydown)
|
||||
legend(legendxleft,legendxright,legendyup,legendydown)
|
||||
|
||||
copy "../data/index.d" thru X
|
||||
cx = $1*5
|
||||
|
||||
y_scale = 1
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
|
||||
graph Exponential with .Frame.n at Linear.Frame.s -(0,.05)
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord log y
|
||||
#ticks left out from 0 to 50 by 10
|
||||
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
|
||||
label right "\s+2Logarithmic" unaligned "scale\s0"
|
||||
|
||||
obram = obuncache = obcache = obfifo = obsemi = 0 # old bullets
|
||||
cbram = cbuncache = cbcache = cbfifo = cbsemi = 0 # current bullets
|
||||
|
||||
copy "../data/index.d" thru X
|
||||
cx = $1*5
|
||||
|
||||
y_scale = 1
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
.G2
|
74
paper/graphs/query_partition.grap
Normal file
74
paper/graphs/query_partition.grap
Normal file
@ -0,0 +1,74 @@
|
||||
.G1
|
||||
copy "legend.grap"
|
||||
|
||||
graph Linear
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord x 0,5000*2
|
||||
ticks bot off
|
||||
|
||||
label left "Request duration" unaligned "for a partition (ms)" "(Median)" left 0.8
|
||||
label right "\s+2Linear" unaligned "scale\s0"
|
||||
|
||||
obram = obuncache = obfifo = obcache = obsemi = 0
|
||||
cbram = cbuncache = cbfifo = cbcache = cbsemi = 0
|
||||
|
||||
legendxleft = 1000
|
||||
legendxright = 6500
|
||||
legendyup = 320
|
||||
legendydown = 220
|
||||
|
||||
boite(legendxleft,legendxright,legendyup,legendydown)
|
||||
legend(legendxleft,legendxright,legendyup,legendydown)
|
||||
|
||||
copy "../data/partitions.d" thru X
|
||||
cx = $1*2
|
||||
|
||||
y_scale = 1000000
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
#line_with_mustache(cbram, obram, $3, red, $2, $4)
|
||||
#line_with_mustache(cbcache, obcache, $6, black, $5, $7)
|
||||
#line_with_mustache(cbfifo, obfifo, $9, pink, $8, $10)
|
||||
#line_with_mustache(cbsemi, obsemi, $12,blue, $11, $13)
|
||||
#line_with_mustache(cbuncache,obuncache,$15,green, $14, $16)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
|
||||
graph Exponential with .Frame.n at Linear.Frame.s -(0,.05)
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord x 0,5000*2 y 0.05,350 log y
|
||||
ticks bot out from 1000 to 10000 by 1000
|
||||
|
||||
label left "Request duration" unaligned "for a partition (ms)" "(Median)" left 0.8
|
||||
label bot "Number of cars matching the partition" down 0.1
|
||||
label right "\s+2Logarithmic" unaligned "scale\s0"
|
||||
|
||||
obram = obuncache = obfifo = obcache = obsemi = 0
|
||||
cbram = cbuncache = cbfifo = cbcache = cbsemi = 0
|
||||
|
||||
copy "../data/partitions.d" thru X
|
||||
cx = $1*2
|
||||
|
||||
y_scale = 1000000
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
#line_with_mustache(cbram, obram, $3, red, $2, $4)
|
||||
#line_with_mustache(cbcache, obcache, $6, black, $5, $7)
|
||||
#line_with_mustache(cbfifo, obfifo, $9, pink, $8, $10)
|
||||
#line_with_mustache(cbsemi, obsemi, $12,blue, $11, $13)
|
||||
#line_with_mustache(cbuncache,obuncache,$15,green, $14, $16)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
.G2
|
75
paper/graphs/query_tag.grap
Normal file
75
paper/graphs/query_tag.grap
Normal file
@ -0,0 +1,75 @@
|
||||
.G1
|
||||
copy "legend.grap"
|
||||
|
||||
graph Linear
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord x 0,5000 y 0,170
|
||||
ticks left out from 0 to 170 by 20
|
||||
ticks bot off
|
||||
label left "Request duration" unaligned "for a tag (ms)" "(Median)" left 0.8
|
||||
#label bot "Number of cars matching the tag" down 0.1
|
||||
label right "\s+2Linear" unaligned "scale\s0"
|
||||
|
||||
obram = obuncache = obfifo = obcache = obsemi = 0
|
||||
cbram = cbuncache = cbfifo = cbcache = cbsemi = 0
|
||||
|
||||
legendxleft = 200
|
||||
legendxright = 3000
|
||||
legendyup = 170
|
||||
legendydown = 120
|
||||
|
||||
boite(legendxleft,legendxright,legendyup,legendydown)
|
||||
legend(legendxleft,legendxright,legendyup,legendydown)
|
||||
|
||||
copy "../data/tags.d" thru X
|
||||
cx = $1
|
||||
|
||||
y_scale = 1000000
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
#line_with_mustache(cbram, obram, $3, red, $2, $4)
|
||||
#line_with_mustache(cbcache, obcache, $6, black, $5, $7)
|
||||
#line_with_mustache(cbfifo, obfifo, $9, pink, $8, $10)
|
||||
#line_with_mustache(cbsemi, obsemi, $12,blue, $11, $13)
|
||||
#line_with_mustache(cbuncache,obuncache,$15,green, $14, $16)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
|
||||
graph Exponential with .Frame.n at Linear.Frame.s -(0,.05)
|
||||
frame invis ht 3 wid 4 left solid bot solid
|
||||
coord x 0,5000 y 0.02,350 log y
|
||||
ticks bot out from 1000 to 5000 by 1000
|
||||
|
||||
label left "Request duration" unaligned "for a tag (ms)" "(Median)" left 0.8
|
||||
label bot "Number of cars matching the tag" down 0.1
|
||||
label right "\s+2Logarithmic" unaligned "scale\s0"
|
||||
|
||||
obram = obuncache = obfifo = obcache = obsemi = 0
|
||||
cbram = cbuncache = cbfifo = cbcache = cbsemi = 0
|
||||
|
||||
copy "../data/tags.d" thru X
|
||||
cx = $1
|
||||
|
||||
y_scale = 1000000
|
||||
|
||||
line_no_mustache(cbram, obram, $3, red)
|
||||
line_no_mustache(cbcache, obcache, $6, black)
|
||||
line_no_mustache(cbfifo, obfifo, $9, pink)
|
||||
line_no_mustache(cbsemi, obsemi, $12, blue)
|
||||
line_no_mustache(cbuncache, obuncache, $15, green)
|
||||
|
||||
#line_with_mustache(cbram, obram, $3, red, $2, $4)
|
||||
#line_with_mustache(cbcache, obcache, $6, black, $5, $7)
|
||||
#line_with_mustache(cbfifo, obfifo, $9, pink, $8, $10)
|
||||
#line_with_mustache(cbsemi, obsemi, $12,blue, $11, $13)
|
||||
#line_with_mustache(cbuncache,obuncache,$15,green, $14, $16)
|
||||
|
||||
ox = cx
|
||||
X
|
||||
.G2
|
@ -940,7 +940,7 @@ The following graph represents the result of 100 queries of a car based on its n
|
||||
The experiment starts with a database containing 1,000 cars and goes up to 250,000 cars.
|
||||
|
||||
.ps -2
|
||||
.so graph_query_index.grap
|
||||
.so graphs/query_index.grap
|
||||
.ps \n[PS]
|
||||
.QP
|
||||
This figure shows the request durations to retrieve data based on a basic index with a database containing up to 250k entries.
|
||||
@ -980,13 +980,13 @@ Caching the value enables a massive performance gain, data can be retrieved seve
|
||||
.LP
|
||||
|
||||
.ps -2
|
||||
.so graph_query_partition.grap
|
||||
.so graphs/query_partition.grap
|
||||
.ps \n[PS]
|
||||
|
||||
.SS Tags (n to n relations)
|
||||
.LP
|
||||
.ps -2
|
||||
.so graph_query_tag.grap
|
||||
.so graphs/query_tag.grap
|
||||
.ps \n[PS]
|
||||
.
|
||||
.
|
||||
@ -1046,7 +1046,7 @@ Since this implementation of DODB is related to the Crystal language (which isn'
|
||||
|
||||
.APPENDIX FIFO vs Efficient FIFO
|
||||
.ps -2
|
||||
.so graph_addition_fifo.grap
|
||||
.so graphs/addition_fifo.grap
|
||||
.ps \n[PS]
|
||||
|
||||
.APPENDIX Common database performance
|
||||
@ -1056,7 +1056,7 @@ database enables to configure the number of allowed entries in the cache.
|
||||
The following figures show the performance of the common database depending on the cache size.
|
||||
|
||||
.ps -2
|
||||
.so graph_fifo_query_index.grap
|
||||
.so graphs/fifo_query_index.grap
|
||||
.ps \n[PS]
|
||||
.QP
|
||||
This figure shows the request durations to retrieve data based on a basic index with a database containing up to 250k entries.
|
||||
@ -1074,7 +1074,7 @@ $+-$ 170 ns.
|
||||
delim off
|
||||
.EN
|
||||
.ps -2
|
||||
.so graph_fifo_query_partition.grap
|
||||
.so graphs/fifo_query_partition.grap
|
||||
.ps \n[PS]
|
||||
.QP
|
||||
This figure shows the request durations to retrieve data based on a partition containing up to 10k entries.
|
||||
@ -1082,7 +1082,7 @@ This figure shows the request durations to retrieve data based on a partition co
|
||||
As we see in the figure, the duration for data retrieval grows almost linearly for databases with a sufficient cache size (starting with 10k entries).
|
||||
When the cache size is not sufficient, the requests are hundred times slower, which explain why the database with a cache size of one thousand entries isn't even represented in the graph, and why the 5k database has great results up to 5k partitions.
|
||||
.ps -2
|
||||
.so graph_fifo_query_tag.grap
|
||||
.so graphs/fifo_query_tag.grap
|
||||
.ps \n[PS]
|
||||
.QP
|
||||
This figure shows the request durations to retrieve data based on a tag containing up to 5k entries.
|
||||
|
Loading…
Reference in New Issue
Block a user