Prashant Pandey
01/24/2022, 10:55 AMmaxUsableHostMemory in RealtimeProvisioningHelper. We have 6 tables being consumed by around 10 realtime servers. Each server has an upper limit of 40G of memory. Segments are also relocated to a different set of servers (not realtime) once they’re committed. The docs say “This is the total memory available in each host for hosting retentionHours worth of data (i.e. “hot” data) of this table.“. How would the value be calculated in this case? Should be simply do 40/6 as a rough estimate?Prashant Pandey
01/24/2022, 11:20 AMException in thread "main" java.lang.OutOfMemoryError: Direct buffer memory
at java.base/java.nio.Bits.reserveMemory(Bits.java:175)
at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:118)
at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:317)
at org.apache.pinot.segment.spi.memory.PinotByteBuffer.allocateDirect(PinotByteBuffer.java:38)
at org.apache.pinot.segment.spi.memory.PinotDataBuffer.allocateDirect(PinotDataBuffer.java:115)
at org.apache.pinot.segment.local.io.writer.impl.DirectMemoryManager.allocateInternal(DirectMemoryManager.java:53)
at org.apache.pinot.segment.local.io.readerwriter.RealtimeIndexOffHeapMemoryManager.allocate(RealtimeIndexOffHeapMemoryManager.java:80)
at org.apache.pinot.segment.local.realtime.impl.forward.FixedByteSVMutableForwardIndex.addBuffer(FixedByteSVMutableForwardIndex.java:208)
at org.apache.pinot.segment.local.realtime.impl.forward.FixedByteSVMutableForwardIndex.<init>(FixedByteSVMutableForwardIndex.java:77)
at org.apache.pinot.segment.local.indexsegment.mutable.MutableSegmentImpl.<init>(MutableSegmentImpl.java:308)
at org.apache.pinot.controller.recommender.realtime.provisioning.MemoryEstimator.getMemoryForConsumingSegmentPerPartition(MemoryEstimator.java:339)
at org.apache.pinot.controller.recommender.realtime.provisioning.MemoryEstimator.estimateMemoryUsed(MemoryEstimator.java:272)
at org.apache.pinot.tools.admin.command.RealtimeProvisioningHelperCommand.execute(RealtimeProvisioningHelperCommand.java:286)
When ingestionRate is high. For example:
RealtimeProvisioningHelper -tableConfigFile /Users/prashant.pandey/Trash/tableConfig.json -sampleCompletedSegmentDir /Users/prashant.pandey/Downloads/segment -numHosts 10,12 -numHours 6,8 -maxUsableHostMemory 7G -numPartitions 16 -retentionHours 24 -ingestionRate 8500Mayank
Subbu Subramaniam
01/24/2022, 6:53 PMSubbu Subramaniam
01/24/2022, 6:54 PMSajjad Moradi
01/24/2022, 7:16 PM