xtrntr
09/10/2021, 4:11 AMtimeMs=~1000ms on my broker, but it takes 2/3 seconds on python/java clients on that single line to execute the query e.g.
# python
curs.execute(sql_query)
# java
ResultSetGroup pinotResultSetGroup = pinotConnection.execute(pinotClientRequest);Mayank
xtrntr
09/10/2021, 4:13 AMxtrntr
09/10/2021, 4:13 AMxtrntr
09/10/2021, 4:13 AMResponseSize=6000433Mayank
xtrntr
09/10/2021, 4:19 AMxtrntr
09/10/2021, 4:20 AMxtrntr
09/10/2021, 5:18 AMdef execute_query(query):
start = timer()
curs.execute(query)
end = timer()
print(f"query took {end-start}")
return curs.fetchall()
python3 -m cProfile query.py
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
208/1 0.015 0.000 48.651 48.651 {built-in method builtins.exec}
811465/5 0.907 0.000 47.301 9.460 db.py:41(g)
405731/2 0.519 0.000 42.400 21.200 db.py:52(g)
2 0.368 0.184 42.400 21.200 db.py:369(fetchall)
405729 0.396 0.000 41.531 0.000 db.py:393(__next__)
405729 0.348 0.000 40.211 0.000 db.py:345(fetchone)
405731 39.863 0.000 39.863 0.000 {method 'pop' of 'list' objects}
2 0.000 0.000 4.900 2.450 db.py:263(execute)
@Xiang FuXiang Fu
xtrntr
09/10/2021, 9:28 AMMayank
Ken Krugler
09/10/2021, 6:24 PMKen Krugler
09/10/2021, 6:25 PMMayank
xtrntr
09/12/2021, 3:12 AMIdSet is also slower than using raw ints in the IN clause @Jackie, from 10k ints onwards:
query_str length: 27525
time taken with idset: 2079
query_str length: 78436
time taken with raw ids: 140Jackie
09/12/2021, 5:11 AMxtrntr
09/12/2021, 8:13 AMxtrntr
09/12/2021, 8:17 AM# raw ids
requestId=106,table=events-2021-03_OFFLINE,timeMs=66,docs=14870/449912692,entries=1103854/29740,segments(queried/processed/matched/consuming/unavailable):10/10/8/0/0,consumingFreshnessTimeMs=0,servers=2/2,groupLimitReached=false,brokerReduceTimeMs=5,exceptions=0,serverStats=(Server=SubmitDelayMs,ResponseDelayMs,ResponseSize,DeserializationTimeMs,RequestSentDelayMs);pinot-server-1_O=5,30,33260,0,-1;pinot-server-0_O=2,24,28467,0,1,offlineThreadCpuTimeNs=22897030,realtimeThreadCpuTimeNs=0
# idset
requestId=105,table=events-2021-03_OFFLINE,timeMs=1981,docs=2040075/449912692,entries=841265291/4080150,segments(queried/processed/matched/consuming/unavailable):10/10/10/0/0,consumingFreshnessTimeMs=0,servers=2/2,groupLimitReached=false,brokerReduceTimeMs=59,exceptions=0,serverStats=(Server=SubmitDelayMs,ResponseDelayMs,ResponseSize,DeserializationTimeMs,RequestSentDelayMs);pinot-server-1_O=0,1901,4049628,1,1;pinot-server-0_O=0,1918,4112944,1,-1,offlineThreadCpuTimeNs=3803269492,realtimeThreadCpuTimeNs=0xtrntr
09/12/2021, 9:30 AM# query
"select time, count(distinct(user)) as count from {table} where user in ({users}) and time between {start} and {end} and location between 300 and 350 group by time limit 10000000"Jackie
09/13/2021, 5:43 PMJackie
09/13/2021, 5:44 PM