Projet

Général

Profil

Bug #66459

Support #66457: Trop de transactions PostgreSQL

BaseResource::jobs: transactions évitables et très fréquentes

Ajouté par Pierre Ducroquet il y a presque 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
21 juin 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

La fonction jobs de BaseResource utilise une transaction pour réaliser une vérification des tâches à faire avec un select for update skip locked. C'est une très bonne solution, mais dans un système où il y a peu de tâches à réaliser, cela va consommer une quantité importante de transactions sans besoin s'il n'y a pas d'objet à sélectionner.


Fichiers

Révisions associées

Révision 63d6ccbe (diff)
Ajouté par Pierre Ducroquet il y a presque 2 ans

BaseResource::jobs: reduce transaction number (#66459)

Instead of having a new transaction for each run, even if most of the time there won't be
anything to run, it's faster and lighter for the server to have an out of transaction check
first.

Historique

#1

Mis à jour par Pierre Ducroquet il y a presque 2 ans

En cours de test pour le moment, mais commit early commit often tout ça tout ça

#2

Mis à jour par Pierre Ducroquet il y a presque 2 ans

Chemin de code couvert par plusieurs tests unitaires, donc je ne pense pas qu'un nouveau test soit requis (une erreur fait immédiatement hurler pytest)

#3

Mis à jour par Pierre Ducroquet il y a presque 2 ans

Je veux bien une explication de pourquoi le jenkins est rouge là :/

#4

Mis à jour par Benjamin Dauvergne il y a presque 2 ans

  • Statut changé de Solution proposée à Solution validée
#6

Mis à jour par Benjamin Dauvergne il y a presque 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 63d6ccbeea44b22da4a8c3bfe8fe2bc1d2e4783a
Author: Pierre Ducroquet <pducroquet@entrouvert.com>
Date:   Tue Jun 21 17:48:20 2022 +0200

    BaseResource::jobs: reduce transaction number (#66459)

    Instead of having a new transaction for each run, even if most of the time there won't be
    anything to run, it's faster and lighter for the server to have an out of transaction check
    first.
#7

Mis à jour par Transition automatique il y a presque 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#8

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF