Amazon Neptune Engine versione 1.4.0.0 (2024-11-06) - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Amazon Neptune Engine versione 1.4.0.0 (2024-11-06)

A partire dal 06/11/2020, la versione del motore 1.4.0.0 viene generalmente distribuita. Tieni presente che occorrono diversi giorni prima che una nuova versione diventi disponibile in ogni regione.

Nota

La versione del motore 1.3.0.0 ha introdotto un nuovo formato per i gruppi di parametri personalizzati e i gruppi di parametri del cluster personalizzati. Di conseguenza, se si esegue l'aggiornamento da una versione del motore precedente alla 1.3.0.0 alla versione del motore 1.3.0.0 o successiva, è necessario creare nuovamente tutti i gruppi di parametri personalizzati e i gruppi di parametri del cluster personalizzati esistenti utilizzando la famiglia di gruppi di parametri neptune1.3. Le versioni precedenti utilizzavano la famiglia di gruppi di parametri neptune1 o neptune1.2 e tali gruppi di parametri non funzionano con la versione 1.3.0.0 e successive. Per ulteriori informazioni, consulta Gruppi di parametri di Amazon Neptune.

avvertimento

La cache del piano di query non è temporaneamente supportata per l'esecuzione di query parametrizzate che coinvolgono valori di parametri numerici, a causa di un bug nella gestione degli usi duplicati di un parametro di tipo numerico nella query. Per esempio:

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

Le query che eseguono molte ricerche di indice su istruzioni o indici di dizionario potrebbero registrare una regressione delle prestazioni del 5%. Ad esempio, ottenere un conteggio di tutti i vertici o ottenere il risultato di tutti i vertici non ne id risentirebbe. L'ottenimento di tutte le proprietà di tutti i vertici potrebbe comportare una regressione fino al 5%.

Nuove funzionalità in questa versione del motore

  • Quando un bordo viene aggiunto a un grafico delle proprietà senza un ID esplicito, per impostazione predefinita il server UUID assegna un edge ID basato, che viene memorizzato nel dizionario. Ora, impostando un nuovo parametro del cluster, neptune_enable_server_generated_edge_id = 1, il server eseguirà l'assegnazione utilizzando un numero intero a 8 byte gestito internamente, senza alcun sovraccarico del dizionario. IDs Ciò si traduce in un risparmio di spazio di archiviazione e in un miglioramento delle prestazioni delle query senza alcuna modifica alle query. Questa funzionalità è attualmente supportata solo per gli inserti tramite il linguaggio di interrogazione Gremlin.

  • È stato aggiunto il supporto per l'esecuzione della fase Gremlin limit () negli attraversamenti annidati per il motore. DFE

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

Miglioramenti in questa versione del motore

Miglioramenti generali
  • Neptune recupererà automaticamente lo spazio di annullamento contenuto nelle transazioni di grandi dimensioni una volta completata la transazione e non saranno più necessari i log per il ripristino.

  • Support per la replica sostenibile del database globale. Questa funzionalità consente al cluster secondario di continuare a soddisfare le richieste di lettura durante il riavvio di un'istanza di writer sul cluster primario. In precedenza, al riavvio di un'istanza di writer, venivano riavviate anche tutte le istanze di lettura in un cluster secondario. Con questa versione, le istanze di lettura secondarie del cluster continuano a fornire richieste di lettura durante il riavvio di un'istanza di writer, migliorando la disponibilità di lettura nel cluster.

  • I log di controllo sono ora scritti in modo sincrono, il che garantisce che ogni query venga registrata. Ciò può influire sulle prestazioni per query particolarmente grandi (>100 kb) o carichi di lavoro ad alto throughput (>1000 qps).

Miglioramenti apportati a Gremlin
  • Per impostazione predefinita, il timeout per query è imposto per essere inferiore al timeout a livello di cluster. In una versione precedente, questo controllo era stato introdotto ma doveva essere abilitato in modo esplicito tramite il parametro lab-mode ''. StrictTimeoutValidation In questa versione, 'StrictTimeoutValidation' sarà abilitato per impostazione predefinita e deve essere disabilitato in modo esplicito per mantenere il vecchio comportamento.

openCypher miglioramenti
  • In una versione precedente abbiamo introdotto il supporto esteso del formato datetime, abilitato tramite un parametro DatetimeMillisecond della modalità lab. Questo supporto esteso per il formato datetime è ora abilitato per impostazione predefinita.

SPARQLmiglioramenti
  • Nuove IAM azioni esplicite per i permessi di interrogazione.

    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.

Difetti corretti in questa versione del motore

Correzioni generali
  • È stato risolto un problema con le istanze Serverless che poteva causare il riavvio del database durante la scalabilità.

  • È stato risolto un problema relativo alla gestione dei file di registro di controllo che poteva rendere i file di registro inaccessibili per il download o la rotazione e, in alcuni casi, aumentare l'utilizzo. CPU

  • È stato risolto un problema di interrogazione relativo all'ottimizzazione che ritardava la generazione dell'output delle mappe nel DFE motore.

  • È stato risolto un problema che causava timestamp non corrispondenti tra i log di controllo e i log delle query lente.

Correzioni Gremlin
  • È stato risolto un problema relativo all'invalidazione della cache dei risultati di Gremlin a causa del quale i suggerimenti di interrogazione non venivano incorporati correttamente nella generazione delle chiavi della cache. Per maggiori dettagli, consulta https://issues.apache. org/jira/browse/TINKERPOP-3110.

  • È stato risolto un problema nella gestione delle WebSocket connessioni Gremlin a causa del quale le query in esecuzione per un periodo di tempo superiore al timeout di inattività della connessione venivano interrotte prematuramente. Ciò ha interessato in particolare i client Python Gremlin che utilizzavano il trasporto. AIOHTTP

  • È stato aggiunto il supporto per una stima accurata degli oggetti per la funzionalità di cache dei risultati delle query Gremlin con il nuovo parametro labmodeparameter. AccurateQRCMemoryEstimation

openCypher correzioni
  • È stato risolto un problema nella fase di raccolta che causava un'eccezione di errore interno quando erano presenti valori nulli durante il costrutto di query collect (distinct (n)).

  • È stato risolto un problema NullPointerException che poteva verificarsi nelle query quando la cache del piano di query era abilitata.

  • È stato risolto un problema che consentiva di valutare più dati del necessario quando una query contiene LIMIT una clausola.

  • È stato risolto un problema a causa del quale l'utilizzo delle operazioni di intervallo (<, <=, > =) in una query parametrizzata con una cache del piano di query produceva risultati duplicati.

  • È stato risolto un problema che comportava la trasposizione delle colonne dei risultati quando UNION e UNION ALL le operazioni venivano eseguite utilizzando connessioni a bullone.

Versioni di linguaggio di query supportate in questo rilascio

Prima di aggiornare un cluster DB alla versione 1.4.0.0, assicurati che il tuo progetto sia compatibile con queste versioni in linguaggio di query:

  • Versione meno recente di Gremlin supportata: 3.7.1

  • Versione più recente di Gremlin supportata: 3.7.1

  • openCypher versione: Neptune-9.0.20190305-1.0

  • SPARQLversione: 1.1

Percorsi di aggiornamento alla versione 1.4.0.0 del motore

Puoi eseguire l'aggiornamento a questo rilascio dal rilascio del motore 1.2.0.0 o successivi.

Aggiornamento a questo rilascio

Se un cluster database utilizza una versione del motore dalla quale esiste un percorso di aggiornamento a questo rilascio, ora è idoneo all'aggiornamento. È possibile aggiornare qualsiasi cluster idoneo utilizzando le operazioni del cluster DB sulla console o utilizzando il. SDK Il seguente CLI comando aggiornerà immediatamente un cluster idoneo:

Per Linux, OS X o Unix:

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

Per Windows:

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

Invece di --apply-immediately, puoi specificare --no-apply-immediately. Per eseguire un aggiornamento della versione principale, il allow-major-version-upgrade parametro è obbligatorio. Assicurati inoltre di includere la versione del motore onde evitare che il tuo motore venga aggiornato a una versione diversa.

Se il cluster utilizza un gruppo di parametri del cluster personalizzato, assicurati di includere questo parametro per specificarlo:

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

Analogamente, se alcune istanze del cluster utilizzano un gruppo di parametri del database personalizzato, assicurati di includere questo parametro per specificarlo:

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

Eseguire sempre un test prima dell'aggiornamento

Quando viene rilasciata una nuova versione principale o secondaria del motore Neptune, testa sempre le applicazioni Neptune su di essa prima di procedere all'aggiornamento. Anche un aggiornamento secondario potrebbe introdurre nuove funzionalità o comportamenti che possono influire sul codice.

Inizia confrontando le pagine delle note di rilascio della versione corrente con quelle della versione di destinazione per valutare se verranno modificate le versioni del linguaggio di query o verranno introdotte altre modifiche che causano interruzioni.

Il modo migliore per testare una nuova versione prima di aggiornare il cluster database di produzione è clonare il cluster di produzione affinché il clone esegua la nuova versione del motore. È quindi possibile eseguire query sul clone senza influire sul cluster database di produzione.

Creare sempre uno snapshot manuale prima dell'aggiornamento

Prima di procedere a un aggiornamento, è consigliabile creare sempre uno snapshot manuale del cluster database. Uno snapshot automatico offre solo una protezione a breve termine, mentre uno snapshot manuale rimane disponibile fino a quando non lo elimini esplicitamente.

In alcuni casi Neptune crea automaticamente uno snapshot manuale come parte del processo di aggiornamento, ma non è consigliabile farvi affidamento ed è comunque opportuno creare sempre il proprio snapshot manuale.

Quando hai la certezza che non sarà necessario ripristinare lo stato precedente all'aggiornamento del cluster di database, puoi eliminare in modo esplicito lo snapshot manuale che hai creato, così come lo snapshot manuale eventualmente creato da Neptune. Se Neptune crea uno snapshot manuale, questo avrà un nome che inizia con preupgrade, seguito dal nome del cluster database, dalla versione del motore di origine, dalla versione del motore di destinazione e dalla data.

Nota

Se stai tentando di eseguire l'aggiornamento mentre è in corso un'azione in sospeso, potrebbe verificarsi un errore come il seguente:

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.

Se riscontri questo errore, attendi il completamento dell'azione in sospeso o attiva immediatamente una finestra di manutenzione per completare l'aggiornamento precedente.

Per ulteriori informazioni sull'aggiornamento della versione del motore, consulta Gestione del cluster di database Amazon Neptune. In caso di domande o dubbi, il team di AWS supporto è disponibile nei forum della community e tramite AWS Premium Support.