Visão geral da camada na memória
O nível na memória é uma configuração no nível do 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.
O nível na memória do Bigtable é um nível de memória integrado como parte do nó do Bigtable que permite o armazenamento em camadas de dados otimizado para custos e sem problemas com base em padrões de acesso e necessidades de desempenho, tudo por uma única API. Usando o acesso direto à memória remota (RDMA), a camada na memória do Bigtable reduz significativamente os tempos de resposta, mitiga 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 o nível na memória
Recomendamos que você ative o nível na memória para os seguintes casos de uso:
- Requisitos de latência inferior a um milissegundo: cargas de trabalho que exigem latências de leitura inferiores a 1 ms, geralmente resolvidas com um banco de dados com uma solução de cache autogerenciada.
- Leituras de pontos 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 hotspots: cargas de trabalho de alta capacidade de processamento que podem incluir picos de tráfego ou hotspots 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 um nível mais econômico na memória.
Como a camada na memória funciona
O suporte ao nível 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 de nível na memória. Durante esse período, o Bigtable continua a veicular 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 caching de leitura direta. Uma linha entra na camada de memória com operações de leitura por um perfil de aplicativo que você configura 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 nela.
- Políticas de remoção e invalidação: a camada na memória usa a remoção do menos recentemente usado (LRU) no nível da linha e uma política de invalidação de tempo de vida (TTL) de 15 minutos.
- Armazenamento em cache negativo: o nível na memória lembra se um recurso está faltando por um período para evitar sobrecarga no 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, os níveis de memória de clusters diferentes não estão sincronizados. Como cada nível 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 ter chaves de linha diferentes nos níveis de memória. O Bigtable carrega dados na memória da camada de 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 padrão de replicação do Bigtable de consistência posterior.
- Escalonamento automático vertical: a camada na memória oferece suporte ao 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 alto desempenho aos dados atuais. Para manter esse desempenho, 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 o nível de memória e são atendidas pelo 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 infrequente. Essa arquitetura híbrida permite que o Bigtable ofereça um modelo de armazenamento consistente em todas as camadas, permitindo que você acesse seus dados pela mesma interface semântica, independentemente de eles estarem na RAM ou no armazenamento permanente. Com a camada na memória do Bigtable ativada, você mantém a consistência de leitura das gravações no nível do cluster.
Escalonamento vertical
Ao ativar o nível na memória, cada nó pode usar o escalonamento vertical para modificar a capacidade de processamento do nível na memória. Cada nó inclui 8 GB de RAM para o nível 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 pontual, 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 se integra ao escalonamento automático do Bigtable. Se a capacidade máxima do nível na memória for atingida em todos os nós do cluster e o escalonamento automático estiver ativo, o Bigtable vai provisionar automaticamente mais nós para aumentar ainda mais a capacidade de processamento do nível na memória.
O escalonamento vertical em um nó se aplica apenas a leituras por segundo da camada na memória e funciona com ou sem o escalonamento automático no nível do cluster ativado. O escalonamento vertical além das 40.000 leituras por segundo básicas é faturado aplicando um multiplicador ao custo por hora do nó. Para mais informações, consulte preços e limites.
Limitações
As seguintes limitações se aplicam ao nível na memória:
- A camada na memória exige armazenamento SSD.
- O nível na memória aceita apenas operações de leitura pontual no nível de uma única linha.
- O nível na memória não atende a verificações de dados nem é compatível com consultas SQL.
- Os perfis de app na camada na memória só aceitam o roteamento de cluster único.
- O nível na memória limita o tamanho da linha a 1 MiB por chave de linha. O Bigtable lê do armazenamento permanente as linhas que excedem esse limite.
- O nível na memória requer a versão 2.77.0 ou mais recente da biblioteca de cliente do Bigtable para Java ou a versão 26.80.0 ou mais recente do BOM. Outras bibliotecas de cliente não são compatíveis.
- Os clusters de chaves de criptografia gerenciadas pelo cliente (CMEK) não são compatíveis com o nível na memória.
A seguir
- Saiba como ativar a camada na memória.