Amazon Neptune Engine versão 1.4.0.0 (2024-11-06) - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Amazon Neptune Engine versão 1.4.0.0 (2024-11-06)

Em 2024-11-06, a versão 1.4.0.0 do mecanismo geralmente está sendo implantada. Observe que leva vários dias para que uma nova versão fique disponível em todas as regiões.

nota

A versão 1.3.0.0 do mecanismo introduziu um novo formato para grupos de parâmetros personalizados e grupos de parâmetros de cluster personalizados. Como resultado, se você estiver atualizando de uma versão de mecanismo anterior à 1.3.0.0 para a versão 1.3.0.0 ou superior, deverá recriar todos os grupos de parâmetros personalizados e grupos de parâmetros de cluster personalizados existentes usando a família de grupos de parâmetros. neptune1.3 As versões anteriores usavam a família de grupos de parâmetros neptune1 ou neptune1.2, e esses grupos de parâmetros não funcionarão com a versão 1.3.0.0 e posterior. Da mesma forma, você deve usar grupos de parâmetros de cluster 1.4.0.0 para as versões 1.4.0.0 e superiores do mecanismo. Consulte Grupos de parâmetros do Amazon Neptune para obter mais informações.

Atenção

O cache do plano de consulta temporariamente não é suportado para o caso de uso de execução de consultas parametrizadas envolvendo valores de parâmetros numéricos, devido a um bug no tratamento de usos duplicados de um parâmetro de tipo numérico na consulta. Por exemplo:

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

As consultas que fazem muitas pesquisas de índice em declarações ou índices de dicionários podem ter uma regressão de desempenho de 5%. Por exemplo, obter uma contagem de todos os vértices ou obter a contagem id de todos os vértices não seria afetado. Obter todas as propriedades de todos os vértices pode resultar em uma regressão de até 5%.

Novos recursos nesta versão do motor

  • Quando uma borda é adicionada a um gráfico de propriedades sem uma ID explícita, por padrão, o servidor atribui uma ID de borda baseada em UUID, que é armazenada no dicionário. Agora, ao definir um novo parâmetro de clusterneptune_enable_server_generated_edge_id = 1, o servidor atribuirá IDs usando um inteiro de 8 bytes gerenciado internamente, sem nenhuma sobrecarga de dicionário. Isso resulta em economia de armazenamento e melhor desempenho de consultas sem nenhuma alteração nas consultas. Atualmente, esse recurso é suportado apenas para inserções por meio da linguagem de consulta Gremlin.

  • Foi adicionado suporte para execução de etapas Gremlin limit () em travessias aninhadas para o mecanismo DFE.

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

Melhorias nesta versão do motor

Melhorias gerais
  • O Neptune recuperará automaticamente o armazenamento desfeito mantido por grandes transações quando a transação for concluída e os registros não forem mais necessários para a recuperação.

  • Support para réplica sobrevivente de banco de dados global. Esse recurso permite que o cluster secundário ainda atenda às solicitações de leitura durante a reinicialização da instância do gravador no cluster primário. Anteriormente, quando uma instância de gravador era reiniciada, todas as instâncias de leitura em um cluster secundário também eram reiniciadas. Com essa versão, as instâncias secundárias do leitor de cluster continuam atendendo às solicitações de leitura durante a reinicialização da instância do gravador, melhorando a disponibilidade de leitura no cluster.

  • Os registros de auditoria agora são gravados de forma síncrona, o que garante que todas as consultas sejam registradas. Isso pode afetar o desempenho de consultas particularmente grandes (>100kb) ou cargas de trabalho de alto rendimento (>1000 qps).

Melhorias no Gremlin
  • Por padrão, o tempo limite por consulta é obrigatório para ser menor do que o tempo limite no nível do cluster. Em uma versão anterior, essa verificação foi introduzida, mas precisava ser ativada explicitamente por meio do parâmetro de modo de laboratório ''. StrictTimeoutValidation Com esta versão, 'StrictTimeoutValidation' será ativado por padrão e deverá ser desativado explicitamente para manter o comportamento antigo.

Melhorias no openCypher
  • Em uma versão anterior, introduzimos o suporte estendido ao formato de data e hora, habilitado por meio de um parâmetro DatetimeMillisecond de modo de laboratório. Esse suporte estendido ao formato de data e hora agora está habilitado por padrão.

Melhorias no SPARQL
  • Novas ações explícitas do IAM para permissões de consulta.

    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.

Defeitos corrigidos nesta versão do motor

Correções gerais
  • Corrigido um problema com instâncias sem servidor que poderia levar à reinicialização do banco de dados durante a expansão.

  • Correção de um problema relacionado ao gerenciamento de arquivos de log de auditoria que poderia fazer com que os arquivos de log ficassem inacessíveis para download ou rotação e, em alguns casos, aumentasse o uso da CPU.

  • Corrigido um problema de consulta relacionado à otimização que atrasava a geração de saída do mapa no mecanismo DFE.

  • Correção de um problema que causava registros de data e hora incompatíveis entre os registros de auditoria e os registros de consulta lentos.

Correções do Gremlin
  • Resolveu um problema no gerenciamento de WebSocket conexões do Gremlin em que as consultas executadas por um tempo que excedia o tempo limite de inatividade da conexão eram encerradas prematuramente. Isso afetou especificamente os clientes do Python Gremlin que usam o transporte AIOHTTP.

Correções do openCypher
  • Corrigido um problema na etapa de coleta que causava uma exceção de falha interna quando valores nulos estavam presentes durante a construção da consulta collect (distinct (n)).

  • Corrigido um problema em NullPointerException que um poderia ocorrer em consultas quando o cache do plano de consulta estava ativado.

  • Corrigido um problema que avaliava mais dados do que o necessário quando uma consulta contém a cláusula LIMIT.

  • Corrigido um problema em que o uso de operações de intervalo (<, <=, >, >=) em uma consulta parametrizada com um cache de plano de consulta produzia resultados duplicados.

  • Corrigido um problema que transpõe as colunas de resultados quando as operações UNION e UNION ALL são executadas usando conexões de parafusos.

Versões de linguagem de consulta compatíveis com esta versão

Antes de atualizar um cluster de banco de dados para a versão 1.4.0.0, certifique-se de que seu projeto seja compatível com essas versões da linguagem de consulta:

  • Versão compatível mais antiga do Gremlin: 3.7.1

  • Versão compatível mais recente do Gremlin: 3.7.1

  • openCypher versão: Neptune-9.0.20190305-1.0

  • SPARQL versão: 1.1

Caminhos de atualização para a versão 1.4.0.0 do motor

Você pode atualizar para esta versão a partir da versão 1.2.0.0 ou superior.

Atualizar para esta versão

Se um cluster de banco de dados estiver executando uma versão do mecanismo a partir da qual haja um caminho de atualização para esta versão, ele estará elegível para ser atualizado agora. Você pode atualizar qualquer cluster elegível usando as operações do cluster de banco de dados no console ou usando o SDK. O seguinte comando da CLI atualizará imediatamente um cluster elegível:

Para 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

Para Windows:

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

Em vez de --apply-immediately, é possível especificar --no-apply-immediately. Para realizar uma atualização de versão principal, o allow-major-version-upgrade parâmetro é necessário. Além disso, não se esqueça de incluir a versão do mecanismo ou ele poderá ser atualizado para outra versão.

Se o cluster usar um grupo de parâmetros de cluster personalizado, não se esqueça de incluir este parâmetro para especificá-lo:

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

Da mesma forma, se alguma instância no cluster usar um grupo de parâmetros de banco de dados personalizado, não se esqueça de incluir este parâmetro para especificá-lo:

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

Sempre teste antes de fazer a atualização

Quando uma nova versão principal ou secundária do mecanismo do Neptune for lançada, sempre teste as aplicações do Neptune antes de atualizá-la. Mesmo uma atualização secundária pode introduzir novos atributos ou comportamentos que afetem o código.

Comece comparando as páginas de notas da versão atual com as da versão de destino para ver se haverá alterações nas versões da linguagem de consulta ou outras alterações importantes.

A melhor maneira de testar uma nova versão antes de atualizar o cluster de banco de dados de produção é clonar o cluster de produção para que o clone execute a nova versão do mecanismo. Depois, você pode executar consultas no clone sem afetar o cluster de banco de dados de produção.

Sempre crie um snapshot manual antes de fazer a atualização

Antes de fazer uma atualização, é altamente recomendável sempre criar um snapshot manual do cluster de banco de dados. Ter um snapshot automático só oferece proteção de curto prazo, enquanto um snapshot manual permanece disponível até que você o exclua explicitamente.

Em determinados casos, o Neptune cria um snapshot manual para você como parte do processo de atualização, mas não confie nisso e, em qualquer caso, crie o próprio snapshot manual.

Quando você tiver certeza de que não precisará reverter o cluster de banco de dados para o estado de pré-atualização, poderá excluir explicitamente o snapshot manual criado, bem como o snapshot manual que o Neptune tenha criado. Se o Neptune criar um snapshot manual, ele terá um nome que começa com preupgrade, seguido pelo nome do cluster de banco de dados, a versão do mecanismo de origem, a versão do mecanismo de destino e a data.

nota

Se você estiver tentando atualizar com uma ação pendente em andamento, poderá encontrar um erro como o seguinte:

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 você encontrar esse erro, aguarde a conclusão da ação pendente ou acione imediatamente uma janela de manutenção para permitir que a atualização anterior seja concluída.

Para obter mais informações sobre como atualizar a versão do mecanismo, consulte Manter o cluster de banco de dados do Amazon Neptune. Se você tiver alguma dúvida ou preocupação, a equipe de AWS Suporte está disponível nos fóruns da comunidade e por meio do AWS Premium Support.