Versión 1.3.4.0 del motor de Amazon Neptune (01/10/2024) - Amazon Neptune

Versión 1.3.4.0 del motor de Amazon Neptune (01/10/2024)

A partir del 1 de octubre de 2024, se implementará de forma general la versión 1.3.4.0 del motor. Tenga en cuenta que las versiones nuevas tardan unos días en estar disponibles en todas las regiones.

nota

En la versión 1.3.0.0 del motor, se introdujo un nuevo formato para los grupos de parámetros personalizados y los grupos de parámetros de clústeres personalizados. En consecuencia, si va a actualizar una versión de motor anterior a la 1.3.0.0 a una versión de motor 1.3.0.0 o posterior, debe volver a crear todos los grupos de parámetros personalizados y los grupos de parámetros de clúster personalizados existentes utilizando la familia de grupos de parámetros neptune1.3. En las versiones anteriores, se utilizaba la familia de grupos de parámetros neptune1 o neptune1.2, y esos grupos de parámetros no funcionan con la versión 1.3.0.0 y las versiones posteriores. Del mismo modo, debe utilizar los grupos de parámetros de clúster 1.4.0.0 para las versiones de motor 1.4.0.0 y superiores. Para obtener más información, consulte Grupos de parámetros de Amazon Neptune.

aviso

Se ha detectado un problema con las operaciones de actualización de SPARQL 1.1 que puede darse en determinadas condiciones cuando se utilizan operadores de actualización con políticas de autorización basadas en acciones. Si utiliza las operaciones de actualización de SPARQL 1.1 con políticas de autorización basadas en acciones, le recomendamos que actualice a la última versión secundaria del motor de Neptune (al menos la 1.3.4.0), que incluye una corrección para este problema.

La caché de planes de consultas se ha desactivado temporalmente para las consultas parametrizadas que incluyen valores de parámetros numéricos debido a un problema en la gestión de usos duplicados de un parámetro de tipo numérico, como en la siguiente consulta:

MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n UNION MATCH (n:show) WHERE n.duration>=$minutes RETURN n parameters={"minutes":130}

Mejoras en esta versión del motor

  • Se ha añadido compatibilidad con la ejecución del paso limit() de Gremlin en recorridos anidados del motor DFE.

  • Se han añadido métricas de CloudWatch relacionadas con la caché de resultados de Gremlin, tal y como se indica a continuación, que pueden resultar útiles para diagnosticar y ajustar la latencia de la caché de resultados. Consulte Métricas de Neptune para obtener más información.

    NumResultCacheHit NumResultCacheMiss ResultCacheSizeInBytes ResultCacheItemCount ResultCacheOldestItemTimestamp ResultCacheNewestItemTimestamp

Defectos corregidos en esta versión del motor

Mejoras generales
  • Se ha corregido un error por el que, en casos excepcionales, el motor se bloqueaba en lugar de devolver un error de consulta.

Correcciones de Gremlin
  • Hemos mejorado la gestión de las solicitudes y la notificación de errores cuando un cliente o un proxy envía una solicitud de actualización de websocket a través de una conexión HTTP establecida o utilizada (antes se devolvían respuestas 400 con el error “no gremlin script supplied, code MissingParameterException”).

  • Se ha optimizado la gestión de los pasos mergeV con actualizaciones de los valores de las propiedades de cardinalidad única. Por ejemplo, la siguiente consulta ahora es compatible de forma nativa con Neptune.

    g.mergeV([(T.id): 1234]). option(onMatch, ['age': single(20), 'name': single('alice'), 'city': set('miami')])
  • Se ha corregido un error de evaluación de consultas del DFE de Gremlin que provocaba que las consultas fallaran con una InternalFailureException cuando la consulta incluía una función lógica ToMap destinada a generar un mapa en tiempo de ejecución y la salida del mapa se utilizaba como clave de agregación (en DFEAggregationNode). Consulta de ejemplo afectada:

    g.V("1").as("a").as("b").select("a","b").dedup()
Correcciones de openCypher
  • Se ha corregido un error por el que, al ejecutar collect(distinct()) con valores null, se producía un error.

  • Se ha corregido un error por el que, al ejecutar una consulta parametrizada que incluyera un filtro de rango (</<=/>/>= con respecto al valor del parámetro), los resultados se duplicaban o faltaban.

  • Se ha corregido un error que provocaba que el motor DFE generaba más salida de la solicitada en consultas con límite, lo que podía provocar errores de memoria insuficiente.

Correcciones de SPARQL
  • Se ha corregido un error por el que, al ejecutar una consulta de actualización de SPARQL federada en clústeres habilitados para la autenticación de IAM, se devolvía un error.

  • Se han corregido los permisos basados en acciones para las operaciones de actualización de SPARQL 1.1.

Versiones de lenguaje de consulta admitidas en esta versión

Antes de actualizar un clúster de base de datos a la versión 1.3.4.0, asegúrese de que el proyecto sea compatible con estas versiones de lenguaje de consulta:

  • Compatible con la primera versión de Gremlin: 3.7.1

  • Compatible con la última versión de Gremlin: 3.7.1

  • Versión de openCypher: Neptune-9.0.20190305-1.0

  • Versión de SPARQL: 1.1

Rutas de actualización a la versión 1.3.4.0 del motor

Puede actualizar a esta versión desde la versión 1.2.0.0 o superior del motor.

Actualización a esta versión

Si un clúster de base de datos ejecuta una versión de motor desde la que existe una ruta de actualización a esta versión, puede actualizarse ahora. Puede actualizar cualquier clúster que cumpla los requisitos mediante las operaciones del clúster de base de datos de la consola o mediante el SDK. El siguiente comando de la CLI actualizará inmediatamente un clúster que cumpla los requisitos:

Para Linux, OS X o Unix:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.3.4.0 \ --allow-major-version-upgrade \ --apply-immediately

Para Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.3.4.0 ^ --allow-major-version-upgrade ^ --apply-immediately

En lugar de --apply-immediately, puede especificar --no-apply-immediately. Para realizar una actualización de versión principal, es necesario el parámetro allow-major-version-upgrade. Además, asegúrese de incluir la versión del motor, ya que es posible que el motor se actualice a otra versión.

Si el clúster utiliza un grupo de parámetros del clúster personalizado, asegúrese de incluir este parámetro para especificarlo:

--db-cluster-parameter-group-name (name of the custom DB cluster parameter group)

Del mismo modo, si alguna instancia del clúster utiliza un grupo de parámetros de base de datos personalizado, asegúrese de incluir este parámetro para especificarlo:

--db-instance-parameter-group-name (name of the custom instance parameter group)

Realice siempre una prueba antes de realizar la actualización

Cuando se publique una nueva versión principal o secundaria del motor de Neptune, pruebe siempre las aplicaciones de Neptune en ella antes de actualizar. Incluso en una actualización secundaria podría haber nuevas características o comportamientos que podrían afectar al código.

Comience por comparar las páginas de notas de la versión actual con las de la versión de destino para ver si hay cambios en las versiones del lenguaje de consulta u otros cambios importantes.

La mejor forma de probar una nueva versión antes de actualizar el clúster de base de datos de producción es clonar el clúster de producción para que el clon ejecute la nueva versión del motor. A continuación, puede ejecutar consultas en el clon sin que eso afecte al clúster de base de datos de producción.

Cree siempre una instantánea manual antes de realizar la actualización

Antes de realizar una actualización, se recomienda crear siempre una instantánea manual del clúster de base de datos. Una instantánea automática solo ofrece protección a corto plazo, mientras que una instantánea manual está disponible hasta que la elimine explícitamente.

En algunos casos, Neptune crea una instantánea manual para usted como parte del proceso de actualización, pero no debe confiar en eso y crear su propia instantánea manual.

Cuando tenga la seguridad de que no necesitará revertir el clúster de base de datos al estado anterior a la actualización, puede eliminar de forma explícita la instantánea manual que ha creado, así como la instantánea manual que Neptune podría haber creado. Si Neptune crea una instantánea manual, tendrá un nombre que empieza por preupgrade, seguido del nombre del clúster de base de datos, la versión del motor de origen, la versión del motor de destino y la fecha.

nota

Si intenta realizar la actualización mientras hay una acción pendiente en proceso, es posible que se produzca un error como el siguiente:

We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.

Si se produce este error, espere a que finalice la acción pendiente o active inmediatamente un periodo de mantenimiento para que se complete la actualización anterior.

Para obtener más información sobre la actualización de la versión del motor, consulte Mantenimiento del clúster de base de datos de Amazon Neptune. Si tiene alguna duda, el equipo de AWS Support está disponible en los foros de la comunidad y a través de AWS Premium Support.