Actions
Amélioration #5309
ferméMaitrise de nombre de lock par la pose d'un verrou maitre (global)
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".
Actions
#2
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