[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Evitar deadlock en mysql



El día 18 de noviembre de 2015, 17:29, Camaleón <noelamac@gmail.com> escribió:
> El Wed, 18 Nov 2015 17:07:35 +0100, Maykel Franco escribió:
>
>> Buenas, he estado revisando las estadísticas de innodb de alguno de
>> nuestros servidores y me he encontrado con deadlocks en uno de ellos...
>>
>> ATEST DETECTED DEADLOCK ------------------------
>> 2015-11-06 16:00:00 7f61c5aa5700 *** (1) TRANSACTION:
>> TRANSACTION 1422060913, ACTIVE 0 sec inserting mysql tables in use 1,
>> locked 1 LOCK WAIT 9 lock struct(s), heap size 1184, 5 row lock(s), undo
>> log entries 3 MySQL thread id 6495594, OS thread handle 0x7f61c526a700,
>> query id 110695361 10.100.107.6 stats update INSERT INTO `test`.`test`
>> (`test`,`test`,`test`,`test`,`test`,`test`)
>> VALUES (2015,11,6,16,'iOS',1)
>> *** (1) WAITING FOR THIS LOCK TO BE GRANTED:
>> RECORD LOCKS space id 17528 page no 219 n bits 368 index `PRIMARY` of
>> table `test`.`test` trx id 1422060913 lock_mode X insert intention
>> waiting ***
>
> (...)
>
>> test son los datos de mi bbdd.
>>
>> Mi pregunta es, de la parte de sistemas hay alguna forma de poder
>> evitarlo? Creo que la solución pasa por arreglarlo prográmaticamente,
>> si detecta el error del deadlock, reintentarlo otra vez.
>>
>> Deadlock se produce cuando una transaccion espera por los recursos
>> utilizados por otra transacción que a su vez espera por los recursos de
>> otra.
>>
>> Consejos?
>
> Pregunta a Google :-)
>
> How to debug InnoDB lock waits
> http://www.xaprb.com/blog/2007/09/18/how-to-debug-innodb-lock-waits/

Lo estoy monitorizando con pt-deadlock-logger, guardo los deadlock en
bbdd, también se pueden guardar en log.

Necesito primero saber por qué es para poder solucionarlo.
>
> How to deal with MySQL deadlocks
> https://www.percona.com/blog/2014/10/28/how-to-deal-with-mysql-deadlocks/

Este enlace lo había visto, se puede controlar programáticamente.
>
> Saludos,
>
> --
> Camaleón
>


Reply to: