Friday 27 May 2022

What happens when the allocation limit is reached?

Memory is a fixed resource. Once the allocation limit has been reached means the resource uses all available memory ( Allocated memory) and the pool is exhausted,

Then the memory manager only allocates memory for internal operations after first giving up something else. Buffers and caches are released, and column store tables are unloaded, column by column, based on a least-recently-used order, up to a preset lower limit. When tables are partitioned over several hosts, it's managed on a host-by-host basis; that is, column partitions are unloaded only on hosts with an acute memory shortage.

Avoid table (column or partition) unloading since it leads to performance degradation later when the table is queried and the data has to be reloaded. You can identify pool exhaustion by examining the M_CS_UNLOADS system view.

However, it’s still possible that the memory manager needs more memory than is available leading to an out-of-memory failure. This may happen, for example, when too many concurrent transactions use up all memory, or when a complex query performs a cross join on large tables and creates a huge intermediate result that exceeds the available memory.


For more details click on the below link 

HANA Admin book