

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.

# Almacenamiento
<a name="storage"></a>

 Neptune admite la recopilación de elementos no utilizados (GC) en el diccionario para los datos de gráficos de propiedades, que se puede habilitar mediante el [parámetro](parameters.md) `neptune_lab_mode` cuando `neptune_streams` no está activo. Cuando se activa, este trabajo en segundo plano limpia las entradas del diccionario que no se utilizan, lo que puede reducir la tasa de crecimiento de los datos. La característica se puede ejecutar en dos modos: soft\$1delete (marcar las entradas como eliminadas sin eliminarlas de forma explícita) y enabled (eliminar las entradas de forma explícita). El proceso de GC puede afectar al rendimiento del sistema al competir con los subprocesos de consulta para obtener recursos como la CPU y la caché del búfer y puede ejecutarse con una simultaneidad máxima de 16 subprocesos. 

 Neptune también admite edge generado por un servidor en línea IDs, que se puede habilitar mediante un [parámetro](parameters.md) de configuración cuando neptune\$1streams no está activo. Cuando esta función está habilitada, el servidor genera líneas integradas únicas IDs para los bordes que no tienen un identificador definido por el usuario, utilizando el prefijo reservado «neptune\$1reserved». Estos elementos en línea no IDs se almacenan en el diccionario, lo que puede mejorar la eficiencia del almacenamiento. 

**Topics**
+ [Recopilación de elementos no utilizados en el diccionario de Neptune](storage-gc.md)
+ [ID de borde generado por el servidor en línea de Neptune](storage-edge-id.md)

# Recopilación de elementos no utilizados en el diccionario de Neptune
<a name="storage-gc"></a>

 Neptune admite la recopilación de elementos no utilizados (GC) en el diccionario, que se puede habilitar mediante el [parámetro](parameters.md) `neptune_lab_mode` para los datos de gráficos de propiedades. Se puede habilitar para clústeres que solo contengan datos de gráficos de propiedades cuando `neptune_streams` no esté habilitado. La característica se deshabilita automáticamente si `neptune_streams` está habilitado o si hay datos `neptune_streams` que no hayan caducado. La característica requiere el reinicio de la instancia del escritor para activarse. Esta característica está disponible a partir de la versión [1.4.3.0](https://docs.aws.amazon.com/releases/release-1.4.3.0.xml) del motor. 

 Cuando está habilitada, las entradas del diccionario que no se utilizan se limpian mediante un trabajo en segundo plano. No reduce`VolumeBytesUsed`, sino que libera espacio en el índice para nuevas inserciones. Es probable que la tasa de crecimiento de `VolumeBytesUsed` sea menor cuando la GC del diccionario está habilitada en comparación con cuando no lo está. 

 La recopilación de elementos no utilizados en el diccionario se ejecuta en segundo plano y analiza todos los datos del gráfico y del diccionario 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 en el arranque. GC compite con los subprocesos de consulta por los recursos del servidor, como la CPU, la caché del búfer, la generación de registros de deshacer y I/O las operaciones de escritura, lo que podría reducir el rendimiento de las consultas. Dado que la GC analiza datos que las consultas no modifican activamente, puede afectar a la caché del búfer del nodo de escritura. El clúster podría realizar más I/O operaciones de escritura y tener más registros de deshechos que depurar a medida que GC realice nuevas eliminaciones, lo que también puede dar como resultado 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\$1delete), 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 `enabled` este modo, las entradas se eliminan de forma explícita (eliminación «obligatoria»). Se recomienda ejecutar la GC en el modo `soft_delete` durante un tiempo antes de cambiar al modo `enabled`. 

 La GC en el diccionario 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 subprocesos de GC en el diccionario se ejecutan con la misma prioridad que los subprocesos de consulta y compiten por los recursos del escritor de forma equitativa. 

 La GC en el diccionario se puede habilitar a través del [parámetro](parameters.md) `neptune_lab_mode`configurando la clave `DictionaryGCMode`. Acepta tres valores posibles: `disabled` (predeterminado), `soft_delete` o`enabled`. Por ejemplo, el siguiente ejemplo de código establece `DictionaryGCMode` en `soft_delete`: 

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

 El [parámetro](parameters.md) de simultaneidad, `DictionaryGCConcurrency`, es opcional y puede tener un valor entre 1 y 16. Si se establece en un valor superior al mínimo de 16 y al número de núcleos, la simultaneidad se limita a ese valor. 

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

 El trabajo de GC en el diccionario se habilita en segundo plano después de que se inicie el servidor, una vez que hay datos disponibles. El estado del motor muestra el estado actual de GC en el diccionario. El ejemplo de salida que se muestra a continuación indica que la GC en el diccionario está en modo `soft_delete` y se ejecuta con una simultaneidad de 2. Si el trabajo en segundo plano se está ejecutando, puede que esté buscando activamente entradas del diccionario que no estén en uso y eliminándolas, o esperando a que un nuevo conjunto de eliminaciones active una nueva ronda de GC. 

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

 La GC en el diccionario se detiene cuando se cumple cualquiera de estas condiciones: 
+  Carga masiva activa. 
+  La memoria que se puede liberar es inferior a 15 GB. 
+  `UndoLogListSize` es superior a 1 000 000. 

# ID de borde generado por el servidor en línea de Neptune
<a name="storage-edge-id"></a>

 Neptune es compatible con Edge generado por servidor en línea. IDs Se puede habilitar mediante el [parámetro](parameters.md) de configuración de Neptune `neptune_enable_inline_server_generated_edge_id` cuando `neptune_streams` no está habilitado. Esta función está disponible para las consultas de Gremlin a partir de la versión [1.4.3.0](https://docs.aws.amazon.com/releases/release-1.4.3.0.xml) del motor y estará disponible para consultas OpenCypher en una versión futura. 

 El ID de borde es el identificador único de un borde. Se puede proporcionar un ID de borde al insertar un borde. Si no se proporciona ningún ID, el servidor genera y asigna un ID basado en UUID al borde de forma predeterminada. Al igual que el ID definido por el usuario, el ID generado por el servidor basado en UUID se almacena en el diccionario. 

 Cuando la característica `neptune_enable_inline_server_generated_edge_id` está habilitada, el servidor genera un ID en línea único cuando no se proporciona ningún ID en la consulta. Los bordes insertados no IDs se almacenan en el diccionario, lo que mejora la eficiencia del almacenamiento. Las líneas insertadas generadas por el servidor IDs comienzan con el prefijo reservado. `neptune_reserved` 

**aviso**  
 Neptune reserva el `'neptune_reserved'` prefijo para el servidor generado en línea. IDs Se mostrará un error en las consultas que intenten insertar datos con un ID definido por el usuario que comience con el prefijo reservado. 

 La característica de ID de borde generado por el servidor en línea se puede habilitar configurando el parámetro del clúster `neptune_enable_inline_server_generated_edge_id` en `1`. Es necesario reiniciar la instancia. En el siguiente ejemplo se habilita la característica de ID de borde generado por el servidor: 

```
"ParameterName=neptune_enable_inline_server_generated_edge_id,ParameterValue=1,ApplyMethod=pending-reboot"
```

 Para verificar si la característica está habilitada, puede comprobar las características en el estado del motor. Esta característica se deshabilita automáticamente si `neptune_streams` está habilitado. En el siguiente ejemplo de salida, se muestra el estado del motor para la característica habilitada: 

```
"features":{"InlineServerGeneratedEdgeId":"enabled"}
```

 El siguiente ejemplo de Gremlin agrega un borde sin un ID definido por el usuario cuando la característica de ID de borde generado por el servidor en línea está habilitada: 

```
curl - X POST--url https: //<neptune-cluster-endpoint>:8182/gremlin/ --data '{"gremlin":"g.withSideEffect(\"Neptune#disablePushdownOptimization\", true).addV().property(id, \"a\").addV().property(id, \"b\").addE(\"el\").to(V(\"a\"))"}'
{
    "requestId": "b6b84605-53ad-4c04-baf1-7f0f31a3aeaf",
    "status": {
        "message": "",
        "code": 200,
        "attributes": {
            "@type": "g:Map",
            "@value": []
        }
    },
    "result": {
        "data": {
            "@type": "g:List",
            "@value": [{
                "@type": "g:Edge",
                "@value": {
                    "id": "neptune_reserved_231850767",
                    "label": "el",
                    "inVLabel": "vertex",
                    "outVLabel": "vertex",
                    "inV": "a",
                    "outV": "b"
                }
            }]
        },
        "meta": {
            "@type": "g:Map",
            "@value": []
        }
    }
}
```