

# Eventos de espera do Limitless Database
<a name="limitless-waits-reference"></a>

Os eventos de espera a seguir se aplicam ao Aurora PostgreSQL Limitless Database. Você pode monitorar esses eventos de espera para identificar gargalos no processamento do Aurora PostgreSQL Limitless Database.

**Topics**
+ [Evento de espera IO:TwophaseFilePoolWrite](#limitless-waits-TwophaseFilePoolWrite)
+ [Evento de espera IO:TwophaseFilePoolRead](#limitless-waits-TwophaseFilePoolRead)
+ [Evento de espera AuroraLimitless](#limitless-waits-Connect)
+ [Evento de espera AuroraLimitless:AsyncConnect](#limitless-waits-AsyncConnect)
+ [Evento de espera AuroraLimitless:RemoteStatementSetup](#limitless-waits-RemoteStatementSetup)
+ [Evento de espera AuroraLimitless:RemoteDDLExecution](#limitless-waits-RemoteDDLExecution)
+ [Evento de espera AuroraLimitless:RemoteStatementExecution](#limitless-waits-RemoteStatementExecution)
+ [Evento de espera AuroraLimitless:FetchRemoteResults](#limitless-waits-FetchRemoteResults)
+ [Evento de espera AuroraLimitless:AsyncGetInitialResponse](#limitless-waits-AsyncGetInitialResponse)
+ [Evento de espera AuroraLimitless:AsyncGetNextResponse](#limitless-waits-AsyncGetNextResponse)
+ [Evento de espera AuroraLimitless:AbortedCommandCleanup](#limitless-waits-AbortedCommandCleanup)
+ [Evento de espera AuroraLimitless:DistributedCommitPrepare](#limitless-waits-DistributedCommitPrepare)
+ [Evento de espera AuroraLimitless:DistributedCommit](#limitless-waits-DistributedCommit)
+ [Evento de espera AuroraLimitless:DistributedCommitPrepareThrottle](#limitless-waits-DistributedCommitPrepareThrottle)
+ [Evento de espera AuroraLimitless:PreparedTransactionResolution](#limitless-waits-PreparedTransactionResolution)
+ [Evento de espera AuroraLimitless:SendPreparedTransactionOutcome](#limitless-waits-SendPreparedTransactionOutcome)
+ [Evento de espera AuroraLimitless:CommitClockBarrier](#limitless-waits-CommitClockBarrier)
+ [Evento de espera AuroraLimitless:SnapshotClockBarrier](#limitless-waits-SnapshotClockBarrier)
+ [Evento de espera AuroraLimitless:ReaderSnapshotClockBarrier](#limitless-waits-ReaderSnapshotClockBarrier)
+ [Evento de espera AuroraLimitless:GatherDistributedDeadlockGraph](#limitless-waits-GatherDistributedDeadlockGraph)
+ [Evento de espera AuroraLimitless:DistributedDeadlockDetection](#limitless-waits-DistributedDeadlockDetection)
+ [Evento de espera AuroraLimitless:DistributedDeadlockAbort](#limitless-waits-DistributedDeadlockAbort)
+ [Evento de espera AuroraLimitless:GatherRemoteStats](#limitless-waits-GatherRemoteStats)
+ [Evento de espera AuroraLimitless:GlobalSequenceRefresh](#limitless-waits-GlobalSequenceRefresh)
+ [Evento de espera AuroraLimitless:GlobalVacuumTimeExchange](#limitless-waits-GlobalVacuumTimeExchange)
+ [Evento de espera AuroraLimitless:DistributedTransactionMonitorGather](#limitless-waits-DistributedTransactionMonitorGather)
+ [Evento de espera AuroraLimitlessActivity:AdminTaskSchedulerMain](#limitless-waits-AdminTaskSchedulerMain)
+ [Evento de espera AuroraLimitlessActivity:AdminTaskExecutorMain](#limitless-waits-AdminTaskExecutorMain)
+ [Evento de espera AuroraLimitlessActivity:AdminTaskMonitorMain](#limitless-waits-AdminTaskMonitorMain)
+ [Evento de espera AuroraLimitlessActivity:DatabaseCleanupMonitorMain](#limitless-waits-DatabaseCleanupMonitorMain)
+ [Evento de espera AuroraLimitlessActivity:TopologyCleanupMonitorMain](#limitless-waits-TopologyCleanupMonitorMain)
+ [Evento de espera AuroraLimitlessActivity:ToplogyChangeMonitorMain](#limitless-waits-ToplogyChangeMonitorMain)
+ [Evento de espera AuroraLimitlessActivity:DistributedTransactionMonitorMain](#limitless-waits-DistributedTransactionMonitorMain)
+ [Evento de espera AuroraLimitlessActivity:GlobalVacuumMonitorMain](#limitless-waits-GlobalVacuumMonitorMain)

## Evento de espera IO:TwophaseFilePoolWrite
<a name="limitless-waits-TwophaseFilePoolWrite"></a>

Esperar por uma gravação de um arquivo de estado de duas fases dentro do grupo de arquivos de estado de duas fases. Este é um evento específico do Aurora.

### Causas
<a name="limitless-waits-TwophaseFilePoolWrite.causes"></a>

Os processos que executam um comando `PREPARED TRANSACTION`, incluindo participantes em uma transação distribuída do Limitless Database, devem persistir o estado da transação em um arquivo de duas fases. O Aurora usa um grupo de arquivos para melhorar o desempenho dessa operação.

### Ação
<a name="limitless-waits-TwophaseFilePoolWrite.action"></a>

Essa é uma operação de E/S de gravação síncrona e, portanto, uma alta latência nesse evento tem causas semelhantes a `IO:XactSync` e pode ser investigada da mesma forma. Se estiver usando o Limitless Database, talvez seja necessário reduzir o número de transações distribuídas em execução.

## Evento de espera IO:TwophaseFilePoolRead
<a name="limitless-waits-TwophaseFilePoolRead"></a>

Esperar pela leitura de um arquivo de estado de duas fases dentro do grupo de arquivos de estado de duas fases.

### Causas
<a name="limitless-waits-TwophaseFilePoolWrite.causes"></a>

Os processos que executam um comando `COMMIT PREPARED` em uma transação previamente preparada, incluindo participantes de uma transação distribuída do Limitless Database, talvez precisem ler o estado da transação anteriormente persistido em um arquivo de duas fases. O Aurora usa um grupo de arquivos para melhorar o desempenho dessa operação.

### Ação
<a name="limitless-waits-TwophaseFilePoolWrite.action"></a>

Esta é uma operação de E/S de leitura. Portanto, uma alta latência nesse evento tem causas semelhantes às de `IO:DataFileRead` e pode ser investigada da mesma forma. Se estiver usando o Limitless Database, talvez seja necessário reduzir o número de transações distribuídas em execução.

## Evento de espera AuroraLimitless
<a name="limitless-waits-Connect"></a>

O processo está esperando o estabelecimento de uma conexão com outro nó no cluster.

### Causas
<a name="limitless-waits-Connect.causes"></a>

As conexões são estabelecidas entre processos e nós remotos para executar consultas, transações distribuídas e realizar DDLs.

### Ação
<a name="limitless-waits-Connect"></a>

Reduza o número de conexões simultâneas ao cluster ou ajuste o uso de consultas entre fragmentos.

## Evento de espera AuroraLimitless:AsyncConnect
<a name="limitless-waits-AsyncConnect"></a>

Esse evento é semelhante a `Connect`, mas representa um processo que espera o estabelecimento de conexões paralelas com um conjunto de nós.

### Causas
<a name="limitless-waits-AsyncConnect.causes"></a>

O estabelecimento de conexão paralela é mais comumente feito ao executar instruções DDL.

### Ação
<a name="limitless-waits-AsyncConnect"></a>

Reduza o número de instruções DDL ou combine várias DDLs na mesma sessão para melhorar a reutilização da conexão.

## Evento de espera AuroraLimitless:RemoteStatementSetup
<a name="limitless-waits-RemoteStatementSetup"></a>

O processo está esperando a configuração da execução da consulta remota, como abertura, fechamento do cursor ou criação de uma instrução preparada.

### Causas
<a name="limitless-waits-TwophaseFilePoolRead"></a>

Esse evento de espera aumenta com o número de varreduras em tabelas fragmentadas em que a instrução não pôde ser otimizada para um único fragmento.

### Ação
<a name="limitless-waits-TwophaseFilePoolRead"></a>

Otimize as consultas para reduzir o número de operações de varredura ou aumentar a elegibilidade para a otimização de um único fragmento.

## Evento de espera AuroraLimitless:RemoteDDLExecution
<a name="limitless-waits-RemoteDDLExecution"></a>

O processo está esperando a conclusão de um comando DDL remoto.

### Causas
<a name="limitless-waits-RemoteDDLExecution"></a>

Ao emitir um comando DDL em um grupo de fragmentos de banco de dados, ele deve ser distribuído para outros roteadores e nós de fragmento antes de confirmar a operação. Algumas operações de DDL podem ser executadas por um longo período, porque os dados devem ser adaptados às alterações do esquema.

### Ação
<a name="limitless-waits-RemoteDDLExecution"></a>

Identifique comandos DDL de longa duração para poder otimizá-los.

## Evento de espera AuroraLimitless:RemoteStatementExecution
<a name="limitless-waits-RemoteStatementExecution"></a>

Um processo está esperando a conclusão de um comando remoto.

### Causas
<a name="limitless-waits-RemoteStatementExecution"></a>

Um comando SQL está sendo executado em um nó remoto. Esse evento aparecerá com frequência em comunicações internas, como verificações de `auto_analyze` e de pulsação.

### Ação
<a name="limitless-waits-"></a>

Identifique comandos de longa execução usando a exibição limitless\$1stat\$1statements. Em muitos casos, esse é um evento esperado, principalmente em processos em segundo plano ou processos internos, e nenhuma ação é necessária.

## Evento de espera AuroraLimitless:FetchRemoteResults
<a name="limitless-waits-FetchRemoteResults"></a>

Um processo está esperando para recuperar linhas de um nó remoto.

### Causas
<a name="limitless-waits-FetchRemoteResults"></a>

Esse evento de espera pode aumentar ao buscar muitas linhas de uma tabela remota, como uma tabela fragmentada ou de referência.

### Ação
<a name="limitless-waits-FetchRemoteResults"></a>

Identifique consultas `SELECT` não otimizadas usando a exibição `limitless_stat_statements`. Otimize as consultas para recuperar somente os dados necessários. Também é possível ajustar o parâmetro `rds_aurora.limitless_maximum_adaptive_fetch_size`.

## Evento de espera AuroraLimitless:AsyncGetInitialResponse
<a name="limitless-waits-AsyncGetInitialResponse"></a>

O processo está esperando uma resposta inicial quando o modo pipeline é usado na execução da consulta.

### Causas
<a name="limitless-waits-AsyncGetInitialResponse"></a>

Isso normalmente será observado durante a execução do roteador para o fragmento em consultas com posicionamento de dados em um único fragmento e é uma parte esperada da execução normal.

### Ação
<a name="limitless-waits-AsyncGetInitialResponse"></a>

Nenhuma outra ação é necessária.

## Evento de espera AuroraLimitless:AsyncGetNextResponse
<a name="limitless-waits-AsyncGetNextResponse"></a>

O processo está esperando respostas adicionais quando o modo pipeline é usado na execução da consulta.

### Causas
<a name="limitless-waits-AsyncGetNextResponse"></a>

Isso normalmente será observado durante a execução do roteador para o fragmento em consultas com posicionamento de dados em um único fragmento e é uma parte esperada da execução normal.

### Ação
<a name="limitless-waits-AsyncGetNextResponse"></a>

Nenhuma outra ação é necessária.

## Evento de espera AuroraLimitless:AbortedCommandCleanup
<a name="limitless-waits-AbortedCommandCleanup"></a>

O processo está esperando o resultado de uma consulta de limpeza remota. As consultas de limpeza são emitidas para os nós de fragmento para retorná-los ao estado apropriado quando uma transação distribuída é encerrada.

### Causas
<a name="limitless-waits-AbortedCommandCleanup"></a>

A limpeza de transação é feita quando uma transação é abortada porque um erro foi encontrado ou porque um usuário emitiu um comando ABORT explícito ou cancelou a consulta em execução.

### Ação
<a name="limitless-waits-AbortedCommandCleanup.action"></a>

Investigue a causa do cancelamento da transação.

## Evento de espera AuroraLimitless:DistributedCommitPrepare
<a name="limitless-waits-DistributedCommitPrepare"></a>

O processo está confirmando uma transação distribuída e esperando que todos os participantes reconheçam o comando de preparo.

### Causas
<a name="limitless-waits-DistributedCommitPrepare"></a>

As transações que modificam vários nós devem realizar uma confirmação distribuída. Uma longa espera em `DistributedCommitPrepare` pode ser causada por longas esperas no evento `IO:TwophaseFilePoolWrite` nos nós participantes.

### Ação
<a name="limitless-waits-DistributedCommitPrepare.action"></a>

Reduza o número de transações que modificam dados em vários nós. Investigue eventos `IO:TwophaseFilePoolWrite` em outros nós do cluster.

## Evento de espera AuroraLimitless:DistributedCommit
<a name="limitless-waits-DistributedCommit"></a>

O processo está confirmando uma transação distribuída e esperando que o participante principal reconheça o comando de confirmação.

### Causas
<a name="limitless-waits-DistributedCommit.causes"></a>

As transações que modificam vários nós devem realizar uma confirmação distribuída. Uma longa espera em `DistributedCommit` pode ser causada por longas esperas no evento `IO:XactSync` no participante principal.

### Ação
<a name="limitless-waits-DistributedCommit.action"></a>

Reduza o número de transações que modificam dados em vários nós. Investigue eventos `IO:XactSync` em outros nós do cluster.

## Evento de espera AuroraLimitless:DistributedCommitPrepareThrottle
<a name="limitless-waits-DistributedCommitPrepareThrottle"></a>

O processo está tentando preparar uma transação distribuída e está com controle de utilização devido às transações preparadas existentes.

### Causas
<a name="limitless-waits-DistributedCommitPrepareThrottle.causes"></a>

As transações que modificam vários nós devem realizar uma confirmação distribuída. Os participantes dessas transações devem realizar uma operação de preparação como parte do protocolo de confirmação. O Aurora limita o número de preparações simultâneas. Se esse limite for excedido, o processo aguardará no evento `DistributedCommitPrepareThrottle`.

### Ação
<a name="limitless-waits-DistributedCommitPrepareThrottle.action"></a>

Reduza o número de transações que modificam dados em vários nós. Investigue os eventos `IO:TwophaseFilePoolWrite`, pois o aumento do tempo nesses eventos pode fazer com que as transações preparadas existentes se acumulem, resultando em controle de utilização de novas tentativas de preparação.

## Evento de espera AuroraLimitless:PreparedTransactionResolution
<a name="limitless-waits-PreparedTransactionResolution"></a>

O processo encontrou uma tupla modificada por uma transação distribuída que está no estado de preparo. O processo deve determinar se a transação distribuída ficará visível no snapshot.

### Causas
<a name="limitless-waits-PreparedTransactionResolution.causes"></a>

As transações que modificam vários nós devem realizar uma confirmação distribuída que inclui uma fase de preparo. Um alto número de transações distribuídas ou o aumento da latência em confirmações distribuídas podem fazer com que outros processos encontrem o evento de espera `PreparedTransactionResolution`.

### Ação
<a name="limitless-waits-PreparedTransactionResolution.action"></a>

Reduza o número de transações que modificam dados em vários nós. Investigue eventos relacionados a confirmações distribuídas, pois o aumento do tempo nesses eventos pode aumentar a latência no caminho de confirmação das transações distribuídas. Também investigue as cargas da rede e da CPU.

## Evento de espera AuroraLimitless:SendPreparedTransactionOutcome
<a name="limitless-waits-SendPreparedTransactionOutcome"></a>

O processo está sendo executado em um nó que está coordenando uma transação distribuída e outro processo perguntou sobre o estado dessa transação, ou o processo confirmou uma transação distribuída e está enviando o resultado aos participantes.

### Causas
<a name="limitless-waits-SendPreparedTransactionOutcome.causes"></a>

Os processos que encontrarem o evento de espera `PreparedTransactionResolution` consultarão o coordenador da transação. A resposta no coordenador da transação encontrará SendPreparedTransactionOutcome.

### Ação
<a name="limitless-waits-SendPreparedTransactionOutcome.action"></a>

Reduza o número de transações que modificam dados em vários nós. Investigue eventos relacionados à confirmação distribuída e eventos `IO:TwophaseFilePoolWrite` e `IO:TwophaseFilePoolRead`, pois esses eventos podem aumentar a latência no caminho de confirmação das transações distribuídas. Também investigue as cargas da rede e da CPU.

## Evento de espera AuroraLimitless:CommitClockBarrier
<a name="limitless-waits-CommitClockBarrier"></a>

O processo está confirmando uma transação e deve esperar para garantir que o tempo de confirmação atribuído seja garantidamente passado para todos os nós do cluster.

### Causas
<a name="limitless-waits-CommitClockBarrier.causes"></a>

A saturação da CPU ou da rede pode causar um aumento no desvio do relógio, resultando no tempo gasto nesse evento de espera.

### Ação
<a name="limitless-waits-CommitClockBarrier.action"></a>

Investigue a saturação da CPU ou da rede no cluster.

## Evento de espera AuroraLimitless:SnapshotClockBarrier
<a name="limitless-waits-SnapshotClockBarrier"></a>

O processo recebeu um horário de snapshot de outro nó com um relógio no futuro e está esperando que seu próprio relógio atinja esse horário.

### Causas
<a name="limitless-waits-SnapshotClockBarrier.causes"></a>

Isso geralmente ocorre depois que o processo recebe resultados de uma função que foi enviada para um fragmento e há um desvio de relógio entre os nós. A saturação da CPU ou da rede pode causar um aumento no desvio do relógio, resultando no tempo gasto nesse evento de espera.

### Ação
<a name="limitless-waits-SnapshotClockBarrier.action"></a>

Investigue a saturação da CPU ou da rede no cluster.

## Evento de espera AuroraLimitless:ReaderSnapshotClockBarrier
<a name="limitless-waits-ReaderSnapshotClockBarrier"></a>

Esse evento ocorre nos nós de leitura. O processo está esperando que o nó de leitura reproduza o fluxo de gravação para que todas as gravações que ocorreram antes do horário do snapshot do processo sejam aplicadas.

### Causas
<a name="limitless-waits-ReaderSnapshotClockBarrier.causes"></a>

Um aumento no atraso da réplica do Aurora pode causar um aumento no tempo de espera nesse evento.

### Ação
<a name="limitless-waits-ReaderSnapshotClockBarrier.action"></a>

Investigue o atraso da réplica do Aurora.

## Evento de espera AuroraLimitless:GatherDistributedDeadlockGraph
<a name="limitless-waits-GatherDistributedDeadlockGraph"></a>

O processo está se comunicando com outros nós para coletar gráficos de bloqueio como parte da detecção de impasse distribuído.

### Causas
<a name="limitless-waits-GatherDistributedDeadlockGraph.causes"></a>

Quando um processo está esperando um bloqueio, ele executa uma verificação de impasse distribuído após esperar mais de `rds_aurora.limitless_distributed_deadlock_timeout`.

### Ação
<a name="limitless-waits-GatherDistributedDeadlockGraph"></a>

Investigue as causas da contenção de bloqueios na aplicação e considere ajustar o `rds_aurora.limitless_distributed_deadlock_timeout`.

## Evento de espera AuroraLimitless:DistributedDeadlockDetection
<a name="limitless-waits-DistributedDeadlockDetection"></a>

O processo está se comunicando com outros nós para detectar um impasse distribuído.

### Causas
<a name="limitless-waits-DistributedDeadlockDetection.causes"></a>

Quando um processo está esperando um bloqueio, ele executa uma verificação de impasse distribuído após esperar mais de `rds_aurora.limitless_distributed_deadlock_timeout`.

### Ação
<a name="limitless-waits-DistributedDeadlockDetection.action"></a>

Investigue as causas da contenção de bloqueios na aplicação e considere ajustar o `rds_aurora.limitless_distributed_deadlock_timeout`.

## Evento de espera AuroraLimitless:DistributedDeadlockAbort
<a name="limitless-waits-DistributedDeadlockAbort"></a>

O processo está se comunicando com outro nó para abortar uma sessão escolhida como vítima em um impasse distribuído.

### Causas
<a name="limitless-waits-DistributedDeadlockAbort.causes"></a>

Os padrões de aplicações estão resultando em impasses distribuídos.

### Ação
<a name="limitless-waits-DistributedDeadlockAbort.action"></a>

Investigue os padrões de aplicações que resultam em impasses distribuídos.

## Evento de espera AuroraLimitless:GatherRemoteStats
<a name="limitless-waits-GatherRemoteStats"></a>

O processo está coletando estatísticas de outros nós no cluster.

### Causas
<a name="limitless-waits-GatherRemoteStats.causes"></a>

As consultas e visualizações de monitoramento ou atividade, como `limitless_stat_activity`, recuperarão estatísticas de outros nós.

### Ação
<a name="limitless-waits-GatherRemoteStats.action"></a>

Nenhuma outra ação é necessária.

## Evento de espera AuroraLimitless:GlobalSequenceRefresh
<a name="limitless-waits-GlobalSequenceRefresh"></a>

O processo está gerando um novo valor de sequência e deve solicitar uma nova parte da sequência global.

### Causas
<a name="limitless-waits-GlobalSequenceRefresh.causes"></a>

Uma alta taxa de geração de valor de sequência pode resultar em paralisações nesse evento se `rds_aurora.limitless_sequence_chunk_size` for insuficiente.

### Ação
<a name="limitless-waits-GlobalSequenceRefresh.action"></a>

Essa é uma ocorrência normal. Se você observar um tempo excessivo nesse evento, considere ajustar o `rds_aurora.limitless_sequence_chunk_size`. Consulte a documentação sobre sequências no Limitless Database.

## Evento de espera AuroraLimitless:GlobalVacuumTimeExchange
<a name="limitless-waits-GlobalVacuumTimeExchange"></a>

O processo está trocando dados de snapshot para oferecer suporte à limpeza.

### Causas
<a name="limitless-waits-GlobalVacuumTimeExchange.causes"></a>

Os nós no Limitless Database trocam dados de horário do snapshot ativo mais antigo com outros nós para calcular o tempo de corte correto para a execução da limpeza.

### Ação
<a name="limitless-waits-GlobalVacuumTimeExchange.action"></a>

Nenhuma outra ação é necessária.

## Evento de espera AuroraLimitless:DistributedTransactionMonitorGather
<a name="limitless-waits-DistributedTransactionMonitorGather"></a>

O processo está reunindo metadados de transações de outros nós para oferecer suporte à limpeza de transações distribuídas.

### Causas
<a name="limitless-waits-DistributedTransactionMonitorGather.causes"></a>

Os nós no Limitless Database trocam metadados de transações com outros nós para determinar quando o estado de transação distribuída pode ser eliminado.

### Ação
<a name="limitless-waits-DistributedTransactionMonitorGather.action"></a>

Nenhuma outra ação é necessária.

## Evento de espera AuroraLimitlessActivity:AdminTaskSchedulerMain
<a name="limitless-waits-AdminTaskSchedulerMain"></a>

Esperando no loop principal do processo de agendamento de tarefas.

## Evento de espera AuroraLimitlessActivity:AdminTaskExecutorMain
<a name="limitless-waits-AdminTaskExecutorMain"></a>

Esperando no loop principal do processo do executor de tarefas.

## Evento de espera AuroraLimitlessActivity:AdminTaskMonitorMain
<a name="limitless-waits-AdminTaskMonitorMain"></a>

Esperando no loop principal do processo de monitoramento de tarefas.

## Evento de espera AuroraLimitlessActivity:DatabaseCleanupMonitorMain
<a name="limitless-waits-DatabaseCleanupMonitorMain"></a>

Esperando no loop principal do processo de monitoramento de limpeza do banco de dados.

## Evento de espera AuroraLimitlessActivity:TopologyCleanupMonitorMain
<a name="limitless-waits-TopologyCleanupMonitorMain"></a>

Esperando no loop principal do processo de monitoramento de limpeza de topologia.

## Evento de espera AuroraLimitlessActivity:ToplogyChangeMonitorMain
<a name="limitless-waits-ToplogyChangeMonitorMain"></a>

Esperando no loop principal do processo de monitoramento de alterações de topologia.

## Evento de espera AuroraLimitlessActivity:DistributedTransactionMonitorMain
<a name="limitless-waits-DistributedTransactionMonitorMain"></a>

Esperando no loop principal do processo de monitoramento de transações distribuídas.

## Evento de espera AuroraLimitlessActivity:GlobalVacuumMonitorMain
<a name="limitless-waits-GlobalVacuumMonitorMain"></a>

Esperando no loop principal do processo de monitoramento de limpeza global.