View a markdown version of this page

Raccolta dei rifiuti del dizionario Neptune - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Raccolta dei rifiuti del dizionario Neptune

Neptune supporta la raccolta dei rifiuti del dizionario (GC) che può essere abilitata tramite il parametro per i dati del grafico delle proprietà. neptune_lab_mode Parametri di Amazon Neptune La funzionalità richiede il riavvio dell'istanza del writer per essere attivata. Questa funzionalità è disponibile a partire dalla release del motore https://docs.aws.amazon.com/releases/release-1.4.3.0.xml 1.4.3.0.

Compatibilità con le versioni del motore precedenti alla 1.4.8.0

Prima della versione del motore 1.4.8.0, era possibile abilitare il dizionario GC solo sui cluster che non erano abilitati. neptune_streams Neptune ha disabilitato automaticamente la funzionalità se abilitata. neptune_streams Neptune ha inoltre disabilitato la funzionalità se esistevano dati non scaduti. neptune_streams A partire dalla versione del motore 1.4.8.0, questa restrizione non si applica più ed è possibile abilitare il dizionario GC sui cluster che sono abilitati. neptune_streams

Se abilitata, le voci del dizionario non utilizzate vengono ripulite da un processo in background. Non riduceVolumeBytesUsed, ma libera spazio nell'indice per nuovi inserti. VolumeBytesUsedÈ probabile che il tasso di crescita in sia inferiore quando il dizionario GC è abilitato rispetto a quando non lo è.

La raccolta dei rifiuti del dizionario viene eseguita in background e analizza tutti i dati del grafico e del dizionario per trovare termini che non sono in uso. Una nuova esecuzione viene attivata all'avvio una volta modificato circa il 6% dei dati. GC è in concorrenza con i thread di interrogazione per quanto riguarda le risorse del server, quali CPU, buffer cache, generazione di undo log e I/O operazioni di scrittura, riducendo potenzialmente il throughput delle query. Poiché GC esegue la scansione dei dati che non vengono toccati attivamente dalle query, può influire sulla cache del buffer sul nodo di scrittura. Il cluster potrebbe visualizzare ulteriori I/O operazioni di scrittura e disporre di più registri di annullamento da eliminare man mano che GC esegue nuove eliminazioni, il che può anche comportare valori più elevati per la metrica. UndoLogListSize

GC può essere eseguito in due modalità, e. soft_delete enabled Quando vengono eseguite in soft_delete modalità, le voci del dizionario non utilizzate vengono contrassegnate come eliminate (soft_delete) ma non vengono eliminate esplicitamente. Questa modalità può essere utilizzata anche per comprendere le caratteristiche delle prestazioni dopo l'attivazione dell'operazione in background. Quando viene utilizzata la enabled modalità, le voci vengono eliminate in modo esplicito (eliminazione «definitiva»). Si consiglia di far funzionare GC in soft_delete modalità per un certo periodo di tempo prima di passare alla enabled modalità.

Dictionary GC supporta una concorrenza massima di 16 (su macchine con 16 o più core). Viene eseguito per impostazione predefinita con un singolo thread, ma può essere eseguito con una maggiore concorrenza se abilitato per la prima volta. I thread GC del dizionario vengono eseguiti con la stessa priorità dei thread di query e competono allo stesso modo con le risorse dello scrittore.

Il dizionario GC può essere abilitato tramite il neptune_lab_mode parametro impostando la chiave. DictionaryGCMode Accetta tre valori possibili: disabled (predefinito)soft_delete, oenabled. Ad esempio, il seguente esempio di codice imposterebbe il valore DictionaryGCMode susoft_delete:

neptune_lab_mode = 'DictionaryGCMode=soft_delete'

Il parametro concurrency,DictionaryGCConcurrency, è facoltativo e può assumere un valore compreso tra 1 e 16. Se impostato su un valore superiore al minimo di 16 e al numero di core, la concorrenza è limitata a tale valore.

neptune_lab_mode = 'DictionaryGCMode=soft_delete,DictionaryGCConcurrency=2'

Il processo GC del dizionario viene abilitato in background dopo l'avvio del server, una volta che sono disponibili alcuni dati. Lo stato del motore mostra lo stato corrente del dizionario GC. L'output di esempio mostrato di seguito mostra che il dizionario GC è in soft_delete modalità e funziona con una concorrenza di 2. Se il processo in background è in esecuzione, potrebbe cercare attivamente le voci del dizionario non utilizzate ed eliminarle, oppure attendere che una nuova serie di eliminazioni inneschi un nuovo ciclo di GC.

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

Dictionary GC viene messo in pausa quando viene soddisfatta una di queste condizioni:

  • Caricamento in blocco attivo.

  • La memoria liberabile è inferiore a 15 GB.

  • UndoLogListSizeè superiore a 1.000.000.