Projet

Général

Profil

Actions

Amélioration #5309

fermé

Maitrise de nombre de lock par la pose d'un verrou maitre (global)

Ajouté par Éric Brison il y a plus de 11 ans. Mis à jour il y a plus de 11 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
-
Version cible:
Début:
09/01/2015
Echéance:
% réalisé:

100%

Temps estimé:
Version source:
Solution proposée:

Utilisation des pg_advisory_lock.

public function setMasterLock($useLock)
   { 
if ($useLock) {
$this->exec_query('select pg_advisory_lock(0)');
} else {
$this->exec_query('select pg_advisory_unlock(0)');
}
self::$masterLock = (bool)$useLock;
return '';
}
Principaux fichiers impactés:
Wiki Détail:
Contrôle:

Description

Un verrou global sert a ne pas poser d'autre verrou secondaire.
Les verrous "classique" ne sont plus posés par le processus qui a posé le verrou maître.
Par contre, les verrous "classique" des autres processus sont bloqués (en attente) si un verrou maître est posé par un autre processus.

Ainsi, si un processus nécessite de nombreux verrous qui dépassent la limite de postgresql alors il est possible de limiter ce nombre en posant ce verrou "maître".

Mis à jour par Éric Brison il y a plus de 11 ans

  • Description mis à jour (diff)

Mis à jour par Éric Brison il y a plus de 11 ans

  • Statut changé de Analysé à Intégré
  • % réalisé changé de 0 à 100

Appliqué par commit dynacase-core|commit:7c1bba20ca4b60d803a9234c640ba02141675109.

Actions

Formats disponibles : Atom PDF