Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • joram joram
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 43
    • Issues 43
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • joram
  • joramjoram
  • Issues
  • #314213

Closed
Open
Created Apr 13, 2021 by Serge Lacourte@lacourteMaintainer

Contrôle de flux pour les souscriptions

Actuellement le contrôle de flux limite le nombre de messages envoyés à chaque délivrance avec le test suivant (méthode deliver() de ClientSubscription) :

if (active < deliverables.size())

Ce contrôle ne limite pas le nombre de messages en cours d'acquittement. Ces messages sont représentés par la table 'deliveredIds'.

La taille de la table 'deliveredIds' ne doit pas être trop grande. En effet les identifiants sont stockés en bloc (dans ClientSubscription). Si le nombre de messages dépasse 100.000, alors la table stockée prend plusieurs Mo et peut même dépasser la taille d'un fichier de log.

En remplaçant 'deliverables' par 'deliveredIds', le contrôle de flux permet de limiter le nombre de messages en attente. La taille de 'deliveredIds' est inférieur à 'active'.

if (active < deliveredIds.size())

Par ailleurs, la méthode 'acknowledge' devrait appeler 'deliver' quand la taille de 'deliveredIds' repasse sous un seuil, par exemple active/2.

[JORAM-224] created at 2015-02-03 17:50:15 by feliot, version JORAM_5_10_0

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking