Versión 1.2.1.0.R3 del motor de Amazon Neptune (13/06/2023) - Amazon Neptune

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.

Versión 1.2.1.0.R3 del motor de Amazon Neptune (13/06/2023)

A partir del 13 de junio de 2023, se implementará de forma general la versión 1.2.1.0.R3 del motor. Tenga en cuenta que las versiones nuevas tardan unos días en estar disponibles en todas las regiones.

importante

En algunos casos, ese posible que los cambios introducidos en esta versión del motor provoquen una disminución en el rendimiento de las cargas masivas. En consecuencia, las actualizaciones a esta versión se han suspendido temporalmente hasta que se resuelva el problema.

nota

Si se realiza la actualización desde una versión del motor anterior a la 1.2.0.0:

  • En la versión 1.2.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.2.0.0 a una versión de motor 1.2.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.2. En las versiones anteriores, se utilizaba la familia de grupos de parámetros neptune1, y esos grupos de parámetros no funcionan con la versión 1.2.0.0 y las versiones posteriores. Para obtener más información, consulte Grupos de parámetros de Amazon Neptune.

  • En la versión 1.2.0.0 del motor, también se introdujo un nuevo formato para los registros de deshacer. Como resultado, se deben purgar todos los registros de deshacer que se hayan creado con una versión anterior del motor y la métrica UndoLogsListSize de CloudWatch debe ser cero antes de que se pueda iniciar una actualización desde una versión anterior a la 1.2.0.0. Si hay demasiados registros de deshacer (200 000 o más), al intentar iniciar una actualización, es posible que se agote el tiempo de espera de la purga de los registros de deshacer.

    Para acelerar la velocidad de depuración, actualice la instancia del escritor del clúster, que es donde se realiza la depuración. Si lo hace antes de intentar la actualización, puede reducir el número de registros de deshacer antes de empezar. Si se aumenta el tamaño del escritor a un tipo de instancia 24XL, se puede aumentar la velocidad de purga a más de un millón de registros por hora.

    Si la métrica UndoLogsListSize de CloudWatch es muy grande, abra un caso de soporte para ayudarle a analizar estrategias adicionales para reducirla.

  • Por último, se ha producido un cambio importante en la versión 1.2.0.0 que afecta al código anterior que utilizaba el protocolo Bolt con autenticación de IAM. A partir de la versión 1.2.0.0, Bolt necesita una ruta de recursos para la firma de IAM. En Java, la ruta del recurso podría tener este aspecto: request.setResourcePath("/openCypher"));. En otros lenguajes, /openCypher se puede agregar al URI del punto de conexión. Para ver ejemplos, consulte Uso del protocolo Bolt.

Nuevas características de esta versión del motor

Mejoras en esta versión del motor

  • Se ha mejorado el paso fail() de Gremlin para diferenciar la excepción que se producía de una InternalFailureException genérica y garantizar que cualquier mensaje proporcionado por el usuario que se le proporcionase se propagase de nuevo al intermediario.

  • Se han mejorado las optimizaciones del motor de consultas de Gremlin para store, aggregate, cap, limit y hasLabel.

  • Se ha añadido compatibilidad con las funciones trigonométricas de openCypher:

    • acos()

    • asin()

    • atan()

    • atan2()

    • cos()

    • cot()

    • degrees()

    • pi()

    • radians()

    • sin()

    • tan()

  • Se ha añadido compatibilidad con varias funciones de agregación de openCypher:

    • percentileDisc()

    • stDev()

  • Se ha añadido compatibilidad con la función epochmillis() de openCypher que convierte datetime en epochmillis. Por ejemplo:

    MATCH (n) RETURN epochMillis(n.someDateTime) 1698972364782
  • Se ha añadido compatibilidad con el operador (%) del módulo de openCypher.

  • Se ha añadido compatibilidad con la herramienta Static Debug Explain de openCypher.

  • Se ha añadido compatibilidad con la función randomUUID() de openCypher.

  • Se ha mejorado el rendimiento de openCypher:

    • Se han mejorado el analizador y el planificador de consultas.

    • Se ha mejorado el uso de la CPU en el motor DFE.

    • Se ha mejorado el rendimiento de las consultas que incluyen varias cláusulas de actualización que reutilizan las mismas variables. Algunos ejemplos son:

      MERGE (n {name: 'John'}) or MERGE (m {name: 'Jim'}) or MERGE (n)-[:knows {since: 2023}]→(m)
    • Planes optimizados de consultas para patrones de consulta de varios saltos, como, por ejemplo:

      MATCH (n)-->()-->()-->(m) RETURN n m
    • Se ha mejorado el rendimiento de la inyección de listas y mapas mediante consultas parametrizadas. Por ejemplo:

      UNWIND $idList as id MATCH (n {`~id`: id}) RETURN n.name
    • Se ha mejorado la ejecución de consultas que incluye WITH al convertirla en una barrera adecuada.

    • Se ha optimizado para evitar la materialización redundante de valores en Unfold y las funciones de agregación.

  • Se ha mejorado el rendimiento de las consultas de SPARQL que incluyen un gran número de entradas estáticas en la cláusula VALUES, como, por ejemplo:

    SELECT ?n WHERE { VALUES (?name) { ("John") ("Jim") ... many values ... } ?n a ?n_type . ?n ?name . }
  • Se ha mejorado el rendimiento de las consultas CBD de SPARQL.

Defectos corregidos en esta versión del motor

  • Se ha corregido un error de Gremlin que provocaba que las consultas largas con un anidamiento profundo provocaran un uso elevado de la CPU y tiempos de espera de las consultas durante la fase de planificación de las consultas.

  • Se ha corregido un error de Gremlin que provocaba que se pudiera lanzar una NullPointerException no válida al usar mergeV o mergeE.

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.2.1.0.R3, asegúrese de que el proyecto sea compatible con estas versiones de lenguaje de consulta:

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

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

  • 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.2.1.0.R3 del motor

Actualización a esta versión

La versión 1.2.1.0.R3 de Amazon Neptune ya está disponible con carácter general.

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.2.1.0 \ --apply-immediately

Para Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.2.1.0 ^ --apply-immediately

Las actualizaciones se aplican a todas las instancias en un clúster de base de datos simultáneamente. Una actualización requiere un reinicio de la base de datos en esas instancias, por lo que se experimentará un tiempo de inactividad que oscila entre 20-30 segundos y varios minutos, tras el cual se puede reanudar el uso del clúster de base de datos.

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.