天天看點

mysql 限制并發select patch

限制并發select的patch,代碼量很少,主要是為了學習mysql的源碼,yy一下。

增加兩個全局控制變量:

  thread_limit_min

  thread_limit_max

增加一個條件變量:

  COND_thread_running_limit

增加一個新的錯誤碼:

  concurrency_error

控制的政策:

  1. 如果目前的thread_running小于min值,那麼不對select做任何限制

  2.

如果目前的thread_running大于min值并且小于max值,那麼select查詢線程進行阻塞,等thread_running降到安全值以下,就喚醒查詢線程。

  3.

如果thread_running大于等于max值,對查詢進行fast fail報錯

Fast Fail錯誤: