Modos de capacidade de leitura/gravação no Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

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á.

Modos de capacidade de leitura/gravação no Amazon Keyspaces

O Amazon Keyspaces oferece dois modos de capacidade de leitura/gravação para processar leituras e gravações em suas tabelas:

  • Sob demanda (padrão)

  • Provisionada

O modo de capacidade de leitura/gravação controla como você é cobrado por throughput de leitura e gravação e como a capacidade de throughput da tabela é gerenciada.

Modo de capacidade sob demanda

O modo de capacidade sob demanda do Amazon Keyspaces (para Apache Cassandra) é uma opção de faturamento flexível capaz de servir centenas de solicitações por segundo sem planejamento de capacidade. Essa opção oferece pay-per-request preços para solicitações de leitura e gravação, de forma que você pague somente pelo que usar.

Quando você seleciona o modo sob demanda, o Amazon Keyspaces pode escalar instantaneamente a capacidade de throughput de sua tabela para qualquer nível de tráfego previamente registrado e, em seguida, voltar para baixo quando o tráfego do aplicativo diminuir. Se o nível de tráfego de uma workload atingir um novo pico, o serviço se adapta rapidamente para aumentar a capacidade de throughput de sua tabela. Você pode ativar o modo de capacidade sob demanda para tabelas novas e existentes.

Modo sob demanda é uma boa opção se qualquer uma das declarações a seguir for verdadeira:

  • Você cria novas tabelas com workloads desconhecidas.

  • Você tem tráfego de aplicativos imprevisível.

  • Você prefere a facilidade de pagar somente pelo que usar.

Para começar com o modo sob demanda, você pode criar uma nova tabela ou atualizar uma tabela existente para usar o modo de capacidade sob demanda usando o console ou com algumas linhas do código Cassandra Query Language (CQL). Para ter mais informações, consulte Tabelas.

Unidades de solicitação de leitura e unidades de solicitação de gravação

Com tabelas de modo de capacidade sob demanda, você não precisa especificar antecipadamente quanto de throughput de leitura e gravação espera que seu aplicativo use. O Amazon Keyspaces cobra pelas leituras e gravações realizadas em suas tabelas em termos de unidades de solicitação de leitura (RRUs) e unidades de solicitação de gravação (WRUs).

  • Um RRU representa uma solicitação de leitura LOCAL_QUORUM ou duas solicitações de leitura LOCAL_ONE para uma linha com até 4 KB de tamanho. Se você precisar ler uma linha maior que 4 KB, a operação de leitura usará RRUs adicionais. O número total de RRUs necessários varia de acordo com o tamanho da linha e se você deseja usar consistência de leitura LOCAL_QUORUM ou LOCAL_ONE. Por exemplo, a leitura de uma linha de 8 KB exige 2 RRUs usando consistência de leitura LOCAL_QUORUM e 1 RRU se você selecionar consistência de leitura LOCAL_ONE.

  • Um WRU representa uma gravação para uma linha com até 1 KB de tamanho. Todas as gravações estão usando consistência LOCAL_QUORUM e não há cobrança adicional pelo uso de transações leves (LWTs). Se você precisar gravar uma linha maior que 1 KB, a operação de gravação usará WRUs adicionais. O número total de WRUs necessários depende do tamanho da linha. Por exemplo, se o tamanho da sua linha for 2 KB, você precisa de 2 WRUs para realizar uma solicitação de gravação.

Para obter informações sobre os níveis de consistência suportados, consulte Níveis de consistência compatíveis do Apache Cassandra no Amazon Keyspaces.

Tráfego de pico e propriedades de dimensionamento

As tabelas do Amazon Keyspaces que usam modo de capacidade sob demanda automaticamente adaptam-se ao volume de tráfego da sua aplicação. O modo de capacidade sob demanda acomoda instantaneamente até o dobro do pico de tráfego anterior em uma tabela. Por exemplo, o padrão de tráfego do seu aplicativo pode variar entre 5 mil e 10 mil leituras LOCAL_QUORUM por segundo, sendo 10 mil leituras por segundo o pico de tráfego anterior.

Com esse padrão, o modo de capacidade sob demanda acomoda instantaneamente o tráfego sustentado de até 20 mil leituras por segundo. Se a sua aplicação sustentar o tráfego de 20 mil leituras por segundo, esse pico torna-se o novo pico anterior, habilitando o tráfego subsequente de até 40 mil leituras por segundo.

Se você precisar de mais que o dobro do pico anterior em uma tabela, o Amazon Keyspaces alocará automaticamente mais capacidade à medida que o volume de tráfego aumentar. Isso ajuda a garantir que sua tabela tenha capacidade de throughput suficiente para processar as solicitações adicionais. No entanto, você pode observar erros de capacidade de throughput insuficientes se exceder o dobro do pico anterior em 30 minutos.

Por exemplo, suponha que o padrão de tráfego do seu aplicativo varie entre 5 mil e 10 mil leituras altamente consistentes por segundo, onde 20 mil leituras por segundo é o pico de tráfego atingido anteriormente. Nesse caso, o serviço recomenda que você espace o crescimento do tráfego em pelo menos 30 minutos antes de gerar até 40 mil leituras por segundo.

Para saber como estimar o consumo da capacidade de leitura e gravação de uma tabela, consulteComo estimar o consumo de capacidade no Amazon Keyspaces.

Para saber mais sobre as cotas padrão da sua conta e como aumentá-las, consulte Cotas para Amazon Keyspaces (para Apache Cassandra).

Throughput inicial para modo de capacidade sob demanda

Se você criar uma nova tabela com o modo de capacidade sob demanda habilitado ou alternar uma tabela existente para o modo de capacidade sob demanda pela primeira vez, a tabela terá as configurações de pico anteriores a seguir, mesmo que não tenha servido tráfego anteriormente usando o modo de capacidade sob demanda:

  • Tabela recém-criada com modo de capacidade sob demanda: o pico anterior era de 2 mil WRUs e 6 mil RRUs. Você pode originar até o dobro do pico anterior imediatamente. Isso possibilita que tabelas sob demanda criadas recentemente atendam até 4 mil WRUs e 12 mil RRUs.

  • Tabela existente alternada para o modo de capacidade sob demanda: o pico anterior é metade das WCUs e RCUs anteriores provisionadas para a tabela ou as configurações de uma tabela recém-criada com modo de capacidade sob demanda, o que for maior.

Modo de capacidade de throughput provisionada

Se você selecionar o modo de capacidade de throughput provisionada, especifique o número de leituras e gravações por segundo necessárias para seu aplicativo. Isso o ajuda a gerenciar seu uso do Amazon Keyspaces para permanecer em ou abaixo de uma taxa de solicitação definida para otimizar o preço e manter a previsibilidade. Para saber mais sobre escalabilidade automática para throughput provisionada, consulte Gerencie a capacidade de processamento automaticamente com o escalonamento automático do Amazon Keyspaces.

Modo de capacidade de throughput provisionada é uma boa opção se qualquer uma das declarações a seguir for verdadeira:

  • Você tem tráfego de aplicativos previsível.

  • Você executa aplicativos cujo tráfego é consistente ou aumenta gradualmente.

  • Você pode prever os requisitos de capacidade para otimizar o preço.

Unidades de capacidade de leitura e unidades de capacidade de gravação

Para tabelas de modo de capacidade de throughput provisionada, você especifica a capacidade de throughput em termos de unidades de capacidade de leitura (RCUs) e unidades de capacidade de gravação (WCUs):

  • Uma RCU representa uma leitura LOCAL_QUORUM por segundo, ou duas leituras por LOCAL_ONE segundo, para uma linha com até 4 KB de tamanho. Se você precisar ler uma linha maior que 4 KB, a operação de leitura usará RCUs adicionais.

    O número total de RCUs necessárias varia de acordo com o tamanho da linha e se você deseja leituras LOCAL_QUORUM ou LOCAL_ONE. Por exemplo, se o tamanho da sua linha for 8 KB, você precisa de 2 RCUs para sustentar uma leitura LOCAL_QUORUM por segundo e 1 RCU se você selecionar leiturasLOCAL_ONE.

  • Um WCU representa uma gravação por segundo para uma linha com até 1 KB de tamanho. Todas as gravações estão usando consistência LOCAL_QUORUM e não há cobrança adicional pelo uso de transações leves (LWTs). Se você precisar gravar uma linha maior que 1 KB, a operação de gravação usará WCUs adicionais.

    O número total de WCUs necessárias depende do tamanho da linha. Por exemplo, se o tamanho da sua linha for 2 KB, serão necessárias 2 WCUs para sustentar uma solicitação de gravação por segundo. Para obter mais informações sobre como estimar o consumo da capacidade de leitura e gravação de uma tabela, consulteComo estimar o consumo de capacidade no Amazon Keyspaces.

Se seu aplicativo ler ou gravar linhas maiores (até o tamanho máximo de linha do Amazon Keyspaces de 1 MB), ele consumirá mais unidades de capacidade. Para saber mais sobre como estimar o tamanho da linha, consulte Como calcular o tamanho da linha no Amazon Keyspaces. Por exemplo, suponha que você crie uma tabela provisionada com 6 RCUs e 6 WCUs. Com essas configurações, sua aplicação pode fazer o seguinte:

  • Execute leituras LOCAL_QUORUM de até 24 KB por segundo (4 KB × 6 RCUs).

  • Execute leituras LOCAL_ONE de até 48 KB por segundo (o dobro do throughput de leitura).

  • Grave até 6 KB por segundo (1 KB × 6 WCUs).

O throughput provisionado é a quantidade máxima de capacidade de throughput que um aplicativo pode consumir de uma tabela. Se seu aplicativo exceder sua capacidade de throughput provisionada, você poderá observar erros de capacidade insuficientes.

Por exemplo, uma solicitação de leitura que não tem capacidade de throughput suficiente falha com uma exceção Read_Timeout e é publicada na métrica ReadThrottleEvents. Uma solicitação de gravação que não tem capacidade de throughput suficiente falha com uma exceção Write_Timeout e é publicada na métrica WriteThrottleEvents.

Você pode usar CloudWatch a Amazon para monitorar suas métricas de taxa de transferência provisionadas e reais e eventos de capacidade insuficiente. Para ter mais informações sobre essas métricas, consulte Métricas e dimensões do Amazon Keyspaces.

nota

Erros repetidos devido à capacidade insuficiente podem levar a exceções específicas do driver do lado do cliente, por exemplo, o driver DataStax Java falha com um. NoHostAvailableException

Para alterar as configurações de capacidade de throughput para tabelas, você pode usar a instrução AWS Management Console ou ALTER TABLE usando CQL. Para obter mais informações, consulte ALTER TABLE.

Para saber mais sobre as cotas padrão da sua conta e como aumentá-las, consulte Cotas para Amazon Keyspaces (para Apache Cassandra).

Gerenciamento e visualização de modos de capacidade

Você pode consultar a tabela do sistema no espaço de chaves do sistema Amazon Keyspaces para revisar as informações do modo de capacidade sobre uma tabela. Você também pode ver se uma tabela está usando o modo de capacidade de throughput sob demanda ou provisionada. Se a tabela estiver configurada com o modo de capacidade de throughput provisionada, você poderá ver a capacidade de throughput provisionada para a tabela.

Exemplo

SELECT * from system_schema_mcs.tables where keyspace_name = 'mykeyspace' and table_name = 'mytable';

Uma tabela configurada com o modo de capacidade sob demanda retorna o seguinte.

{ 'capacity_mode': { 'last_update_to_pay_per_request_timestamp': '1579551547603', 'throughput_mode': 'PAY_PER_REQUEST' } }

Uma tabela configurada com o modo de capacidade de throughput provisionada retorna o seguinte.

{ 'capacity_mode': { 'last_update_to_pay_per_request_timestamp': '1579048006000', 'read_capacity_units': '5000', 'throughput_mode': 'PROVISIONED', 'write_capacity_units': '6000' } }

O valor last_update_to_pay_per_request_timestamp é medido em milissegundos.

Para alterar a capacidade de throughput provisionada de uma tabela, use ALTER TABLE.

Considerações ao mudar os modos de capacidade

Quando você troca uma tabela de modo de capacidade provisionada para modo de capacidade sob demanda, o Amazon Keyspaces faz várias alterações na estrutura de sua tabela e suas partições. Esse processo pode levar alguns minutos. Durante o período de troca, sua tabela entrega throughput consistente com os valores de WCU e RCU provisionados anteriormente.

Quando você alterna do modo de capacidade sob demanda de volta para o modo de capacidade provisionada, sua tabela fornece um throughput consistente com o pico anterior atingido quando a tabela foi definida para o modo de capacidade sob demanda.

nota

É possível alternar entre os modos de capacidade de leitura/gravação duas vezes em um período de 24 horas.