WL#7628: Remove innodb_use_sys_malloc & innodb_additional_mem_pool_size system variable in 5.7

Affects: Server-5.7   —   Status: Complete   —   Priority: Medium

The two settings, innodb_use_sys_malloc & innodb_additional_mem_pool_size,
were deprecated in 5.6.2.

Normally, the code behind this setting would be removed in version 5.8, but this
removal has been pushed up to 5.7 because of problems in InnoDB 5.7 after some
refactoring in which memory is allocated before the internal memory system has
been initialized.

When innodb_use_sys_malloc is ON (default), innodb_additional_memory_pool is not
used.  So both of these settings should be deleted at the same time.
This effort involves deleting and changing the following code, code files and
test files.

* Global setting innodb_use_sys_malloc
* Test suite/sys_vars/innodb_use_sys_malloc_basic
* Global setting innodb_additional_mem_pool_size
* Test suite/sys_vars/innodb_additional_mem_pool_size_basic
* The common memory pool and all the code that implements memory pools in
mem0pool.cc, mem0pool.h, mem0pool.ic
* Rename test innodb_use_sys_malloc to innodb_bug12699505 and delete the portion
of this test that relates to the innodb_use_sys_malloc setting.
* Change ut_malloc() so that it always attempts the malloc() 60 times in 60
seconds. Previously, it would try only one malloc() with
innodb_use_sys_malloc=ON. If OFF, it used to do the 60 tries in 60 seconds using
the common memory pool.
* Change ut_realloc so that it always attempts the realloc() 60 times in 60
seconds. Previously, it would try only one realloc() with
innodb_use_sys_malloc=ON. If OFF, it used call ut_malloc() for a new buffer and
ut_free() for the old buffer.
revno: 7562
revision-id: kevin.lewis@oracle.com-20140226054226-vsjgcki616iog1hw
parent: kevin.lewis@oracle.com-20140226044529-1vahfdjfixwp3q2h
committer: kevin.lewis@oracle.com
branch nick: mysql-trunk
timestamp: Tue 2014-02-25 23:42:26 -0600
message:
  WL#7628 - Remove innodb_use_sys_malloc & innodb_additional_mem_pool_size
  system variables in 5.7
  
  This effort involves deleting and changing the following code, code files and
  test files.
  
  * Global setting innodb_use_sys_malloc
  * Test suite/sys_vars/innodb_use_sys_malloc_basic
  * Global setting innodb_additional_mem_pool_size
  * Test suite/sys_vars/innodb_additional_mem_pool_size_basic
  * The common memory pool and all the code that implements memory pools
  in mem0pool.cc, mem0pool.h, mem0pool.ic
  * Rename test innodb_use_sys_malloc to innodb-large-prefix and delete the
  portion of this test that relates to the innodb_use_sys_malloc setting.
  * Change ut_malloc() so that it always attempts the malloc() 60 times
  in 60 seconds. Previously, it would try only one malloc() with
  innodb_use_sys_malloc=ON. If OFF, it used to do the 60 tries in
  60 seconds using the common memory pool.
  * Change ut_realloc so that it always attempts the realloc() 60 times
  in 60 seconds. Previously, it would try only one realloc() with
  innodb_use_sys_malloc=ON. If OFF, it used call ut_malloc() for a new
  buffer and ut_free() for the old buffer.
  * Deleted metadata_pool_size from information_schema.innodb_metrics
  * Deleted all UNIV_MEM_DEBUG code.
  * Greatly simplified mem_heap_validate and mem_heap_check().  All other
  parts of mem0dbg are removed
  * Removed all code under MEM_PERIODIC_CHECK and all calls to
  mem_analyze_corruption().
  * Changed some conditional calls to ib_logf(FATAL,...) to just an assert
  so that the system will stop all threads sooner after a memory corruption.
  
  Approved in rb#4512 by Marko