web-dev-qa-db-fra.com

Comment se débarrasser des problèmes de type Deadlocks et Lock time out?

J'ai lu plusieurs blogs, essayé de google, mais je n'ai trouvé aucune satisfaction dans aucune solution. J'ai les problèmes suivants:

PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc).

PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: SELECT 1 AS expression FROM {sessions} sessions WHERE ( (sid = :db_condition_placeholder_0) AND (ssid = :db_condition_placeholder_1) )

J'ai essayé de résoudre ce problème en augmentant innodb_pool_buffer_size et wait_timeout dans my.ini mais n'a pas fonctionné.

J'ai changé le moteur de ma table de cache d'Innodb en MyIasm. Le problème a disparu mais ce n'est pas une solution parfaite. Le moteur de table sera modifié après une mise à niveau de drupal. Ce problème n'affecte rien sur le site mais je ne veux pas que cela se produise.

Des gars de solution?

18
Sumit Madan

Lisez et suivez cet article ; cela suppose InnoDB.

En particulier, voir la partie disant d'ajouter ce qui suit au fichier settings.php.

$databases['default']['default']['init_commands'] = array('isolation' => "SET SESSION tx_isolation='READ-COMMITTED'");
17
mikeytown2

Le meilleur moyen de se débarrasser des erreurs de blocage une fois pour toutes est le module Asynchronous Prefetch Database Query Cache .

Je ne le recommanderai jamais assez. Brillamment écrit et de grands gains de performances.

5
bmunslow

J'ai essayé d'appliquer le patch https://www.drupal.org/project/drupal/issues/16509 .

Je suis toujours confronté à un problème sur AWS

0
Ankit Shah