Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Neptune admite la recolección de basura en el diccionario (GC), que se puede habilitar mediante el neptune_lab_mode
parámetro para los datos del gráfico de propiedades. Se puede activar para clústeres que solo contengan datos de gráficos de propiedades cuando no neptune_streams
esté activado. La función se deshabilita automáticamente si neptune_streams
está habilitada o si hay neptune_streams
datos que no hayan caducado. La función requiere el reinicio de la instancia de grabación para activarse. Esta función está disponible en la versión 1.4.3.0 del motor.
Cuando está habilitada, las entradas del diccionario no utilizadas se limpian mediante un trabajo en segundo plano. No reduceVolumeBytesUsed
, sino que libera espacio en el índice para nuevas inserciones. Es probable que la tasa de VolumeBytesUsed
crecimiento sea menor cuando el diccionario GC está activado en comparación con cuando no lo está.
La recolección de elementos no utilizados en los diccionarios se ejecuta en segundo plano y analiza todos los datos de gráficos y diccionarios para encontrar términos que no se utilizan. Una vez que se ha modificado aproximadamente el 6% de los datos, se activa una nueva ejecución al arrancar el equipo. Se enfrenta a los subprocesos de consulta de recursos del nodo principal, como la CPU, el búfer de caché, la generación de registros de deshacer y las operaciones de E/S de escritura, lo que podría afectar negativamente al rendimiento de las consultas. Dado que el GC escanea los datos que las consultas no afectan activamente, puede afectar a la caché del búfer del nodo de escritura. El clúster podría realizar más operaciones de E/S de escritura y tener más registros de deshacer que depurar a medida que GC realice nuevas eliminaciones, lo que también puede generar valores más altos para la métrica. UndoLogListSize
El GC se puede ejecutar en dos modos: y. soft_delete
enabled
Cuando se ejecuta en este soft_delete
modo, las entradas del diccionario no utilizadas se marcan como eliminadas (soft_delete), pero no se eliminan de forma explícita. Este modo también se puede utilizar para comprender las características de rendimiento una vez activada la operación en segundo plano. Cuando se utiliza el modo activado, las entradas se eliminan de forma explícita (eliminación «permanente»). Se recomienda ejecutar GC en el soft_delete
modo durante un período de tiempo antes de cambiar al enabled
modo.
El diccionario GC admite una simultaneidad máxima de 16 (en máquinas con 16 o más núcleos). Se ejecuta de forma predeterminada con un solo subproceso, pero se puede ejecutar con una mayor simultaneidad cuando se habilita por primera vez. Los hilos de GC del diccionario se ejecutan con la misma prioridad que los hilos de consulta y se ocupan de los recursos del escritor por igual.
El diccionario GC se puede activar mediante el neptune_lab_mode
parámetro configurando la clave. DictionaryGCMode
Acepta tres valores posibles: disabled
(predeterminado)soft_delete
, oenabled
. Por ejemplo, el siguiente ejemplo de código establecería el valor DictionaryGCMode
ensoft_delete
:
neptune_lab_mode = 'DictionaryGCMode=soft_delete'
El parámetro de simultaneidadDictionaryGCConcurrency
,, es opcional y puede tener un valor entre 1 y 16. Si se establece en un valor superior al mínimo de 16 y el número de núcleos, la simultaneidad se limita a ese valor.
neptune_lab_mode = 'DictionaryGCMode=soft_delete,DictionaryGCConcurrency=2'
La tarea de GC del diccionario se habilita en segundo plano después de que se inicie el servidor, una vez que haya algunos datos disponibles. El estado del motor muestra el estado actual del diccionario GC. El resultado de ejemplo que se muestra a continuación muestra que el diccionario GC está en soft_delete
modo y funcionando con una simultaneidad de 2. Si el trabajo en segundo plano se está ejecutando, podría estar buscando activamente entradas de diccionario no utilizadas y eliminándolas, o esperando a que un nuevo conjunto de eliminaciones desencadene una nueva ronda de GC.
"labMode":{"DictionaryGC":"{Mode=soft_delete,Concurrency=2}"}
El diccionario GC se detiene cuando se cumple alguna de estas condiciones:
-
Carga masiva activa.
-
La memoria liberable es inferior a 15 Gb.
-
UndoLogListSize
es superior a 1 000 000.