The initialization of innodb buffer pool chunks/blocks on allocation has a number of consequences.
- on very large memory systems this can take significant time
- the initialization of data in the allocated memory forces this to paged into the process resulting in a real allocation out of the available OS space.
The second becomes a problem when a large number of processes are on the system, potentially a large number of mariadb instances all competing for memory. A claim on use approach leaves more RAM available for other processes if mariadb doesn't end up using it.
Sizing innodb buffer pool is a hard task so lets try to make it easier, or just less consequences if its wrong.
The proposal is buf_pool_t::chunk_t::create removed the initialization (buf_block_init) and this becomes detected when blocks/chunks are used and then initialized there.