起動プロセス(4) srv_boot関数
innobase_start_or_create_for_mysql関数の最初の方で呼び出される。
以下の関数を呼び出すだけ。
1. srv_normalize_init_values関数を呼び出す。
2. srv_general_init関数を呼び出す。
3. srv_init関数を呼び出す。
■srv_normalize_init_values関数
この関数はibdata1、ib_logfile0/1、buffer_pool、log_buffer、awe_windowなどのサイズをPageサイズで割った値に変更する。
例えばinnodb_buffer_pool_size=8MB(default)の場合、ここで512に変更される。SHOW INNODB STATUSで見れるサイズはこの値となる。
※前の段階でサイズの単位は既にKB単位に変更されていて、さらにここでPageのKBで変更する。
■srv_general_init関数
以下の関数を呼び出すだけ。
1. os_sync_init関数を呼び出す。
- os_sync_init関数ではOSから提供されるmutexを初期化する。OSのmutexは遅いのでなるべく使わないようにとコメントしてある。このmutexはOSのイベント関連の処理で使用するようだ。
2. sync_init関数を呼び出す。
3. mem_init関数を呼び出す。
4. thr_local_init関数を呼び出す。
■sync_init関数
この関数は、同期を必要とするデータ構造の初期化を行う。