IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

réplication Waiting for dependent transaction to commit


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai Avatar de laraki.fissel
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 42
    Points : 23
    Points
    23
    Par défaut réplication Waiting for dependent transaction to commit
    Bonjour

    j'ai un problèle au niveau de la réplication MySQL, une requete delete bien optimisée augmente trop le lag mysql.
    je pense que la requete attend un commit d'un autre worker.
    processlist me donne le resultat suivant :

    | 5 | system user | | NULL | Connect | 49410 | Waiting for master to send event | NULL |
    | 6 | system user | | NULL | Connect | 19677 | Waiting for dependent transaction to commit | NULL
    | 7 | system user | | NULL | Connect | 39262 | Executing event | delete from ..........
    | 8 | system user | | NULL | Connect | 39222 | Waiting for an event from Coordinator | NULL |
    | 9 | system user | | NULL | Connect | 39288 | Waiting for an event from Coordinator | NULL |
    | 10 | system user | | NULL | Connect | 39891 | Waiting for an event from Coordinator | NULL

    je signale que je dispose de la version mysql 5.7.17 sous centos,

    log_slave_updates = ON
    slave_parallel_workers = 8
    slave_preserve_commit_order = ON
    slave_parallel_type = LOGICAL_CLOCK

    Merci pour votre aide.

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut laraki.fissel.

    Peut-être avez-vous un dead lock ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre à l'essai Avatar de laraki.fissel
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 42
    Points : 23
    Points
    23
    Par défaut
    Bonjour Artemus24

    Non aucun dead lock n'est detecté au niveau de la base.


    Cdt

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut laraki.fissel.

    Citation Envoyé par laraki.fissel
    Non aucun dead lock n'est détecté au niveau de la base.
    Ce n'est pas au niveau de la base que cela se détecte mais dans vos traitements, et surtout sur la façon dont vous gérez vos transactions.

    Citation Envoyé par laraki.fissel
    je pense que la requete attend un commit d'un autre worker.
    Si ce commit n'arrive jamais, votre transaction est bloquée. C'est ça le dead lock dont je vous parle.

    Si l'on veut être puriste, le dead lock, ce n'est pas exactement votre cas. Vous avez deux ressources et deux utilisateurs.
    Le premier utilisateur attend pour terminer la ressource N°1 de pourvoir débuter le ressource N°2.
    Tandis que le second utilisateur attend pour terminer la ressource N°2 de pouvoir débuter la ressource N°1.

    Ici, vous avez deux utilisateurs, dont l'un est bloqué et ne peut pas faire de commit.
    L'autre se met à attendre que la ressource se libère et comme elle ne se libère pas, un time out termine brusquement le processus.

    Vous devez vérifier que chaque intervention en mise à jour ou en suppression se fasse sous forme d'une transaction.
    Pour expliquer simplement, vous devez être le seul à intervenir en écriture sur la ligne. On nomme cela une section critique.
    Pour gérer les accès, vous devez les sérialiser. Pour ce faire, vous devez déclarer dans le fichier my.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    transaction-isolation = SERIALIZABLE
    Pour gérer vos transactions, je vous conseille de lire : https://dev.mysql.com/doc/refman/5.7/en/commit.html

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Si c'était un verrou mortel (parlons français) il serait détecté et une des sessions serait tuée... Si ce n'est pas le cas, c'est donc une attente sans cycle.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/02/2011, 10h59
  2. [oracle 10g: dbshut] Waiting for smon to disable tx recovery
    Par jean-jacques varvenne dans le forum Oracle
    Réponses: 3
    Dernier message: 05/05/2009, 18h46
  3. [Utilisation] cvs commit : waiting for root's lock
    Par fayred dans le forum CVS
    Réponses: 1
    Dernier message: 31/03/2009, 09h29
  4. Waiting for locked row
    Par BlackMinou dans le forum Oracle
    Réponses: 4
    Dernier message: 24/10/2005, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo