> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Journal à écriture anticipée

> Améliorez la résilience de la capture des données de trace W&B Weave grâce au journal à écriture anticipée

Le journal à écriture anticipée (WAL, pour *write-ahead log*) enregistre les requêtes API sur le disque avant de les envoyer au serveur. Par défaut, le client conserve les requêtes dans une mémoire tampon. Si le processus s’arrête de manière inattendue, les données en mémoire tampon sont perdues. Le WAL de Weave résout ce problème en écrivant les requêtes sur le disque avant de les envoyer.

Lorsque vous activez le WAL, le client écrit d’abord chaque requête API dans un fichier JSONL local, puis effectue le vidage du contenu de ce fichier vers le serveur. Si un processus plante ou si le serveur est injoignable, les données restent sur le disque et Weave les envoie automatiquement à la prochaine exécution du client.

Le WAL est particulièrement utile dans les environnements où les processus peuvent être interrompus ou le serveur temporairement indisponible :

* **Orchestration de conteneurs** : des Pods susceptibles d’être évincés ou arrêtés par manque de mémoire (OOM kill) avant que les threads d’arrière-plan n’aient fini de téléverser les traces.
* **Entraînement distribué** : plusieurs processus écrivent des traces en parallèle, et chacun d’eux peut échouer.
* **Réseaux peu fiables** : des environnements où la connexion au serveur Weave est intermittente.
* **Jobs par lots** : des jobs de longue durée pour lesquels perdre des données de trace à la suite d’un plantage coûte cher.

Pour les environnements éphémères comme les fonctions serverless, pensez également à appeler `weave.flush()` ou `weave.finish()` avant la fin du processus afin de vous assurer que toutes les données sont téléversées. Pour plus d’informations, voir [Perte de données de trace dans les processus de travail](/fr/support/weave/articles/trace-data-loss-in-worker-processes).

<Note>
  Le journal à écriture anticipée doit être activé explicitement. Il sera activé par défaut dans une version ultérieure.
</Note>

<h2 id="enable-the-write-ahead-log">
  Activer le journal à écriture anticipée
</h2>

Pour activer le WAL de votre client Weave, définissez la variable d’environnement `WEAVE_ENABLE_WAL` sur `true` :

```bash theme={"system"}
export WEAVE_ENABLE_WAL=true
```

Vous pouvez également le définir en Python avant d’appeler `weave.init()` :

```python theme={"system"}
import os
os.environ["WEAVE_ENABLE_WAL"] = "true"
```

Aucune autre modification du code n’est nécessaire. Le WAL fonctionne de manière transparente avec votre code de traçage Weave existant.

<h2 id="how-it-works">
  Fonctionnement
</h2>

Lorsque le WAL est activé :

1. Weave ajoute chaque appel à l’API Weave (créations d’objets, débuts d’appels, fins d’appels, etc.) à un fichier JSONL sur disque, au lieu de le conserver uniquement en mémoire.
2. Chaque processus écrit dans son propre fichier journal, ce qui évite tout conflit entre processus parallèles.
3. Un expéditeur en arrière-plan lit les fichiers journaux et effectue le vidage de leur contenu vers le serveur Weave.
4. Une fois les données correctement envoyées, Weave supprime le fichier journal.

Les fichiers journaux sont stockés dans `.weave/wal/` au sein de votre répertoire de travail, classés par entity et par projet. Chaque fichier contient les requêtes API brutes sous forme d’objets JSON, à raison d’un par ligne.

Au démarrage, le client recherche les fichiers journaux laissés par des exécutions précédentes. S’il en trouve, l’expéditeur effectue leur vidage avec les nouvelles données. Ainsi, à la prochaine exécution du client, Weave récupère automatiquement les données écrites par un processus qui a planté.

<h2 id="environment-variables">
  Variables d’environnement
</h2>

Les variables d’environnement suivantes contrôlent le comportement du WAL.

| Variable | Type | Par défaut | Description |
| - | - | - | - |
| `WEAVE_ENABLE_WAL` | `bool` | `false` | Active le journal à écriture anticipée. Lorsque cette variable est définie sur `true`, Weave écrit les requêtes API localement sur le disque avant de les envoyer au serveur. |
| `WEAVE_DISABLE_WAL_SENDER` | `bool` | `false` | Désactive l’expéditeur du WAL. Lorsque cette variable est définie sur `true`, Weave écrit les requêtes localement sur le disque, mais n’effectue pas leur vidage vers le serveur. Cette option est utile pour le débogage. |

Pour obtenir la liste de toutes les variables d’environnement disponibles pour Weave, consultez la page de référence sur les [variables d’environnement](/fr/products/wandb/weave/guides/core-types/env-vars).


## Related topics

- [Mise en cache des réponses du serveur](/fr/products/wandb/weave/guides/platform/server-caching.md)
