Blog

WordPressPopularPostsでdie lock発生?

2014.06.10Cat:MySQL プログラマー

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

エラーログ

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

jeff_maj

システムエンジニア/1984年生/上海交通大学卒/Webサービス/EC/iphone/android

» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ