Prefetched WAL segments are not returned until the whole batch finishes

Ouverte
#1,149 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@Kobayashi-UwU y travaille déjà.

Depuis le 9/10/2026.

  • #1150 par @Kobayashi-UwU — ouverte

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
15/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
go, postgresql
Domaine
backend, databases

Piste de recherche

Start from RestoreList, which waits for every parallel download before it returns the requested WAL segment, and from the wal.maxParallel setting that controls the batch. The change depends on wal.prefetch and PrefetchIntoSpool from cloudnative-pg/barman-cloud#319, and PR #1150 already targets this issue, so check that work before starting. Done means the requested segment is returned once it is in the spool or downloaded, while later downloads continue in the background.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

wal.maxParallel already downloads the requested WAL segment and the following ones together. RestoreList waits for every download before it returns the requested segment, so PostgreSQL cannot start redo on that segment while the later ones are still transferring.

On a store where each signed GET spends about 510 ms before the first byte, that wait is visible on every segment. Returning the requested segment as soon as it is in the spool or has been downloaded, and continuing the next downloads in the background, lets redo overlap the following transfers.

Depends on the wal.prefetch field and PrefetchIntoSpool added in cloudnative-pg/barman-cloud#319.

Langage dominant
Go
Étoiles
205
Forks
87
Merge moyen
1 j 18 h
PR mergées (30 j)
36

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cloudnative-pg/plugin-barman-cloud

Toutes les issues de cloudnative-pg/plugin-barman-cloud

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.