Mecanismo do Amazon Neptune versão 1.1.1.0 (19/04/2022) - 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.1.1.0 (19/04/2022)

Desde 19/04/2022, a versão 1.1.1.0 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

A atualização para esta versão do mecanismo a partir de uma versão anterior à 1.1.0.0 também aciona uma atualização do sistema operacional em todas as instâncias do cluster de banco de dados. Como as solicitações de gravação ativas que ocorrem durante a atualização do sistema operacional não serão processadas, você deve pausar todas as workloads de gravação no cluster que está sendo atualizado, incluindo carregamentos de dados em massa, antes de iniciar a atualização.

Para concluir a atualização com êxito, todas as sub-redes em cada zona de disponibilidade (AZ) devem ter pelo menos um endereço IP disponível por instância do Neptune. Por exemplo, se houver uma instância de gravador e duas instâncias de leitor na sub-rede 1 e duas instâncias de leitor na sub-rede 2, a sub-rede 1 deverá ter pelo menos três endereços IP livres e a sub-rede 2 deverá ter pelo menos dois endereços IP livres antes de iniciar a atualização.

No início da atualização, o Neptune gera um snapshot com um nome composto de preupgrade seguido por um identificador gerado automaticamente com base nas informações do cluster de banco de dados. Você não será cobrado por esse snapshot e poderá usá-lo para restaurar o cluster de banco de dados se algo der errado durante o processo de atualização.

Quando a atualização do mecanismo em si for concluída, a nova versão do mecanismo estará disponível brevemente no sistema operacional antigo, mas em menos de cinco minutos todas as instâncias do cluster iniciarão simultaneamente uma atualização do sistema operacional. O cluster de banco de dados ficará indisponível nesse momento por alguns minutos. Você poderá retomar as workloads de gravação após a conclusão da atualização.

Esse processo gera os seguintes eventos:

  • Mensagens de eventos por cluster:

    • Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]

    • Database cluster major version has been upgraded

  • Mensagens de eventos por instância:

    • Applying off-line patches to DB instance

    • DB instance shutdown

    • Finished applying off-line patches to DB instance

    • DB instance restarted

Versões de patch subsequentes para esta versão

Novos recursos nesta versão do mecanismo

  • A linguagem de consulta openCypher agora está disponível para o público para uso em produção.

    Atenção

    Há uma alteração significativa nesta versão para o código que usa o openCypher com autenticação do IAM. Na pré-visualização do Neptune para openCypher, a string do host na assinatura do IAM incluía o protocolo, como bolt://, desta forma:

    "Host":"bolt://(host URL):(port)"

    A partir desta versão do mecanismo, o protocolo deve ser omitido:

    "Host":"(host URL):(port)"

    Consulte Usar o protocolo Bolt para ver exemplos.

  • Adição de suporte para o TinkerPop 3.5.2. Entre as alterações nesta versão estão o suporte para transações remotas e o suporte a bytecode para sessões (usando g.tx) e a adição da função datetime() à linguagem Gremlin.

    Atenção

    Existem algumas alterações importantes introduzidas no TinkerPop 3.5.0, 3.5.1 e 3.5.2 que podem afetar o código do Gremlin. Por exemplo, usar percursos gerados por um GraphTraversalSource como filhos dessa forma não funcionará mais: g.V().union(identity(), g.V()).

    Agora, em vez disso, use um percurso anônimo como este: g.V().union(identity(), __.V()).

  • Adição de suporte para chaves de condição globais da AWS que você pode usar nas políticas de acesso a dados do IAM que controlam o acesso aos dados armazenados no Neptune, um cluster de banco de dados do Neptune.

  • O mecanismo de consulta DFE do Neptune agora está disponível ao público para uso em produção com a linguagem de consulta openCypher, mas ainda não para consultas do Gremlin e do SPARQL. Agora você o habilita usando o próprio parâmetro de instância neptune_dfe_query_engine em vez do parâmetro de modo de laboratório.

Melhorias nesta versão do mecanismo

  • Adição de novos atributos ao openCypher, como suporte a consultas parametrizadas, armazenamento em cache de árvore de sintaxe abstrata (AST) para consultas parametrizadas, melhorias no caminho de comprimento variável (VLP) e novos operadores e cláusulas. Consulte openCypher conformidade com as especificações no Amazon Neptune para conhecer o nível atual de suporte a linguagens.

  • Melhorias significativas no desempenho do openCypher para workloads simples de leitura e gravação, ocasionando maior throughput em comparação com a versão 1.1.0.0.

  • Remoção das limitações bidirecionais e de profundidade do openCypher que lidam com caminhos de comprimento variável.

  • Suporte completo no mecanismo DFE para os predicados within e without do Gremlin, incluindo casos em que eles são combinados com outros operadores de predicados. Por exemplo:

    g.V().has('age', within(12, 15, 18).or(gt(30)))
  • Suporte estendido no mecanismo DFE para a etapa order do Gremlin quando o escopo é global (ou seja, não order(local)) e quando os moduladores by() não são usados. Por exemplo, esta consulta agora teria suporte para DFE:

    g.V().values("age").order()
  • Adição de um campo isLastOp ao formato de resposta do log de alterações de fluxos do Neptune para indicar que um registro é a última operação na transação.

  • Melhoria significativa do desempenho do registro em log de auditoria e redução da latência quando o registro em log de auditoria está habilitado.

  • Conversão de consultas de bytecode e HTTP WebSocket do Gremlin em um formato legível pelo usuário nos logs de auditoria. Agora, as consultas podem ser copiadas diretamente dos logs de auditoria para serem executadas nos blocos de anotações Neptune e em outros lugares. Observe que essa alteração no formato atual do log de auditoria constitui uma alteração significativa.

Defeitos corrigidos nesta versão do mecanismo

  • Correção de um erro raro do Gremlin em que nenhum resultado era exibido ao usar as etapas filter() e count() aninhadas em combinação, como nesta consulta:

    g.V("1").filter(out("knows") .filter(in("knows") .hasId("notExists")) .count())
  • Correção de um erro do Gremlin em que um erro era gerado ao usar um vértice armazenado por uma etapa agregada em um percurso to() ou from() com uma etapa addE. Veja um exemplo de consulta desse:

    g.V("id").aggregate("v").out().addE().to(select("v").unfold()))
  • Correção de um erro do Gremlin em que a etapa not falhava em casos de borda ao usar o mecanismo DFE. Por exemplo:

    g.V().not(V())
  • Correção de erro do Gremlin em que valores sideEffect não estavam disponíveis em percursos to() e from().

  • Correção de um erro que ocasionalmente fazia com que uma redefinição rápida acionasse um failover de instância.

  • Correção de um erro do carregador em massa em que uma transação com falha não era fechada antes do início do próximo trabalho de carregamento.

  • Correção de um erro do carregador em massa em que uma condição de pouca memória poderia causar travamento do sistema.

  • Adição de uma nova tentativa para corrigir um erro do carregador em massa em que o carregador não esperava o suficiente para que as credenciais do IAM ficassem disponíveis após um failover.

  • Correção de um erro em que o cache interno de credenciais não estava sendo limpo adequadamente para endpoints que não eram de consulta, como o endpoint de status.

  • Correção de um erro de fluxos para garantir que os números de sequência de confirmação de fluxos sejam ordenados corretamente.

  • Correção de um erro em que conexões de longa execução eram encerradas antes de dez dias em clusters habilitados para IAM.

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.1.1.0, 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.5.2

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

  • openCypher versão: Neptune-9.0.20190305-1.0

  • SPARQL versão: 1.1

Caminhos de atualização para a versão 1.1.1.0 do mecanismo

É possível atualizar manualmente qualquer versão anterior do mecanismo do Neptune para esta versão. Observe que as versões anteriores ao mecanismo de versão principal (1.1.0.0) levarão mais tempo para serem atualizadas para esta versão.

A atualização para esta versão não será automática.

Atualizar para esta versão

Importante

A atualização para esta versão do mecanismo a partir de qualquer versão anterior à 1.1.0.0 também aciona uma atualização do sistema operacional em todas as instâncias no cluster de banco de dados. Como as solicitações de gravação ativas que ocorrem durante a atualização do sistema operacional não serão processadas, você deve pausar todas as workloads de gravação no cluster que está sendo atualizado, incluindo carregamentos de dados em massa, antes de iniciar a atualização.

No início da atualização, o Neptune gera um snapshot com um nome composto de preupgrade seguido por um identificador gerado automaticamente com base nas informações do cluster de banco de dados. Você não será cobrado por esse snapshot e poderá usá-lo para restaurar o cluster de banco de dados se algo der errado durante o processo de atualização.

Quando a atualização do mecanismo em si for concluída, a nova versão do mecanismo estará disponível brevemente no sistema operacional antigo, mas em menos de cinco minutos todas as instâncias do cluster iniciarão simultaneamente uma atualização do sistema operacional. O cluster de banco de dados ficará indisponível nesse momento por cerca de seis minutos. Você poderá retomar as workloads de gravação após a conclusão da atualização.

Esse processo gera os seguintes eventos:

  • Mensagens de eventos por cluster:

    • Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]

    • Database cluster major version has been upgraded

  • Mensagens de eventos por instância:

    • Applying off-line patches to DB instance

    • DB instance shutdown

    • Finished applying off-line patches to DB instance

    • DB instance restarted

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 essa 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 neptune \ --engine-version 1.1.1.0 \ --allow-major-version-upgrade \ --apply-immediately

Para Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine neptune ^ --engine-version 1.1.1.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, é necessário usar o parâmetro allow-major-version-upgrade. 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. 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.