

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Collecte des déchets du dictionnaire Neptune
<a name="storage-gc"></a>

 Neptune prend en charge la collecte des déchets par dictionnaire (GC), qui peut être activée via le `neptune_lab_mode` [paramètre](parameters.md) relatif aux données du graphe de propriétés. Il peut être activé pour les clusters contenant uniquement des données de graphes de propriétés lorsqu'il n'`neptune_streams`est pas activé. La fonctionnalité est automatiquement désactivée si elle `neptune_streams` est activée ou s'il existe des `neptune_streams` données non expirées. La fonctionnalité nécessite le redémarrage d'une instance d'écriture pour être activée. Cette fonctionnalité est disponible à partir de la version [1.4.3.0](https://docs.aws.amazon.com/releases/release-1.4.3.0.xml) du moteur. 

 Lorsque cette option est activée, les entrées de dictionnaire inutilisées sont nettoyées par une tâche en arrière-plan. Il ne réduit pas`VolumeBytesUsed`, mais libère de l'espace dans l'index pour les nouvelles insertions. Le taux de croissance `VolumeBytesUsed` est susceptible d'être inférieur lorsque le dictionnaire GC est activé par rapport à lorsqu'il ne l'est pas. 

 La collecte des déchets du dictionnaire s'exécute en arrière-plan et analyse toutes les données des graphes et des dictionnaires pour trouver les termes qui ne sont pas utilisés. Une nouvelle exécution est déclenchée au démarrage dès qu'environ 6 % des données ont changé. GC est en concurrence avec les fils de requête pour les ressources du serveur telles que le processeur, le cache tampon, la génération de journaux d'annulation et les I/O opérations d'écriture, ce qui peut réduire le débit des requêtes. Comme GC analyse les données qui ne sont pas activement touchées par les requêtes, cela peut avoir un impact sur le cache tampon du nœud d'écriture. Le cluster peut subir des I/O opérations d'écriture supplémentaires et avoir davantage de journaux d'annulation à purger lorsque le GC effectue de nouvelles suppressions, ce qui peut également entraîner des valeurs plus élevées pour la `UndoLogListSize` métrique. 

 GC peut être exécuté en deux modes, `soft_delete` et`enabled`. Lorsqu'elles sont exécutées dans ce `soft_delete` mode, les entrées de dictionnaire non utilisées sont marquées comme supprimées (soft\$1delete) mais ne sont pas supprimées explicitement. Ce mode peut également être utilisé pour comprendre les caractéristiques de performance une fois le fonctionnement en arrière-plan activé. Lorsque le `enabled` mode est utilisé, les entrées sont explicitement supprimées (suppression « dure »). Il est recommandé d'exécuter GC en `soft_delete` mode pendant un certain temps avant de passer `enabled` en mode. 

 Dictionary GC prend en charge une simultanéité maximale de 16 (sur les machines dotées de 16 cœurs ou plus). Il s'exécute par défaut avec un seul thread, mais il peut être exécuté avec une plus grande simultanéité lorsqu'il est activé pour la première fois. Les threads GC du dictionnaire s'exécutent avec la même priorité que les fils de requête, et ils utilisent les ressources de l'auteur de la même manière. 

 Le dictionnaire GC peut être activé via le `neptune_lab_mode` [paramètre](parameters.md) en réglant la `DictionaryGCMode` clé. Il accepte trois valeurs possibles : `disabled` (par défaut)`soft_delete`, ou`enabled`. Par exemple, l'exemple de code suivant définirait la valeur `DictionaryGCMode` sur `soft_delete` : 

```
neptune_lab_mode = 'DictionaryGCMode=soft_delete'
```

 Le [paramètre](parameters.md) de simultanéité `DictionaryGCConcurrency` est facultatif et peut prendre une valeur comprise entre 1 et 16. S'il est défini sur une valeur supérieure au minimum de 16 et au nombre de cœurs, la simultanéité est plafonnée à cette valeur. 

```
neptune_lab_mode = 'DictionaryGCMode=soft_delete,DictionaryGCConcurrency=2'
```

 La tâche GC du dictionnaire est activée en arrière-plan après le démarrage du serveur, une fois que certaines données sont disponibles. L'état du moteur affiche l'état actuel du dictionnaire GC. L'exemple de sortie ci-dessous montre que le dictionnaire GC est en `soft_delete` mode et fonctionne avec une simultanéité de 2. Si la tâche en arrière-plan est en cours d'exécution, il peut s'agir de rechercher activement les entrées de dictionnaire inutilisées et de les supprimer, ou d'attendre une nouvelle série de suppressions pour déclencher un nouveau cycle de GC. 

```
{"status":"healthy",...,"labMode":{"ObjectIndex":"disabled","DictionaryGC":"{Mode=enabled,Concurrency=2}"},...}
```

 Le dictionnaire GC est suspendu lorsque l'une des conditions suivantes est remplie : 
+  Chargement en vrac actif. 
+  La mémoire disponible est inférieure à 15 Go. 
+  `UndoLogListSize`est supérieur à 1 000 000. 