Moteur Amazon Neptune version 1.1.1.0 (2022-04-19) - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Moteur Amazon Neptune version 1.1.1.0 (2022-04-19)

Depuis 2022-04-19, la version 1.1.1.0 du moteur est généralement déployée. Veuillez noter que plusieurs jours sont nécessaires pour qu’une nouvelle version soit disponible dans chaque région.

Versions de correctifs ultérieures pour cette version

Nouvelles fonctionnalités pour cette version du moteur

Améliorations de cette version du moteur

  • Ajout de nouvelles fonctions àOpenEncryphertels que la prise en charge des requêtes paramétrées, la mise en cache de l'arbre de syntaxe abstraite (AST) pour les requêtes paramétrées, les améliorations des chemins de longueur variable (VLP) et de nouveaux opérateurs et clauses. VoirConformité aux normes OpenCypher dans Amazon Neptunepour le niveau actuel de support linguistique.

  • Amélioration significative des performances d'OpenCypher pour les charges de travail simples en lecture et en écriture, ce qui s'est traduit par un débit plus élevé par rapport à la version 1.1.0.0.

  • Suppression des limitations bidirectionnelles et de profondeur d'OpenCypher qui géraient les chemins de longueur variable.

  • Support complet dans le moteur DFE pour Gremlinwithinetwithoutles prédicats, y compris les cas où ils sont combinés avec d'autres opérateurs de prédicats. Par exemple :

    g.V().has('age', within(12, 15, 18).or(gt(30)))
  • Support étendu dans le moteur DFE pour le Gremlinorderétape où la portée est globale (c'est-à-dire nonorder(local)), et quandby()les modulateurs ne sont pas utilisés. Par exemple, cette requête serait désormais compatible avec DFE :

    g.V().values("age").order()
  • Ajout d'unisLastOpauJournal des modifications de Neptune Streamsformat de réponse, pour indiquer qu'un enregistrement est la dernière opération de sa transaction.

  • Amélioration significative des performances de journalisation des audits et réduction de la latence lorsque la journalisation des audits est activée.

  • Gremlin converti WebSocket bytecode et requêtes HTTP dans un format lisible par l'utilisateur dans les journaux d'audit. Les requêtes peuvent désormais être directement copiées à partir des journaux d'audit pour être exécutées dans les blocs-notes Neptune et ailleurs. Notez que cette modification du format actuel du journal d'audit constitue une modification majeure.

Défauts corrigés dans cette version du moteur

  • Correction d'un bug rare de Gremlin où aucun résultat n'était renvoyé lors de l'utilisation d'imbriquéfilter()etcount()étapes combinées, par exemple dans la requête suivante :

    g.V("1").filter(out("knows") .filter(in("knows") .hasId("notExists")) .count())
  • Correction d'un bogue Gremlin qui renvoyait une erreur lors de l'utilisation d'un sommet stocké par une étape d'agrégation dans l'un desto()oufrom()traverses en conjonction avec unaddEÉtape. Voici un exemple d'une telle requête :

    g.V("id").aggregate("v").out().addE().to(select("v").unfold()))
  • Correction d'un bug de Gremlin oùnotL'étape échouait dans les cas extrêmes lors de l'utilisation du moteur DFE. Par exemple :

    g.V().not(V())
  • Correction d'un bug Gremlin oùsideEffectles valeurs n'étaient pas disponibles dansto()etfrom()Traversals.

  • Correction d'un bogue qui provoquait parfois une réinitialisation rapide pour déclencher un basculement d'instance.

  • Correction d'un bogue de chargement en bloc qui empêchait la fermeture d'une transaction échouée avant le début de la tâche de chargement suivante.

  • Correction d'un bogue de chargement en bloc qui pouvait provoquer un crash du système en cas de manque de mémoire.

  • Ajout d'une nouvelle tentative pour corriger un bogue de chargement en bloc en raison duquel le chargeur n'a pas attendu assez longtemps pour que les informations d'identification IAM soient disponibles après un basculement.

  • Correction d'un bogue en raison duquel le cache d'identifiants interne n'était pas effacé correctement pour les points de terminaison ne faisant pas appel à des requêtes telsstatuspoint de terminaison

  • Correction d'un bogue relatif aux flux pour garantir que les numéros de séquence de validation des flux sont correctement ordonnés

  • Correction d'un bogue en raison duquel les connexions de longue durée étaient interrompues moins de dix jours sur les clusters compatibles IAM.

Versions en langage de requête prises en charge dans cette version

Avant de mettre à niveau un cluster de bases de données vers la version 1.1.1.0, assurez-vous que votre projet est compatible avec les versions du langage de requête suivantes :

  • Version Gremlin : 3.5.2

  • Version d'OpenCypher : Neptune-9.0.20190305-1.0

  • Version de SPARQL : 1.1

Chemins de mise à niveau vers la version 1.1.1.0

Vous pouvez mettre à niveau manuellement n'importe quelle version précédente du moteur Neptune vers cette version. Notez que les versions antérieures au moteur de version principal (1.1.0.0) mettront plus de temps à effectuer la mise à niveau vers cette version.

Vous ne serez pas automatiquement mis à niveau vers cette version.

Mise à niveau vers cette version

Important

Mise à niveau vers cette version du moteur depuis n'importe quelle version antérieure à1.1.0.0déclenche également une mise à niveau du système d'exploitation sur toutes les instances de votre cluster de bases de données. Comme les demandes d'écriture actives qui se produisent lors de la mise à niveau du système d'exploitation ne seront pas traitées, vous devez suspendre toutes les charges de travail d'écriture sur le cluster en cours de mise à niveau, y compris les chargements de données en masse, avant de commencer la mise à

Au début de la mise à niveau, Neptune génère un instantané dont le nom est composé depreupgradesuivi d'un identifiant généré automatiquement en fonction des informations de votre cluster de bases de données. Cet instantané ne vous sera pas facturé et vous pouvez l'utiliser pour restaurer votre cluster de bases de données en cas de problème pendant le processus de mise à niveau.

Une fois la mise à niveau du moteur terminée, la nouvelle version du moteur sera disponible brièvement sur l'ancien système d'exploitation, mais en moins de 5 minutes, toutes les instances de votre cluster commenceront simultanément une mise à niveau du système d'exploitation. Votre cluster de bases de données ne sera pas disponible à ce stade pendant environ 6 minutes. Vous pouvez reprendre les charges de travail en écriture une fois la mise à niveau terminée

Ce processus génère les événements suivants :

  • Messages d'événement par cluster :

    • Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]

    • Database cluster major version has been upgraded

  • Messages d'événement par instance :

    • Applying off-line patches to DB instance

    • DB instance shutdown

    • Finished applying off-line patches to DB instance

    • DB instance restarted

Si un cluster de base de données exécute une version du moteur à partir de laquelle il existe un chemin de mise à niveau vers cette version, il peut être mis à niveau dès maintenant. Vous pouvez mettre à niveau tout cluster éligible à l'aide des opérations du cluster de base de données sur la console ou à l'aide du SDK. La commande CLI suivante permet de mettre à niveau immédiatement un cluster éligible :

Pour Linux, OS X ou Unix :

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

Pour Windows :

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

Au lieu de--apply-immediately, vous pouvez spécifier--no-apply-immediately. Pour effectuer une mise à niveau de version majeure, allow-major-version-upgrade Le paramètre est requis. Veillez également à inclure la version du moteur, sinon votre moteur pourrait être mis à niveau vers une version différente.

Si votre cluster utilise un groupe de paramètres de cluster personnalisé, veillez à inclure ce paramètre pour le spécifier :

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

De même, si des instances du cluster utilisent un groupe de paramètres de base de données personnalisé, veuillez inclure ce paramètre pour le spécifier :

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

Testez toujours avant la mise à niveau

Lorsqu'une nouvelle version majeure ou mineure du moteur Neptune est publiée, testez toujours vos applications Neptune sur celle-ci avant de procéder à la mise à niveau. Même une mise à niveau mineure peut introduire de nouvelles fonctionnalités ou de nouveaux comportements susceptibles d'affecter votre code.

Commencez par comparer les pages de notes de publication de votre version actuelle à celles de la version cible pour voir s'il y aura des modifications dans les versions du langage de requête ou d'autres modifications majeures.

La meilleure façon de tester une nouvelle version avant de mettre à niveau votre cluster de base de données de production est de cloner votre cluster de production afin que le clone exécute la nouvelle version du moteur. Vous pouvez ensuite exécuter des requêtes sur le clone sans affecter le cluster de base de données de production.

Créez toujours un instantané manuel avant de procéder à la mise à niveau

Avant d'effectuer une mise à niveau, nous vous recommandons vivement de toujours créer un instantané manuel de votre cluster de bases de données. Un instantané automatique n'offre qu'une protection à court terme, alors qu'un instantané manuel reste disponible jusqu'à ce que vous le supprimiez explicitement.

Dans certains cas, Neptune crée un instantané manuel pour vous dans le cadre du processus de mise à niveau, mais vous ne devez pas vous y fier et vous devez créer votre propre instantané manuel dans tous les cas.

Lorsque vous êtes certain de ne pas avoir besoin de rétablir l'état de votre cluster de bases de données avant la mise à niveau, vous pouvez supprimer explicitement l'instantané manuel que vous avez créé vous-même, ainsi que l'instantané manuel que Neptune a pu créer. Si Neptune crée un instantané manuel, il portera un nom commençant parpreupgrade, suivi du nom de votre cluster de bases de données, de la version du moteur source, de la version du moteur cible et de la date.

Pour plus d'informations sur la mise à niveau de la version du moteur, veuillezMises à jour du moteur Neptune. En cas de question supplémentaire, veuillez contacterAWSL'équipe Support est disponible sur les forums de la communauté et viaAWSPrise en Support Premium.