Mecanismo do Amazon Neptune versão 1.2.1.0.R3 (13/06/2023) - 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á.

Mecanismo do Amazon Neptune versão 1.2.1.0.R3 (13/06/2023)

Desde 13/06/2023, a versão 1.2.1.0.R3 do mecanismo está sendo implantada de forma geral. Observe que leva vários dias para que uma nova versão fique disponível em todas as regiões.

Importante

As alterações introduzidas nesta versão do mecanismo, em alguns casos, podem ocasionar degradação do desempenho do carregamento em massa. Como resultado, as atualizações para esta versão foram temporariamente suspensas até que o problema seja resolvido.

nota

Se estiver fazendo a atualização de uma versão do mecanismo anterior à 1.2.0.0:

  • A versão 1.2.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.2.0.0 para a versão 1.2.0.0 ou posterior, 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.2. As versões anteriores usavam a família de grupos de parâmetros neptune1, e esses grupos de parâmetros não funcionarão com a versão 1.2.0.0 e posterior. Consulte Grupos de parâmetros do Amazon Neptune para obter mais informações.

  • A versão 1.2.0.0 do mecanismo também introduziu um novo formato para undo logs. Como resultado, todos os undo logs criados por uma versão anterior do mecanismo devem ser eliminados e a métrica UndoLogsListSize do CloudWatch deve cair para zero para que seja possível iniciar qualquer atualização de uma versão anterior à 1.2.0.0. Se houver muitos registros de undo logs (duzentos mil ou mais) ao tentar iniciar uma atualização, a tentativa de atualização poderá expirar enquanto aguarda a conclusão da limpeza dos undo logs.

    É possível acelerar a taxa de limpeza atualizando a instância de gravador do cluster, que é onde a limpeza ocorre. Fazer isso antes de tentar realizar a atualização pode reduzir o número de undo logs antes de começar. Aumentar o tamanho do gravador para um tipo de instância 24XL pode aumentar a taxa de limpeza para mais de um milhão de registros por hora.

    Se a métrica UndoLogsListSize do CloudWatch for extremamente grande, abrir um caso de suporte pode ajudar a examinar estratégias adicionais para reduzi-la.

  • Por fim, houve uma alteração significativa na versão 1.2.0.0. Ela afeta o código anterior que usava o protocolo Bolt com autenticação do IAM. A partir da versão 1.2.0.0, o Bolt precisa de um caminho de recursos para a assinatura do IAM. Em Java, a definição do caminho de recursos pode ser assim: request.setResourcePath("/openCypher"));. Em outras linguagens, o /openCypher pode ser anexado ao URI do endpoint. Consulte Usar o protocolo Bolt para ver exemplos.

Novos recursos nesta versão do mecanismo

Melhorias nesta versão do mecanismo

  • Melhoria da etapa fail() do Gremlin para diferenciar a exceção produzida de uma InternalFailureException genérica e garantir que qualquer mensagem fornecida pelo usuário fosse propagada de volta ao chamador.

  • Melhoria das otimizações do mecanismo de consulta do Gremlin para store, aggregate, cap, limit e hasLabel.

  • Adição de suporte para funções trignométricas do openCypher:

    • acos()

    • asin()

    • atan()

    • atan2()

    • cos()

    • cot()

    • degrees()

    • pi()

    • radians()

    • sin()

    • tan()

  • Adição de suporte para várias funções de agregação do openCypher:

    • percentileDisc()

    • stDev()

  • Adição de suporte para a função epochmillis() do openCypher que converte um datetime em epochmillis. Por exemplo:

    MATCH (n) RETURN epochMillis(n.someDateTime) 1698972364782
  • Adição de suporte para o operador (%) do módulo do openCypher.

  • Adição de suporte para a ferramenta openCypher Static Debug Explain.

  • Adição de suporte para a função randomUUID() no openCypher.

  • Melhoria do desempenho do openCypher:

    • Melhoria do analisador e do planejador de consultas.

    • Melhoria da utilização da CPU no mecanismo do DFE.

    • Melhoria no desempenho de consultas que contêm várias cláusulas de atualização que reutilizam as mesmas variáveis. Veja estes exemplos:

      MERGE (n {name: 'John'}) or MERGE (m {name: 'Jim'}) or MERGE (n)-[:knows {since: 2023}]→(m)
    • Otimização dos planos de consulta para padrões de consulta de vários saltos, como:

      MATCH (n)-->()-->()-->(m) RETURN n m
    • Melhoria no desempenho da injeção de listas e mapas por meio de consultas parametrizadas. Por exemplo:

      UNWIND $idList as id MATCH (n {`~id`: id}) RETURN n.name
    • Melhoria na execução de consultas que contêm WITH tornando-as uma barreira apropriada.

    • Otimização para evitar a materialização redundante de valores em Unfold e funções de agregação.

  • Melhoria no desempenho das consultas do SPARQL que contêm um grande número de entradas estáticas na cláusula VALUES, como:

    SELECT ?n WHERE { VALUES (?name) { ("John") ("Jim") ... many values ... } ?n a ?n_type . ?n ?name . }
  • Melhoria no desempenho de consultas SPARQL CBD.

Defeitos corrigidos nesta versão do mecanismo

  • Correção de um erro do Gremlin em que consultas longas com aninhamento profundo causavam alto uso da CPU e tempos limite de consulta durante a fase de planejamento da consulta.

  • Correção de um erro do Gremlin em que uma NullPointerException inválida podia ser lançada ao usar mergeV ou mergeE.

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.2.1.0.R3, assegure-se de que o projeto seja compatível com estas versões da linguagem de consulta:

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

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

  • openCypher versão: Neptune-9.0.20190305-1.0

  • SPARQL versão: 1.1

Caminhos de atualização para a versão 1.2.1.0.R3 do mecanismo

Atualizar para esta versão

O Amazon Neptune 1.2.1.0.R3 já está disponível ao público em geral.

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.2.1.0 \ --apply-immediately

Para Windows:

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

As atualizações são simultaneamente aplicadas a todas as instâncias em um cluster de banco de dados. Como as atualizações exigem a reinicialização do banco de dados nessas instâncias, ocorrerá um tempo de inatividade de vinte a trinta segundos a alguns minutos. Depois disso, você poderá retomar o uso do cluster de banco de dados.

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. Em caso de dúvidas ou preocupações, o AWS Support está disponível nos fóruns da comunidade e por meio do AWS Premium Support.