Visão geral da camada na memória

A camada na memória é uma configuração de cluster que usa nós especializados. Antes de ler esta página, entenda instâncias, clusters e nós. Também recomendamos que você se familiarize com as limitações.

A camada na memória do Bigtable é uma camada de memória integrada como parte do nó do Bigtable que permite a camada de dados otimizada e econômica com base em padrões de acesso e necessidades de desempenho, tudo por meio de uma única API. Usando o acesso direto à memória remota (RDMA, na sigla em inglês), a camada na memória do Bigtable reduz significativamente os tempos de resposta, atenua os pontos de acesso e garante alta capacidade de processamento para dados sensíveis à latência. Para mais informações, consulte Entender o desempenho.

Quando usar a camada na memória

Recomendamos que você ative a camada na memória para os seguintes casos de uso:

  • Requisitos de latência abaixo de um milissegundo: cargas de trabalho que exigem latências de leitura menores que 1 ms, normalmente tratadas pela frente de um banco de dados com uma solução de cache autogerenciada.
  • Leituras de ponto de alta capacidade de processamento: aplicativos com requisitos de alta capacidade de processamento de tráfego de leitura em subconjuntos específicos de dados.
  • Mitigação de pontos de acesso: cargas de trabalho de alta capacidade de processamento que podem incluir picos de tráfego ou pontos de acesso em chaves de linha específicas.
  • Otimização de custos: cenários em que você quer reduzir o número de nós do Bigtable descarregando altos volumes de leitura para uma camada na memória mais econômica.

Como a camada na memória funciona

O suporte à camada na memória é fornecido por nós de armazenamento híbrido. Esses nós especializados estendem a desagregação de computação e armazenamento do Bigtable para incluir uma camada de memória com capacidade de processamento escalonável verticalmente. O Bigtable pode levar até 30 minutos para provisionar os nós especializados da camada na memória. Durante esse período, o Bigtable continua veiculando tráfego do armazenamento permanente.

É possível ativar a camada na memória no nível do cluster.

A camada na memória funciona da seguinte maneira:

  • Como receber dados na camada de memória: a camada na memória oferece comportamento de armazenamento em cache de leitura. Uma linha entra na camada de memória com operações de leitura por meio de um perfil de aplicativo configurado para a camada na memória. Uma operação de gravação de qualquer perfil de aplicativo atualiza a camada de memória se os dados da linha já estiverem na camada na memória.
  • Políticas de remoção e invalidação: a camada na memória usa a remoção menos usada recentemente (LRU, na sigla em inglês) no nível da linha e aplica uma política de invalidação de tempo de vida (TTL, na sigla em inglês) para maximizar a taxa de acertos da camada na memória.
  • Armazenamento em cache negativo: a camada na memória lembra se um recurso está ausente por um período de tempo para evitar a sobrecarga do back-end.
  • Segurança: a camada na memória oferece suporte à criptografia em repouso e em trânsito (TLS).
  • Replicação: em uma instância de vários clusters, as camadas de memória de clusters diferentes não estão sincronizadas. Como cada camada de memória determina de forma independente quais dados carregar na memória com base no tráfego de leitura que recebe, clusters diferentes podem manter chaves de linha diferentes nas camadas de memória. O Bigtable carrega dados na memória da camada SSD do cluster local. Uma gravação em uma linha acaba atualizando-a em todas as camadas de memória em que ela está presente, seguindo o modelo de replicação padrão do Bigtable de consistência posterior.
  • Escalonamento automático vertical: a camada na memória oferece suporte a o escalonamento automático vertical no nível do nó que funciona com o escalonamento automático do Bigtable.

A camada na memória é otimizada para acesso de alta performance aos dados atuais. Para manter essa performance, apenas as versões mais recentes de uma linha com carimbo de data/hora residem na camada de memória. As solicitações de versões anteriores de dados, também conhecidas como células históricas, ignoram automaticamente a camada de memória e são veiculadas do armazenamento permanente.

Coerência de dados

O Bigtable garante que os dados da camada na memória sejam consistentes com os dados permanentes no SSD ou na camada de armazenamento de acesso esporádico. Essa arquitetura híbrida permite que o Bigtable forneça um modelo de armazenamento consistente em todas as camadas de armazenamento, permitindo que você acesse seus dados pela mesma interface semântica, independentemente de eles residirem fisicamente na RAM ou no armazenamento permanente. Com a camada na memória do Bigtable ativada, você mantém a consistência de leitura na gravação no nível do cluster.

Escalonamento vertical

A ativação da camada na memória permite que cada nó use o escalonamento vertical para modificar a capacidade de capacidade de processamento da camada na memória. Cada nó inclui 8 GB de RAM para a camada na memória e começa com uma capacidade básica de 40.000 leituras por segundo. Para gerenciar picos no tráfego de leitura de pontos, os nós podem ser escalonados automaticamente em incrementos de 40.000 leituras por segundo, atingindo um máximo de 120.000 leituras por segundo por nó.

Esse recurso de escalonamento vertical é integrado ao escalonamento automático do Bigtable. Se a capacidade máxima da camada na memória for atingida em todos os nós do cluster e o escalonamento automático estiver ativo, o Bigtable provisionará automaticamente nós adicionais para aumentar ainda mais a capacidade de processamento da camada na memória.

O escalonamento vertical em um nó se aplica apenas a leituras por segundo da camada na memória e funciona independentemente de o escalonamento automático no nível do cluster estar ativado. O escalonamento vertical além das 40.000 leituras por segundo é faturado aplicando um multiplicador ao custo por hora do nó. Para mais informações, consulte preços e limites.

Limitações

As limitações a seguir se aplicam à camada na memória:

  • A camada na memória requer armazenamento SSD.
  • A camada na memória oferece suporte apenas a operações de leitura de ponto de linha única.
  • A camada na memória não veicula verificações de dados nem oferece suporte a consultas SQL.
  • Os perfis de aplicativos na camada na memória oferecem suporte apenas ao roteamento de cluster único.
  • A camada na memória limita o tamanho da linha a 1 MiB por chave de linha. O Bigtable lê linhas que excedem esse limite do armazenamento permanente.
  • A camada na memória requer as seguintes versões das bibliotecas de cliente do Bigtable :

    • Java versão 2.77.0 ou mais recente
    • BOM versão 26.80.0 ou mais recente
    • Go versão 1.52.0 ou mais recente

    Outras bibliotecas de cliente não são aceitas.

  • Clusters que têm chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) ativadas não oferecem suporte à camada na memória.

  • A camada na memória é limitada a um máximo de 10 nós por cluster.

A seguir