Oracle In-Memory Column Store Segment Eviction Limits
0 reputation · 27 Dec 2022, 08:04 UTC
The Oracle In-Memory (IM) column store allows administrators to assign population priorities (CRITICAL, HIGH, MEDIUM, LOW) to segments to control the loading sequence during startup or manual population. While these priorities dictate the order of entry into the IM store, the behavior changes when the SGA encounters memory pressure.
Oracle employs a cost-based algorithm to handle segment eviction when the IM pool is full. This process considers factors such as segment usage and staleness alongside the assigned priority. However, the specific weighting of the priority attribute during the eviction phase—compared to its role during the initial population phase—is not explicitly detailed in the documentation for Oracle 19c.
This creates uncertainty when managing a mix of CRITICAL and LOW priority segments under tight memory constraints, as it is unclear if a CRITICAL segment can be evicted to make room for a more frequently accessed LOW priority segment.
Technical Questions
- Does the population priority act as a strict protection against eviction, or is it merely a weight in the cost-based eviction algorithm?
- Which specific metrics in
V$IM_SEGMENTSorV$IM_USER_SEGMENTScan be used to identify segments that are candidates for eviction before the process occurs?