-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change default memory allocation for consuming segments from on-heap to off-heap #8380
Conversation
…to off-heap. It has been observed as well as established across several production deployments that allocating consuming segments off-heap is better than allocating on-heap. - Modifying the default value of `pinot.server.instance.realtime.alloc.offheap` to true. - Note, that the default off-heap setting implies MMAP, and we still require setting `pinot.server.instance.realtime.alloc.offheap.direct` to true if using DirectMemory is preferred over MMAP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. We should also change some integration tests to turn it off so that both off-heap and on-heap is covered.
We can probably enable on-heap for RealtimeClusterIntegrationTest
Codecov Report
@@ Coverage Diff @@
## master #8380 +/- ##
============================================
- Coverage 69.75% 69.74% -0.02%
- Complexity 4212 4274 +62
============================================
Files 1653 1653
Lines 86615 86615
Branches 13080 13080
============================================
- Hits 60420 60407 -13
- Misses 21966 21981 +15
+ Partials 4229 4227 -2
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
Can you mark |
Filed #8385 to add test coverage for on-heap. |
With PR apache#8380, we modified the default value for `pinot.server.instance.realtime.alloc.offheap` to use off-heap. Explicitly setting it to use on-heap in some of the integration tests for coverage.
Description
It has been observed as well as established across several production deployments
that allocating consuming segments off-heap is better than allocating on-heap.
pinot.server.instance.realtime.alloc.offheap
to true.pinot.server.instance.realtime.alloc.offheap.direct
to true if using DirectMemoryis preferred over MMAP.
Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)
backward-incompat
, and complete the section below on Release Notes)Does this PR fix a zero-downtime upgrade introduced earlier?
backward-incompat
, and complete the section below on Release Notes)Does this PR otherwise need attention when creating release notes? Things to consider:
release-notes
and complete the section on Release Notes)Release Notes
The default behavior of
pinot.server.instance.realtime.alloc.offheap
has been changed to true.This implies that memory for consuming segments will be allocated off-heap. Off-heap here defaults
to MMAP, and can be changed to DirectMemory by setting the confing
pinot.server.instance.realtime.alloc.offheap.direct
to true.Documentation