起動プロセス(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関数
この関数は、同期を必要とするデータ構造の初期化を行う。