STERFIELD

WordPressPopularPostsでdie lock発生?

WordPressPopularPostsでdie lock発生?

ちょっと前から、自社サーバが一時的にアクセス不能になったことがあります。調べてみると、下記エラーログを見つかりました。

エラーログ

wordpressのエラーメッセージは?

はurlencodeされたもので、decodeしたら

になります。

は字面通り、mysqlのプロセスが、他のプロセスのロック解除を待っているですが、タイムアウトで終了しました。

「ON DUPLICATE KEY UPDATE」は何の意味?

同じキーのデータがあれば、そのデータを更新するとの意味でし。

die lockとは?

プロセス1 : テーブルAの行xを更新 → テーブルBの行yを更新(今ここ) → 終了
プロセス2 : テーブルBの行yを更新 → テーブルAの行xを更新(今ここ) → 終了
MySQL(Innodb)が更新作業を行うとき、行ロックをかかりますから、
お互いにロック解除を待っていて、ロック解除が不能の状態を指します。

WordPressPopularPostsのテーブル構造

推測

先にwp_popularpostsdataを更新してからwp_popularpostsdatacacheを更新するプログラムがあって、
先にwp_popularpostsdatacacheを更新してからwp_popularpostsdataを更新するプログラムがあります。
両者でdie lockを形成していたかと推測します。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい