

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Coleta de resíduos do dicionário do Neptune
<a name="storage-gc"></a>

 O Neptune oferece suporte à coleta de resíduos (GC) de dicionário, que pode ser habilitada pelo [parâmetro](parameters.md) `neptune_lab_mode` para dados de grafos de propriedade. Pode ser habilitada para clusters com apenas dados de grafos de propriedades quando `neptune_streams` não está habilitado. O recurso é desabilitado automaticamente se `neptune_streams` estiver habilitado ou se houver dados `neptune_streams` não expirados. O recurso requer a reinicialização da instância do gravador para ser ativado. Esse recurso está disponível a partir da versão de mecanismo [1.4.3.0](https://docs.aws.amazon.com/releases/release-1.4.3.0.xml). 

 Quando habilitado, as entradas não utilizadas do dicionário são limpas por um trabalho em segundo plano. Ela não reduz`VolumeBytesUsed`, mas libera espaço no índice para novas inserções. A taxa de crescimento de `VolumeBytesUsed` provavelmente será menor quando a GC de dicionário está habilitada relação a quando não está. 

 A coleta de resíduos do dicionário é executada em segundo plano e verifica todos os dados de grafos e do dicionário para encontrar termos que não estão em uso. Uma nova execução é acionada na inicialização quando aproximadamente 6% dos dados são alterados. O GC compete com os threads de consulta por recursos do servidor, como CPU, cache de buffer, geração de registros de desfazer e I/O operações de gravação, reduzindo potencialmente a taxa de transferência de consultas. Como a GC verifica dados que não são ativamente afetados por consultas, ele pode afetar o cache do buffer no nó do gravador. O cluster pode ver I/O operações de gravação adicionais e ter mais registros de desfazer para limpar à medida que o GC realiza novas exclusões, o que também pode resultar em valores mais altos para a métrica. `UndoLogListSize` 

 O GC pode ser executado em dois modos, `soft_delete` e. `enabled` Quando executadas no `soft_delete` modo, as entradas não utilizadas do dicionário são marcadas como excluídas (soft\$1delete), mas não são excluídas explicitamente. Esse modo também pode ser usado para entender as características de desempenho após a ativação da operação em segundo plano. Quando o `enabled` modo é usado, as entradas são excluídas explicitamente (exclusão 'definitiva'). É recomendável executar a GC no modo `soft_delete` por um tempo antes de mudar para o modo `enabled`. 

 A GC de dicionário é compatível com uma simultaneidade máxima de 16 (em máquinas com 16 ou mais núcleos). Ela é executada por padrão com um único thread, mas pode ser executada com maior simultaneidade quando habilitada pela primeira vez. Os threads da GC de dicionário são executados com a mesma prioridade que os threads de consulta e lidam com os recursos do escritor da mesma forma. 

 A GC de dicionário pode ser habilitada pelo [parâmetro](parameters.md) `neptune_lab_mode` definindo a chave `DictionaryGCMode`. Ela aceita três valores possíveis: `disabled` (padrão), `soft_delete` ou`enabled`. Por exemplo, o seguinte exemplo de código definiria `DictionaryGCMode` como `soft_delete`: 

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

 O [parâmetro](parameters.md) de simultaneidade, `DictionaryGCConcurrency`, é opcional e pode ter um valor entre 1 e 16. Se definido com um valor maior do que o mínimo de 16 e o número de núcleos, a simultaneidade é limitada a esse valor. 

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

 A tarefa de GC do dicionário é habilitada em segundo plano após a inicialização do servidor, quando há alguns dados disponíveis. O status do mecanismo exibe o status atual da GC de dicionário. O exemplo de saída mostrado abaixo mostra que a GC de dicionário está no modo `soft_delete` e em execução com uma simultaneidade de 2. Se a tarefa em segundo plano estiver em execução, ela pode estar procurando ativamente entradas de dicionário não utilizadas e as excluindo ou esperando que um novo conjunto de exclusões acione uma nova rodada de GC. 

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

 A GC de dicionário é pausada quando alguma dessas condições é atendida: 
+  Carregamento em massa ativo. 
+  A memória que pode ser liberada é inferior a 15 GB. 
+  `UndoLogListSize` é maior do que 1.000.000. 