200 lines
8.4 KiB
Plaintext
200 lines
8.4 KiB
Plaintext
# Just used for debug runs
|
|
#
|
|
# The run times are measured in a debug environment with output of the
|
|
# subtrees as dot- files (in parallel mode with max. threads). Every query
|
|
# was executed 5 times and the averange run time calculated.
|
|
#
|
|
# The run times of the serial run are executed with the same codebase but
|
|
# without par nodes in the query and therefore without multithreading
|
|
# support and output of the subtrees, but with progress support (this feature
|
|
# can slowdown the overall query execution a bit)
|
|
#
|
|
# Sep 2019, Thomas Fischer
|
|
#
|
|
|
|
#setup basic_cmd
|
|
|
|
# if a command between the SETUP directive and the first
|
|
# TESTCASE directive fails, then the whole test has failed
|
|
# and we immediately skip to the teardown
|
|
# (the whole test does not make sense anymore if the
|
|
# SETUP has failed)
|
|
|
|
#testcase open database
|
|
#yields success
|
|
open database parthread_lie;
|
|
|
|
#yields success
|
|
#DEBUG 0
|
|
#DEBUG 3
|
|
#DEBUG 7 includes node traced
|
|
DEBUG 7
|
|
|
|
|
|
#1. working, execution time serial: 6 sec, execution time parallel: 7.249999sec
|
|
query Osm_Ways feed count;
|
|
#query Osm_Ways feed par[1] count;
|
|
#query Osm_Ways feed par[3, WayId] count;
|
|
# result 340107
|
|
|
|
#2. working, execution time serial: 6.55902, execution time parallel: 9.57982
|
|
#query Osm_Ways feed filter[.NodeCounter>200] printrefs count;
|
|
#query Osm_Ways feed par[1] filter[.NodeCounter>200] par[2] printrefs par[1] count;
|
|
# result 20179
|
|
|
|
#3. working, execution time serial: 6.51108, execution time parallel: 8.61271
|
|
#query Osm_Ways feed filter[.WayId = 781378607] filter[.NodeCounter = 1] consume;
|
|
#query Osm_Ways feed par[1] filter[.WayId = 781378607] par[3] filter[.NodeCounter = 1] par[3] consume;
|
|
#query Osm_Ways feed par[1] filter[.WayId = 781378607] par[3, NodeCounter] filter[.NodeCounter = 1] par[3] consume;
|
|
# result
|
|
# WayId : 781378607
|
|
# NodeCounter : 1
|
|
# NodeRef : 7295101713
|
|
|
|
|
|
#4. working, execution time serial: 6.51108, execution time parallel: 8.61271
|
|
#query Osm_Ways feed par[1] filter[.WayId = 781378607] par[3, NodeCounter] filter[.NodeCounter = 1] project[WayId, NodeCounter] par[3] consume;
|
|
# result
|
|
# WayId : 781378607
|
|
# NodeCounter : 1
|
|
|
|
#query Osm_Ways feedNth[100, TRUE] par[1, WayId] filter[.NodeCounter = 190] par[3] project[WayId] par[3] rdup sort consume
|
|
#query Osm_Ways feedNth[100, TRUE] par[1, WayId] filter[.NodeCounter = 190] par[3] project[WayId] rdup sort par[3] consume
|
|
# result
|
|
# WayId : 39164679
|
|
#
|
|
# WayId : 356382798
|
|
|
|
|
|
#5. product is not data parallelizable
|
|
|
|
#query Osm_Ways feed head[4] Osm_WayTags feed head[3] product project[WayId, WayTagKey] sort consume
|
|
|
|
|
|
#query Osm_Ways feed head[4] Osm_WayTags feed head[3] product project[WayId, WayTagKey] sort consume
|
|
#query Osm_Ways feed head[4] par[1] Osm_WayTags feed head[3] par[1] product project[WayId, WayTagKey] par[3] sort consume
|
|
#query Osm_Ways feed head[4] par[1] Osm_WayTags feed head[3] par[1] product project[WayId, WayTagKey] par[1] sort consume
|
|
# result
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : highway
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : name
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : name
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : name
|
|
#
|
|
# WayId : 4781367
|
|
# WayTagKey : name
|
|
|
|
|
|
#testcase tc5_parSingleSymmjoin
|
|
#yields (int 233)
|
|
#query Osm_Ways feedNth[1000, TRUE] filter[.NodeCounter>3] {w} par[1] Osm_Nodes feed {n} par[1] symmjoin[.NodeRef_w = ..NodeId_n] par[1] count
|
|
|
|
#testcase tc6_parDoubleSymmjoin
|
|
#yields (int 486)
|
|
#query Osm_Ways feedNth[1000, TRUE] filter[.NodeCounter>3] {w} par[1] Osm_Nodes feed {n} par[1] symmjoin[.NodeRef_w = ..NodeId_n] par[1] Osm_WayTags feed {t} symmjoin[.WayId_w = ..WayIdInTag_t] par[1] count
|
|
|
|
#testcase tc7_parTripleSymmjoin
|
|
#yields (int 431)
|
|
#query Osm_Ways feedNth[1000, TRUE] filter[.NodeCounter>3] {w} par[1] Osm_Nodes feed {n} par[1] symmjoin[.NodeRef_w = ..NodeId_n] par[1] Osm_WayTags feed {t} symmjoin[.WayId_w = ..WayIdInTag_t] par[1] Osm_Relations feed {r} filter[.MemberType_r starts "way"] symmjoin[.WayId_w = ..MemberRef_r] par[1] count
|
|
|
|
#testcase serialSingleHashjoin
|
|
#yields (int 233976)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} Osm_Nodes feed {n} hashjoin[NodeRef_w, NodeId_n] count
|
|
|
|
#testcase parSingleHashjoin
|
|
#yields (int 233976)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} par[1] Osm_Nodes feed {n} par[1] hashjoin[NodeRef_w, NodeId_n] par[1] count
|
|
|
|
#testcase tc8_dataParSingleHashjoin
|
|
#yields (int 233976)
|
|
#query Osm_Ways feed par[1] filter[.NodeCounter>3] {w} par[3,NodeRef_w] Osm_Nodes feed {n} par[1,NodeId_n] hashjoin[NodeRef_w, NodeId_n] par[8] count
|
|
|
|
#testcase serialDoubleHashjoin
|
|
#yields (int 465556)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} Osm_Nodes feed {n} hashjoin[NodeRef_w, NodeId_n] Osm_WayTags feed {t} hashjoin[WayId_w, WayIdInTag_t] count
|
|
|
|
#testcase parDoubleHashjoin
|
|
#yields (int 465556)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} par[1] Osm_Nodes feed {n} par[1] hashjoin[NodeRef_w, NodeId_n] par[1] Osm_WayTags feed {t} par[1] hashjoin[WayId_w, WayIdInTag_t] par[1] count
|
|
|
|
#testcase tc9_dataParDoubleHashjoin
|
|
#yields (int 465556)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} par[1, NodeRef_w] Osm_Nodes feed {n} par[1, NodeId_n] hashjoin[NodeRef_w, NodeId_n] par[8, WayId_w] Osm_WayTags feed {t} par[1, WayIdInTag_t] hashjoin[WayId_w, WayIdInTag_t] par[8] count;
|
|
|
|
#testcase serialTripleHashjoin
|
|
#yields (int 650300)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} Osm_Nodes feed {n} hashjoin[NodeRef_w, NodeId_n] Osm_WayTags feed {t} hashjoin[WayId_w, WayIdInTag_t] Osm_Relations feed {r} filter[.MemberType_r starts "way"] hashjoin[WayId_w, MemberRef_r] count
|
|
|
|
#testcase parTripleHashjoin
|
|
#yields (int 650300)
|
|
#query Osm_Ways feed filter[.NodeCounter>3] {w} par[1] Osm_Nodes feed {n} par[1] hashjoin[NodeRef_w, NodeId_n] par[1] Osm_WayTags feed {t} par[1] hashjoin[WayId_w, WayIdInTag_t] par[1] Osm_Relations feed {r} filter[.MemberType_r starts "way"] par[1, MemberRef_r] hashjoin[WayId_w, MemberRef_r] par[1] count
|
|
|
|
##testcase tc10_dataParTripleHashjoin
|
|
##yields (int 650300)
|
|
#query Osm_Ways feed par[1, NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1, NodeId] {n} hashjoin[NodeRef_w, NodeId_n] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} hashjoin[WayId_w, WayIdInTag_t] par[16, WayId_w] Osm_Relations feed par[1, MemberRef] {r} filter[.MemberType_r starts "way"] hashjoin[WayId_w, MemberRef_r] par[16] count'
|
|
|
|
#query Osm_Ways feed filter[.NodeCounter=3] {w} Osm_Nodes feed {n} hashjoin[NodeRef_w, NodeId_n] Osm_WayTags feed {t} hashjoin[WayId_w, WayIdInTag_t] Osm_Relations feed {r} filter[.MemberType_r starts "way"] hashjoin[WayId_w, MemberRef_r] count
|
|
|
|
|
|
# using the extend operator
|
|
#query Osm_Nodes feed extend[LonInt: .Lon * 1000000, LatInt: .Lat * 1000000] delayS[1] count
|
|
#query Osm_Nodes feed par[1] extend[LonInt: .Lon * 1000000, LatInt: .Lat * 1000000] delayS[1] par[3] count
|
|
|
|
|
|
|
|
# using complex filter predicates
|
|
#query Osm_Ways feed filter[(.NodeCounter > 190) and (.NodeCounter < 200)] count
|
|
#query Osm_Ways feed par[1] filter[(.NodeCounter > 190) and (.NodeCounter < 200)] par[3] count
|
|
#query Osm_Ways feed par[1, WayId] filter[(.NodeCounter > 190) and (.NodeCounter < 200)] par[3] project[WayId] rdup par[3] sort consume
|
|
|
|
|
|
# using spatial operator
|
|
#query Osm_Nodes feed par[1] extend[Geo: makepoint(.Lon, .Lat)] delayS[1] par[3] count
|
|
|
|
#query Osm_Nodes feed extend[LonInt: .Lon * 1000000, LatInt: .Lat * 1000000] extend[Geo: makepoint(.LonInt, .LatInt)] delayS[1] delayS[1] extend[Dist: distance(.Geo, [const point value(10000000 50000000)])] count
|
|
|
|
|
|
##testcase tc10_dataParTripleHashjoin
|
|
##yields (int 650300)
|
|
#query Osm_Nodes feed par[1] extend[LonInt: .Lon * 1000000, LatInt: .Lat * 1000000] par[3] extend[Geo: makepoint(.LonInt, .LatInt)] delayS[1] par[3] delayS[1] extend[Dist: distance(.Geo, [const point value(10000000 50000000)])] par[3] head[2] consume
|
|
|
|
#query Osm_Ways feed par[1] filter[.NodeCounter>3] par[16] count;
|
|
|
|
#query Osm_Ways feed par[1] filter[.NodeCounter=3] delayS[1] par[16] count;
|
|
|
|
#query Osm_Ways feed par[1, WayId] filter[.NodeCounter>3] par[16] count;
|
|
|
|
#query Osm_Ways feed par[1, WayId] filter[.NodeCounter>3] par[16] project[WayId, NodeCounter] par[16] count;
|
|
|
|
#query Osm_Nodes feed par[1] extend[Geo: makepoint(.Lon, .Lat)] extend[DistInKm: distanceOrthodrome(.Geo, [const point value(10.00 50.00)])/1000] par[16] count;
|
|
|
|
close database;
|
|
|