View a markdown version of this page

Version 1.4.0.0 du moteur Amazon Neptune (06/11/2024) - 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.

Version 1.4.0.0 du moteur Amazon Neptune (06/11/2024)

En date du 6 novembre 2024, la version 1.4.0.0 du moteur est généralement déployée. Notez que plusieurs jours sont nécessaires pour qu'une nouvelle version soit disponible dans chaque région.

Note

La version 1.3.0.0 du moteur implique un nouveau format pour les groupes de paramètres personnalisés et les groupes de paramètres de cluster personnalisés. Par conséquent, si vous effectuez une mise à niveau d'une version de moteur antérieure à 1.3.0.0 vers une version de moteur 1.3.0.0 ou supérieure, vous devez recréer tous vos groupes de paramètres personnalisés et groupes de paramètres de cluster personnalisés existants à l'aide de la famille de groupes de paramètres. neptune1.3 Les versions antérieures utilisaient une famille de groupes de paramètres neptune1 ou neptune1.2, lesquels ne sont pas compatibles avec les versions 1.3.0.0 et supérieures. De même, vous devez utiliser les groupes de paramètres de cluster 1.4.0.0 pour les versions de moteur 1.4.0.0 et supérieures. Pour plus d’informations, consultez Groupes de paramètres Amazon Neptune.

Avertissement

Le cache du plan de requêtes n'est temporairement pas pris en charge dans le cas de l'exécution de requêtes paramétrées impliquant des valeurs de paramètres numériques, en raison d'un bogue dans la gestion des utilisations dupliquées d'un paramètre de type numérique dans la requête. Par exemple :

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

Les requêtes qui effectuent de nombreuses recherches d'index sur des déclarations ou des index de dictionnaires peuvent entraîner une régression des performances de 5 %. Par exemple, le fait d'obtenir le nombre de tous les sommets ou d'obtenir le nombre id de tous les sommets ne serait pas affecté. L'obtention de toutes les propriétés de tous les sommets pourrait entraîner une régression allant jusqu'à 5 %.

Nouvelles fonctionnalités de cette version du moteur

  • Lorsqu'une arête est ajoutée à un graphe de propriétés sans identifiant explicite, le serveur attribue par défaut un ID d' UUID-based arête, qui est stocké dans le dictionnaire. Désormais, en définissant un nouveau paramètre de clusterneptune_enable_server_generated_edge_id = 1, le serveur attribuera des identifiants à l'aide d'un entier de 8 octets géré en interne, sans aucune surcharge du dictionnaire. Cela permet de réaliser des économies de stockage et d'améliorer les performances des requêtes sans aucune modification des requêtes. Cette fonctionnalité est actuellement prise en charge pour les insertions via le langage de requête Gremlin uniquement.

  • Ajout de la prise en charge de l'exécution de l'étape Gremlin limit () dans les traversales imbriquées pour le moteur DFE.

    g.V().project("foo").by(out().order().by(T.id).limit(1))

Améliorations apportées à cette version du moteur

Améliorations générales
  • Neptune récupérera automatiquement le stockage des annulations détenu par les transactions importantes une fois que la transaction est terminée et que les journaux ne sont plus nécessaires pour la restauration.

  • Prise en charge de la réplique survivable de la base de données globale. Cette fonctionnalité permet au cluster secondaire de continuer à répondre aux demandes de lecture lors du redémarrage d'une instance d'écriture sur le cluster principal. Auparavant, lorsqu'une instance d'écriture redémarrait, toutes les instances de lecture d'un cluster secondaire redémarraient également. Avec cette version, les instances de lecture de cluster secondaires continuent de répondre aux demandes de lecture lors du redémarrage d'une instance d'écriture, améliorant ainsi la disponibilité de lecture dans le cluster.

  • Les journaux d'audit sont désormais écrits de manière synchrone, ce qui garantit que chaque requête est enregistrée. Cela peut affecter les performances pour les requêtes particulièrement volumineuses (>100 ko) ou les charges de travail à haut débit (>1 000 qps).

Améliorations de Gremlin
  • Le délai d'expiration par requête est défini par défaut pour être inférieur au délai d'expiration au niveau du cluster. Dans une version précédente, cette vérification avait été introduite mais devait être explicitement activée via le paramètre lab-mode « ». StrictTimeoutValidation Dans cette version, « StrictTimeoutValidation » sera activé par défaut et devra être désactivé explicitement pour conserver l'ancien comportement.

Améliorations d’openCypher
  • Dans une version précédente, nous avons introduit la prise en charge étendue du format date/heure, activée via un paramètre DatetimeMillisecond du mode laboratoire. Cette prise en charge étendue du format date/heure est désormais activée par défaut.

Améliorations de SPARQL
  • Nouvelles actions IAM explicites pour les autorisations de requête.

    Previously: COPY: WriteDataViaQuery & ReadDataViaQuery MOVE: WriteDataViaQuery & DeleteDataViaQuery DELETEINSERT: ReadDataViaQuery & DeleteDataViaQuery Now, COPY: WriteDataViaQuery & ReadDataViaQuery & DeleteDataViaQuery MOVE: WriteDataViaQuery & ReadDataViaQuery & DeleteDataViaQuery DELETEINSERT: ReadDataViaQuery, WriteDataViaQuery if there is INSERT clause, DeleteDataViaQuery if there is DELETE clause.

Défauts corrigés dans cette version du moteur

Correctifs généraux
  • Correction d'un problème lié aux instances Serverless qui pouvait entraîner le redémarrage de la base de données lors de la mise à l'échelle.

  • Correction d'un problème lié à la gestion des fichiers journaux d'audit qui pouvait rendre les fichiers journaux inaccessibles pour le téléchargement ou la rotation et, dans certains cas, augmenter l'utilisation du processeur.

  • Correction d'un problème de requête lié à l'optimisation retardant la génération de données cartographiques dans le moteur DFE.

  • Correction d'un problème qui provoquait des horodatages incompatibles entre les journaux d'audit et les journaux de requêtes lents.

Correctifs apportés à Gremlin
  • Résolution d'un problème dans la gestion des WebSocket connexions Gremlin en raison duquel les requêtes exécutées pendant une durée dépassant le délai d'inactivité de la connexion étaient interrompues prématurément. Cela a spécifiquement affecté les clients Python Gremlin utilisant le transport AIOHTTP.

Correctifs apportés à openCypher
  • Correction d'un problème lors de l'étape de collecte qui provoquait une exception d'échec interne lorsque des valeurs nulles étaient présentes lors de la construction de la requête collect (distinct (n)).

  • Correction d'un problème NullPointerException qui pouvait survenir dans les requêtes lorsque le cache du plan de requêtes était activé.

  • Correction d'un problème qui évaluait plus de données que nécessaire lorsqu'une requête contenait une clause LIMIT.

  • Correction d'un problème à cause duquel l'utilisation d'opérations de plage (<, <=, >, >=) dans une requête paramétrée avec un cache de plan de requête produisait des résultats dupliqués.

  • Correction d'un problème qui transposait les colonnes de résultats lorsque les opérations UNION et UNION ALL étaient effectuées à l'aide de connexions boulonnées.

Query-Language Versions prises en charge dans cette version

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

  • Première version de Gremlin prise en charge : 3.7.1

  • Dernière version de Gremlin est prise en charge : 3.7.1

  • Version d'openCypher : Neptune-9.0.20190305-1.0

  • Version de SPARQL : 1.1

Chemins de mise à niveau vers la version 1.4.0.0 du moteur

Vous pouvez effectuer une mise à niveau vers cette version à partir de la version 1.2.0.0 ou supérieure du moteur.

Mise à niveau vers cette version

Si un cluster de bases de données exécute une version de 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 n'importe quel cluster éligible à l'aide des opérations de cluster de bases de données sur la console ou à l'aide du kit SDK. La commande CLI suivante met immédiatement à niveau un cluster éligible :

Pour Linux, OS X ou Unix :

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

Pour Windows :

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

Au lieu d'--apply-immediately, vous pouvez spécifier --no-apply-immediately. Pour effectuer une mise à niveau de version majeure, le paramètre allow-major-version-upgrade est obligatoire. Assurez-vous également d'inclure la version du moteu. Dans le cas contraire, le moteur sera peut-être mis à niveau vers une autre version.

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é, veillez à inclure ce paramètre pour le spécifier :

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

Toujour effectuer des tests avant la mise à niveau

Lorsqu'une nouvelle version majeure ou mineure du moteur Neptune est publiée, testez toujours vos applications Neptune sur cette version 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 le code.

Commencez par comparer les pages de notes de mise à jour de votre version actuelle à celles de la version cible pour déterminer s'il existe des modifications des versions de langage de requête ou d'autres changements majeurs.

Le meilleur moyen de tester une nouvelle version avant de mettre à niveau le cluster de bases de données de production est de cloner ce cluster pour qu'il exécute cette nouvelle version du moteur. Vous pouvez ainsi exécuter des requêtes sur le clone sans affecter le cluster de bases de données de production.

Toujours créer un instantané manuel avant de procéder à la mise à niveau

Avant la mise à niveau, nous vous recommandons vivement de toujours créer un instantané manuel du cluster de bases de données. Un instantané automatique n'offre qu'une protection à court terme, tandis 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 il est préférable de ne pas compter sur ce mécanisme et de créer dans tous les cas votre propre instantané manuel.

Lorsque vous êtes certain de ne pas avoir besoin de rétablir l'état antérieur à la mise à niveau de votre cluster de bases de données, vous pouvez supprimer explicitement l'instantané manuel que vous avez créé vous-même, ainsi que celui que Neptune a éventuellement créé. Si Neptune crée un instantané manuel, il porte un nom commençant par preupgrade, 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.

Note

Si vous essayez de procéder à une mise à niveau alors qu'une action en attente est en cours, une erreur telle que la suivante peut survenir :

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 vous rencontrez cette erreur, attendez que l'action en attente soit terminée ou déclenchez immédiatement une fenêtre de maintenance pour laisser la mise à niveau précédente se terminer.

Pour plus d'informations sur la mise à niveau de la version du moteur , consultez Maintenance du cluster de bases de données Amazon Neptune. Si vous avez des questions ou des préoccupations, l'équipe d' AWS assistance est disponible sur les forums de la communauté et via le support AWS Premium.