Map
12/01/2021, 10:25 PMRealtimeProvisioningHelper -tableConfigFile <tableConfig> -numPartitions 1 -pushFrequency null -numHosts 1,2,3,4 -numHours 1,2,3,4,56,12,18,24 -sampleCompletedSegmentDir <path-to-segment> -ingestionRate 1000 -maxUsableHostMemory 5120G -retentionHours 1
Note:
* Table retention and push frequency ignored for determining retentionHours since it is specified in command
* See <https://docs.pinot.apache.org/operators/operating-pinot/tuning/realtime>
Memory used per host (Active/Mapped)
numHosts --> 1 |2 |3 |4 |
numHours
1 --------> 8.1G/295.67G |4.05G/147.83G |4.05G/147.83G |4.05G/147.83G |
2 --------> NA |NA |NA |NA |
3 --------> NA |NA |NA |NA |
4 --------> NA |NA |NA |NA |
12 --------> NA |NA |NA |NA |
18 --------> NA |NA |NA |NA |
24 --------> NA |NA |NA |NA |
56 --------> NA |NA |NA |NA |
Optimal segment size
numHosts --> 1 |2 |3 |4 |
numHours
1 --------> 1.51G |1.51G |1.51G |1.51G |
2 --------> NA |NA |NA |NA |
3 --------> NA |NA |NA |NA |
4 --------> NA |NA |NA |NA |
12 --------> NA |NA |NA |NA |
18 --------> NA |NA |NA |NA |
24 --------> NA |NA |NA |NA |
56 --------> NA |NA |NA |NA |
Consuming memory
numHosts --> 1 |2 |3 |4 |
numHours
1 --------> 8.1G |4.05G |4.05G |4.05G |
2 --------> NA |NA |NA |NA |
3 --------> NA |NA |NA |NA |
4 --------> NA |NA |NA |NA |
12 --------> NA |NA |NA |NA |
18 --------> NA |NA |NA |NA |
24 --------> NA |NA |NA |NA |
56 --------> NA |NA |NA |NA |
Total number of segments queried per host (for all partitions)
numHosts --> 1 |2 |3 |4 |
numHours
1 --------> 2 |1 |1 |1 |
2 --------> NA |NA |NA |NA |
3 --------> NA |NA |NA |NA |
4 --------> NA |NA |NA |NA |
12 --------> NA |NA |NA |NA |
18 --------> NA |NA |NA |NA |
24 --------> NA |NA |NA |NA |
56 --------> NA |NA |NA |NA |Mark Needham
1, so the command exits as soon as it's returned memory estimates for the first hour. Can you try change that value to 24:
RealtimeProvisioningHelper -tableConfigFile <tableConfig> -numPartitions 1 -pushFrequency null -numHosts 1,2,3,4 -numHours 1,2,3,4,56,12,18,24 -sampleCompletedSegmentDir <path-to-segment> -ingestionRate 1000 -maxUsableHostMemory 5120G -retentionHours 24Map
12/02/2021, 2:16 PMMark Needham
Map
12/02/2021, 2:24 PMMark Needham
segment.end.time which sounds more like it's the time the segment was completed rather than created. We can confirm with @Mayank thoughMap
12/02/2021, 2:39 PMMayank
Mark Needham
Map
12/02/2021, 4:49 PM: This argument should specify how many hours of data will typically be queried on your table. It is assumed that these are the most recent hours. IfretentionHoursis specified, then it is assumed that the older data will be served by the offline table, and the value is derived automatically. For example, ifpushFrequencyispushFrequency, this value defaults todaily. If72, thenhourly. If24, thenweekly. If8d, thenmonthly. If neither32dnorpushFrequencyis specified, then this value is assumed to be the retention time of the realtime table (e.g. if the table is retained for 6 months, then it is assumed that most queries will retrieve all six months of data). As an example, if you have a realtime only table with a 21 day retention, and expect that 90% of your queries will be for the most recent 3 days, you can specify aretentionHoursvalue of 72. This will help you configure a system that performs much better for most of your queries while taking a performance hit for those that occasionally query older data.retentionHours
Map
12/02/2021, 4:50 PMSajjad Moradi
12/02/2021, 5:47 PMMap
12/03/2021, 12:40 AMSubbu Subramaniam
12/06/2021, 6:12 PMSajjad Moradi
12/06/2021, 6:13 PMMap
12/06/2021, 6:16 PMqueryableHours