Skip to main content
Weave propose la mise en cache des réponses du serveur pour améliorer les performances lors de requêtes répétées ou lorsque la bande passante réseau est limitée. Bien qu’elle soit actuellement désactivée par défaut, cette fonctionnalité devrait devenir le comportement par défaut dans une prochaine version.

Quand utiliser la mise en cache

La mise en cache des réponses du serveur est particulièrement utile dans les cas suivants :
  • Vous exécutez fréquemment les mêmes requêtes
  • Vous disposez d’une bande passante réseau limitée
  • Vous travaillez dans un environnement à latence élevée
  • Vous développez hors ligne et souhaitez mettre les réponses en cache pour les utiliser plus tard
Cette fonctionnalité est particulièrement utile lorsque vous exécutez des évaluations répétées sur un jeu de données, car elle permet de mettre le jeu de données en cache entre les runs.

Comment activer la mise en cache

Pour activer la mise en cache, vous pouvez définir les variables d’environnement suivantes :
# Activer la mise en cache des réponses du serveur
export WEAVE_USE_SERVER_CACHE=true

# Définir la limite de taille du cache (la valeur par défaut est 1 Go)
export WEAVE_SERVER_CACHE_SIZE_LIMIT=1000000000

# Définir le répertoire du cache (facultatif, par défaut : répertoire temporaire)
export WEAVE_SERVER_CACHE_DIR=/path/to/cache

Fonctionnement de la mise en cache

Techniquement, cette fonctionnalité met en cache les requêtes idempotentes envoyées au serveur. Plus précisément, les éléments suivants sont mis en cache :
  • obj_read
  • table_query
  • table_query_stats
  • refs_read_batch
  • file_content_read

Taille du cache et détails du stockage

La taille du cache est contrôlée par WEAVE_SERVER_CACHE_SIZE_LIMIT (en octets). L’espace disque réellement utilisé se compose de trois composants :
  1. Un fichier de somme de contrôle constant de 32 KB
  2. Un fichier Write-Ahead Log (WAL) pouvant atteindre ~4 MB par client actif (supprimé automatiquement à la fermeture du programme)
  3. Le fichier principal de base de données, qui fait au minimum 32 KB et au maximum WEAVE_SERVER_CACHE_SIZE_LIMIT
Espace disque total utilisé :
  • Pendant l’exécution >= 32 KB + ~4 MB + taille du cache
  • Après la fermeture >= 32 KB + taille du cache
Par exemple, avec une limite de cache de 5 MB :
  • Pendant l’exécution : ~9 MB maximum
  • Après la fermeture : ~5 MB maximum

Performances