xtrntr
01/26/2022, 6:22 AMgroupLimitReached=true in my queries. and this is also with the option, pinot.server.query.executor.num.groups.limit=N where N is 10M and the number of groups i’m expecting to see is between 5-8M but it’s around 1M insteadxtrntr
01/26/2022, 8:51 AMxtrntr
01/26/2022, 8:52 AMSELECT * WHERE COLUMN_N BETWEEN 1 AND 1,000,000 GROUP BY COLUMN_N
SELECT * WHERE COLUMN_N BETWEEN 1,000,001 AND 2,000,000 GROUP BY COLUMN_N
...
SELECT * WHERE COLUMN_N BETWEEN 8,000,001 AND 9,000,000 GROUP BY COLUMN_Nxtrntr
01/26/2022, 8:53 AMBETWEEN clause is limited to 200k values of COLUMN_NMayank
Jackie
01/26/2022, 4:23 PMxtrntr
01/26/2022, 5:50 PMProcessed requestId=144,table=eventsv1202109_OFFLINE,segments(queried/processed/matched/consuming)=18/3/3/-1,schedulerWaitMs=0,reqDeserMs=0,totalExecMs=834,resSerMs=2,totalTimeMs=836,minConsumingFreshnessMs=-1,broker=Broker_pinot-broker-0.pinot-broker-headless.pinot.svc.cluster.local_8099,numDocsScanned=71985558,scanInFilter=0,scanPostFilter=71985558,sched=fcfs,threadCpuTimeNs=0
how do i see the actual query it got?xtrntr
01/26/2022, 8:49 PMxtrntr
01/27/2022, 1:45 AMJackie
01/27/2022, 6:21 AMxtrntr
01/27/2022, 6:22 AMJackie
01/27/2022, 6:22 AMnum.groups.limit option?Jackie
01/27/2022, 6:23 AMgroupLimitReached is not triggered, it should return all the groupsJackie
01/27/2022, 6:23 AMJackie
01/27/2022, 6:26 AMpinot.broker.enable.query.limit.override and pinot.broker.query.response.limit, you might also want to check if they are set in your environmentxtrntr
01/27/2022, 7:57 AMHow did you apply thein the server configoption?num.groups.limit
xtrntr
01/27/2022, 7:59 AMThere are 2 broker configs which can enable the query limit rewrite:these are not set in my environmentandpinot.broker.enable.query.limit.override, you might also want to check if they are set in your environmentpinot.broker.query.response.limit
xtrntr
01/27/2022, 4:32 PM# query
SELECT userid_int, count(*) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000 GROUP BY userid_int HAVING COUNT(userid_int) >= 1 LIMIT 1000000000xtrntr
01/27/2022, 4:33 PMxtrntr
01/27/2022, 4:34 PMrequestId=145,table=eventsv1202109_OFFLINE,timeMs=2947,docs=394858352/3192209696,entries=0/394858352,segments(queried/processed/matched/consuming/unavailable):70/14/14/0/0,consumingFreshnessTimeMs=0,servers=4/4,groupLimitReached=false,brokerReduceTimeMs=1826,exceptions=0,serverStats=(Server=SubmitDelayMs,ResponseDelayMs,ResponseSize,DeserializationTimeMs,RequestSentDelayMs);pinot-server-2_O=0,822,2488975,1,-1;pinot-server-0_O=0,1119,10222748,3,1;pinot-server-1_O=0,866,2492275,0,-1;pinot-server-3_O=0,842,2602293,1,1,offlineThreadCpuTimeNs=0,realtimeThreadCpuTimeNs=0,query=SELECT userid_int, count(*) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000 GROUP BY userid_int HAVING COUNT(userid_int) >= 1 LIMIT 1000000000xtrntr
01/27/2022, 4:39 PM7000001 AND 8000000 to 7000001 AND 7200000 , i get 193,760 valuesxtrntr
01/27/2022, 4:40 PM7000001 AND 7200000 into 2 queries, 7000001 AND 7100000 and 7100001 AND 7200000 , i get 200k valuesxtrntr
01/27/2022, 4:40 PMso there is some truncating here, and i’ve already checked that these 2 configs are not setandpinot.broker.enable.query.limit.overridepinot.broker.query.response.limit
Jackie
01/27/2022, 5:42 PMHAVING clause and see if the results are still less than expected?xtrntr
01/27/2022, 6:35 PMxtrntr
01/27/2022, 6:35 PMJackie
01/27/2022, 6:40 PMSELECT DISTINCTCOUNT(userid_int) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000? Also, since there is no entry scan in filter, I assume you have range index on userid_int. I don't think the problem is that groups being truncated, but probably caused by range indexxtrntr
01/27/2022, 7:38 PMdistinctcount(userid_int)
1000000xtrntr
01/27/2022, 7:38 PMxtrntr
01/27/2022, 7:39 PM"tableIndexConfig": {
"invertedIndexColumns": [
"userid_int",
"time_rounded",
"cell_id"
],xtrntr
01/27/2022, 7:48 PMJackie
01/27/2022, 8:01 PMJackie
01/27/2022, 8:04 PMdistinctcount query gives back the correct result..Jackie
01/27/2022, 8:05 PMxtrntr
01/27/2022, 8:08 PMJackie
01/27/2022, 8:10 PMxtrntr
01/27/2022, 8:11 PMJackie
01/27/2022, 8:14 PMxtrntr
01/27/2022, 8:15 PMJackie
01/27/2022, 8:31 PMxtrntr
01/27/2022, 8:36 PMxtrntr
01/27/2022, 8:37 PMxtrntr
01/27/2022, 8:37 PMJackie
01/27/2022, 8:38 PMxtrntr
01/28/2022, 5:28 PMJackie
01/28/2022, 5:31 PMxtrntr
01/28/2022, 5:35 PMrequestId=156,table=eventsv1202109_OFFLINE,timeMs=870,docs=394858352/3192209696,entries=0/394858352,segments(queried/processed/matched/consuming/unavailable):70/14/14/0/0,consumingFreshnessTimeMs=0,servers=4/4,groupLimitReached=false,brokerReduceTimeMs=110,exceptions=0,serverStats=(Server=SubmitDelayMs,ResponseDelayMs,ResponseSize,DeserializationTimeMs,RequestSentDelayMs);pinot-server-2_O=0,692,3311176,0,1;pinot-server-0_O=0,667,3407864,1,1;pinot-server-1_O=0,759,3362920,0,1;pinot-server-3_O=0,695,3507770,1,1,offlineThreadCpuTimeNs=0,realtimeThreadCpuTimeNs=0,query=SELECT DISTINCTCOUNT(userid_int) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000xtrntr
01/28/2022, 5:35 PMdistinctcount(userid_int)
1000000xtrntr
01/28/2022, 5:37 PMJackie
01/28/2022, 5:37 PMentries=0/394858352Jackie
01/28/2022, 5:37 PMxtrntr
01/28/2022, 5:38 PMxtrntr
01/28/2022, 5:39 PMv0.9.3xtrntr
01/28/2022, 5:39 PMv0.8.0xtrntr
01/28/2022, 5:39 PMxtrntr
01/28/2022, 5:41 PMsegment.padding.character = \u0000
segment.name = eventsv1202109_OFFLINE_2021-10-25_9
segment.table.name = eventsv1202109
segment.dimension.column.names = cell_id,userid_int
segment.metric.column.names =
segment.datetime.column.names = time_rounded
segment.total.docs = 48582356
038757633914.c000.snappy.parquet
column.userid_int.cardinality = 669575
column.userid_int.totalDocs = 48582356
column.userid_int.dataType = INT
column.userid_int.bitsPerElement = 20
column.userid_int.lengthOfEachEntry = 0
column.userid_int.columnType = DIMENSION
column.userid_int.isSorted = true
column.userid_int.hasNullValue = false
column.userid_int.hasDictionary = true
column.userid_int.textIndexType = NONE
column.userid_int.hasInvertedIndex = true
column.userid_int.hasFSTIndex = false
column.userid_int.hasJsonIndex = false
column.userid_int.isSingleValues = true
column.userid_int.maxNumberOfMultiValues = 0
column.userid_int.totalNumberOfEntries = 48582356
column.userid_int.isAutoGenerated = false
column.userid_int.minValue = 7296465
column.userid_int.maxValue = 8119811
column.userid_int.defaultNullValue = -2147483648
column.cell_id.cardinality = 2459
column.cell_id.totalDocs = 48582356
column.cell_id.dataType = INT
column.cell_id.bitsPerElement = 12
column.cell_id.lengthOfEachEntry = 0
column.cell_id.columnType = DIMENSION
column.cell_id.isSorted = false
column.cell_id.hasNullValue = false
column.cell_id.hasDictionary = true
column.cell_id.textIndexType = NONE
column.cell_id.hasInvertedIndex = true
column.cell_id.hasFSTIndex = false
column.cell_id.hasJsonIndex = false
column.cell_id.isSingleValues = true
column.cell_id.maxNumberOfMultiValues = 0
column.cell_id.totalNumberOfEntries = 48582356
column.cell_id.isAutoGenerated = false
column.cell_id.minValue = -1
column.cell_id.maxValue = 2458
column.cell_id.defaultNullValue = -2147483648
column.time_rounded.cardinality = 96
column.time_rounded.totalDocs = 48582356
column.time_rounded.dataType = LONG
column.time_rounded.bitsPerElement = 7
column.time_rounded.lengthOfEachEntry = 0
column.time_rounded.columnType = DATE_TIME
column.time_rounded.isSorted = false
column.time_rounded.hasNullValue = false
column.time_rounded.hasDictionary = true
column.time_rounded.textIndexType = NONE
column.time_rounded.hasInvertedIndex = true
column.time_rounded.hasFSTIndex = false
column.time_rounded.hasJsonIndex = false
column.time_rounded.isSingleValues = true
column.time_rounded.maxNumberOfMultiValues = 0
column.time_rounded.totalNumberOfEntries = 48582356
column.time_rounded.isAutoGenerated = false
column.time_rounded.datetimeFormat = 1:HOURS:SIMPLE_DATE_FORMAT:yyyy-MM-dd HH:mm:ss
column.time_rounded.datetimeGranularity = 15:MINUTES
column.time_rounded.minValue = 1635091200000
column.time_rounded.maxValue = 1635176700000
column.time_rounded.defaultNullValue = -9223372036854775808
segment.index.version = v3Jackie
01/28/2022, 5:42 PMindex_mapxtrntr
01/28/2022, 5:42 PMuserid_int.dictionary.startOffset = 0
userid_int.dictionary.size = 2678308
userid_int.forward_index.startOffset = 2678308
userid_int.forward_index.size = 5356608
cell_id.dictionary.startOffset = 50544982
cell_id.dictionary.size = 9844
cell_id.forward_index.startOffset = 50554826
cell_id.forward_index.size = 72873542
time_rounded.dictionary.startOffset = 123428368
time_rounded.dictionary.size = 776
time_rounded.forward_index.startOffset = 123429144
time_rounded.forward_index.size = 42509570Jackie
01/28/2022, 5:43 PMindex_map?Jackie
01/28/2022, 5:43 PMJackie
01/28/2022, 5:44 PMcolumn.userid_int.isSorted = trueJackie
01/28/2022, 5:44 PMJackie
01/28/2022, 5:47 PMSELECT userid_int, count(*) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000 GROUP BY userid_int LIMIT 10000000 OPTION(minServerGroupTrimSize=-1)Jackie
01/28/2022, 5:47 PMSELECT userid_int, count(*) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000 GROUP BY userid_int ORDER BY userid_int LIMIT 10000000xtrntr
01/28/2022, 5:47 PMSELECT userid_int, count(*) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000 GROUP BY userid_int LIMIT 10000000 OPTION(minServerGroupTrimSize=-1)
1-10 of 883574xtrntr
01/28/2022, 5:47 PMxtrntr
01/28/2022, 5:48 PMSELECT userid_int, count(*) FROM eventsv1202109 WHERE userid_int BETWEEN 7000001 AND 8000000 GROUP BY userid_int ORDER BY userid_int LIMIT 10000000
1-10 of 883574 also truncatedxtrntr
01/28/2022, 5:51 PMxtrntr
01/28/2022, 6:09 PMJackie
01/28/2022, 6:09 PMxtrntr
01/28/2022, 6:09 PM