Wrap the queue tx with a mutex lock under mysql
commita29272e1fd2433d13eae7c236bf779483d82e75b
authordormando <dormando@rydia.net>
Sun, 13 Nov 2011 07:22:42 +0000 (12 23:22 -0800)
committerdormando <dormando@rydia.net>
Sun, 13 Nov 2011 07:22:42 +0000 (12 23:22 -0800)
tree8b6ecff52680ffd7c12a4c2c4ff0981de52e44ff
parent6f29c3036ad64274305afc58bd3a841a8062775c
Wrap the queue tx with a mutex lock under mysql

MySQL versions are very deadlocky with this pattern, unfortunately. Worse yet,
under 5.1+ INSERT's can block forever so long as the SELECT's overlap.

Wrapping it in a lock to serialize the transaction (which is fine for
performance, anyway) stops the INSERT's from blocking and reduces the
deadlocks a little.
lib/MogileFS/Store.pm
lib/MogileFS/Store/MySQL.pm