Motore Amazon Neptune versione 1.0.4.0 (12/10/2020) - 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à.

Motore Amazon Neptune versione 1.0.4.0 (12/10/2020)

A partire dal 12 ottobre 2020, viene implementata a livello generale la versione del motore 1.0.4.0. Tieni presente che occorrono diversi giorni prima che una nuova versione diventi disponibile in ogni regione.

Rilascio di patch successive per questa versione

Nuove caratteristiche in questa versione del motore

  • Aggiunta la compressione a livello di frame per Gremlin.

Miglioramenti in questo rilascio del motore

  • Amazon Neptune ora richiede l'uso del Secure Sockets Layer (SSL) con il protocollo TLSv1.2 per tutte le connessioni a Neptune in tutte le regioni, utilizzando queste suite di crittografia avanzata:

    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

    Questo vale sia per le connessioni REST che WebSocket a Neptune e significa che è necessario utilizzare HTTPS anziché HTTP per la connessione a Neptune in tutte le regioni.

    Poiché le connessioni client che utilizzano HTTP o TLS 1.1 non saranno più supportate da nessuna parte, assicurati che i client e il codice siano stati aggiornati per utilizzare TLS 1.2 e HTTPS prima di eseguire l'aggiornamento a questo rilascio del motore.

Importante

La necessità di utilizzare SSL/TLS per tutte le connessioni a Neptune può costituire un cambiamento radicale. Influisce sulle connessioni con la console di Gremlin, il driver di Gremlin, Gremlin Python, .NET, Node.js, le REST API e anche le connessioni del sistema di bilanciamento del carico. Se hai utilizzato HTTP per alcune o tutte queste opzioni, ora devi aggiornare il client e i driver pertinenti, oltre che modificare il codice per utilizzare HTTPS, altrimenti le connessioni non riescono.

Un bug in questo rilascio ha consentito alle connessioni HTTP e/o alle connessioni TLS obsolete di continuare a funzionare per i clienti che in precedenza avevano impostato un parametro del cluster database per impedire l'applicazione delle connessioni HTTPS. Questo bug è stato corretto nei rilasci di patch 1.0.4.0.R2 e 1.0.4.1.R2, ma la correzione ha causato errori di connessione imprevisti quando le patch vengono installate automaticamente.

Per questo motivo, entrambe le patch sono state ripristinate e possono essere installate solo manualmente, per darti la possibilità di aggiornare la configurazione per TLS 1.2.

  • Aggiornamento a TinkerPop versione 3.4.8. Si tratta di un aggiornamento retrocompatibile. Consulta il log delle modifiche di TinkerPop per sapere le novità.

  • Miglioramento delle prestazioni per il passaggio properties() di Gremlin.

  • Aggiunti dettagli su BindOp e MultiplexerOp nei rapporti esplicativi e di profilo.

  • Aggiunto il prefetch dei dati per migliorare le prestazioni in caso di errori nella cache.

  • Aggiunta una nuova impostazione allowEmptyStrings nel parametro parserConfiguration dello strumento di caricamento in blocco che consente di trattare le stringhe vuote come valori di proprietà validi nei caricamenti in formato CSV (consulta Parametri della richiesta dello dello strumento di caricamento Neptune).

  • Lo strumento di caricamento consente ora l'escape del punto e virgola nelle colonne CSV a più valori.

Difetti corretti in questa versione del motore

  • Corretta una potenziale perdita di memoria di Gremlin relativa al passaggio both().

  • Corretto un bug in cui mancavano le metriche di richiesta perché un endpoint che terminava con '/' non veniva gestito correttamente.

  • Corretto un bug che causava il ritardo delle repliche e il riavvio in condizioni di carico elevato quando il motore DFE era abilitato in modalità di laboratorio.

  • Corretto un bug che impediva la segnalazione del messaggio di errore corretto quando un caricamento in blocco non riusciva a causa di una condizione di esaurimento della memoria.

  • Corretto un bug di SPARQL in cui la codifica dei caratteri veniva inserita nell'intestazione Content-Encoding nelle risposte alle query SPARQL. Ora charset viene invece inserito nell'intestazione Content-Type, per consentire ai client HTTP di riconoscere automaticamente il set di caratteri utilizzato.

Versioni di linguaggio di query supportate in questo rilascio

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

  • Versione di Gremlin: 3.4.8

  • Versione di SPARQL: 1.1

Percorsi di aggiornamento al rilascio del motore 1.0.4.0

È possibile aggiornare manualmente qualsiasi rilascio del motore Neptune precedente a questo rilascio.

Non +possibile effettuare l'aggiornamento automatico a questa versione.

Aggiornamento a questo rilascio

Amazon Neptune 1.0.4.0 è ora disponibile a livello generale.

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 database sulla console o utilizzando SDK. Il seguente comando CLI 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.0.4.0 \ --apply-immediately

Per Windows:

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

Gli aggiornamenti vengono applicati contemporaneamente a tutte le istanze in un cluster di database. Un aggiornamento richiede il riavvio del database su queste istanze, quindi si verificheranno tempi di inattività che vanno da 20-30 secondi a diversi minuti, dopodiché si potrà riprendere a usare il cluster database.

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 del supporto AWS è disponibile nei forum della community e tramite il Supporto AWS Premium.