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á.
Classificação de dados em níveis
Os clusters que usam um tipo de nó da família r6gd têm seus dados em camadas entre a memória e o armazenamento local SSD (unidades de estado sólido). O armazenamento de dados em camadas fornece uma nova opção de preço-desempenho para OSS cargas de trabalho Valkey e Redis, utilizando unidades de estado sólido (SSDs) de baixo custo em cada nó do cluster, além de armazenar dados na memória. Semelhante a outros tipos de nós, os dados gravados nos nós r6gd são armazenados de forma durável em um log de transações Multi-AZ. O armazenamento de dados em camadas é ideal para cargas de trabalho que acessam regularmente até 20% de seu conjunto de dados geral e para aplicativos que podem tolerar latência adicional ao acessar dados em. SSD
Em clusters com classificação de dados em níveis, o MemoryDB monitora o último horário de acesso de cada item armazenado. Quando a memória disponível (DRAM) é totalmente consumida, o MemoryDB usa um algoritmo (LRU) usado menos recentemente para mover automaticamente itens acessados com pouca frequência da memória para o. SSD Quando os dados ativados SSD são acessados posteriormente, o MemoryDB os move de volta para a memória de forma automática e assíncrona antes de processar a solicitação. Se você tiver uma workload que acessa regularmente apenas um subconjunto de dados, a classificação de dados em níveis é uma maneira ideal de dimensionar sua capacidade de modo econômico.
Observe que, ao usar o armazenamento de dados em camadas, as próprias chaves sempre permanecem na memória, enquanto a chave LRU controla o posicionamento dos valores na memória versus no disco. Em geral, recomendamos que seus tamanhos de chave sejam menores do que seus tamanhos de valor ao usar a classificação por níveis de dados.
A classificação de dados em níveis foi projetada para causar impacto mínimo na performance das workload da aplicação. Por exemplo, assumindo valores de string de 500 bytes, você normalmente pode esperar mais 450 microssegundos de latência para solicitações de leitura de dados armazenados em SSD comparação com solicitações de leitura para dados na memória.
Com o maior tamanho de nó de armazenamento de dados em camadas (db.r6gd.8xlarge), você pode armazenar até aproximadamente 500 TBs em um único cluster de 500 nós (250 TB ao usar 1 réplica de leitura). Para o armazenamento de dados em camadas, o MemoryDB reserva 19% da memória (DRAM) por nó para uso não relacionado a dados. O armazenamento em camadas de dados é compatível com todos os OSS comandos e estruturas de dados do Valkey e do Redis compatíveis com o MemoryDB. Para usar esse recurso, não é necessário promover alterações no lado do cliente.
Tópicos
Práticas recomendadas
Recomendamos seguir estas práticas recomendadas:
O armazenamento de dados em camadas é ideal para cargas de trabalho que acessam regularmente até 20% de seu conjunto de dados geral e para aplicativos que podem tolerar latência adicional ao acessar dados em. SSD
Ao usar a SSD capacidade disponível em nós com camadas de dados, recomendamos que o tamanho do valor seja maior que o tamanho da chave. O tamanho do valor não pode ser maior que 128 MB, caso contrário, não será movido para o disco. Quando os itens são movidos entre DRAM eSSD, as chaves sempre permanecerão na memória e somente os valores serão movidos para a SSD camada.
Limitações
A classificação de dados em níveis tem as seguintes limitações:
O tipo de nó usado deve ser da família r6gd, que está disponível nas seguintes regiões:
us-east-2
,us-east-1
,us-west-2
,us-west-1
,eu-west-1
,eu-west-3
,eu-central-1
,ap-northeast-1
,ap-southeast-1
,ap-southeast-2
,ap-south-1
,ca-central-1
esa-east-1
.Não é possível restaurar um snapshot de um cluster r6gd em outro cluster, a menos que ele também use r6gd.
Não é possível exportar um snapshot para o Amazon S3 para clusters de classificação de dados em níveis.
Não há compatibilidade com salvamento sem bifurcação.
Não há compatibilidade com escalabilidade de um cluster de classificação de dados em níveis (p. ex., um cluster que use um tipo de nó r6gd) para um cluster sem classificação de dados em níveis (p. ex., um cluster que use um tipo de nó r6g).
A classificação de dados em níveis só é compatível com as políticas maxmemory
volatile-lru
,allkeys-lru
enoeviction
.Itens maiores que 128 MiB não são movidos para. SSD
Preços para a classificação de dados em níveis
Os nós R6gd têm 5 vezes mais capacidade total (memória +SSD) e podem ajudá-lo a obter mais de 60% de economia de custos de armazenamento quando executados com utilização máxima em comparação com os nós R6g (somente memória). Para obter mais informações, consulte Preços do MemoryDB
Monitorar
O MemoryDB oferece métricas especificamente projetadas para monitorar os clusters de desempenho que usam a classificação de dados em níveis. Para monitorar a proporção de itens em DRAM comparação comSSD, você pode usar a CurrItems
métrica emMétricas para MemoryDB.. Você pode calcular a porcentagem como: (CurrItems with Dimension: Tier = Memory * 100) / (CurrItems with no dimension filter)
. Quando a porcentagem de itens na memória cair abaixo de 5%, recomendamos que você considere Escalabilidade de clusters do MemoryDB.
Para obter mais informações, consulte Métricas para clusters do MemoryDB que usam classificação de dados em níveis em Métricas para MemoryDB.
Como usar a classificação de dados em níveis
Ao criar um cluster, você usa a classificação de dados em níveis selecionando um tipo de nó da família r6gd, como o db.r6gd.xlarge. A seleção desse tipo de nó ativa automaticamente a classificação de dados em níveis.
Para mais informações sobre como criar um cluster, consulte Etapa 2: criar um cluster.
Ao criar um cluster usando o AWS CLI, você usa a classificação por níveis de dados selecionando um tipo de nó da família r6gd, como db.r6gd.xlarge e definindo o parâmetro. --data-tiering
Você não pode optar por não usar a classificação de dados em níveis ao selecionar um tipo de nó da família r6gd. Se você configurar o parâmetro --no-data-tiering
, a operação falhará.
Para Linux, macOS ou Unix:
aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6gd.xlarge \ --engine valkey \ --acl-name my-acl \ --subnet-group my-sg \ --data-tiering
Para Windows:
aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6gd.xlarge ^ --engine valkey ^ --acl-name my-acl ^ --subnet-group my-sg --data-tiering
Após executar essa operação, você verá uma resposta semelhante ao seguinte:
{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6gd.xlarge", "EngineVersion": "7.2", "EnginePatchVersion": "7.2.6", "Engine": "valkey" "ParameterGroupName": "default.memorydb-valkey7", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering":"true", "AutoMinorVersionUpgrade": true } }
Restauração de dados de um snapshot em clusters com a classificação de dados em níveis ativada
Você pode restaurar um snapshot em um novo cluster com o armazenamento de dados em camadas ativado usando (Console), () ou (APIMemoryDB AWS CLI). Ao criar um cluster usando tipos de nós na família r6gd, a classificação de dados em níveis é ativada.
Restauração de dados do snapshot para clusters com a classificação de dados em níveis ativada (console)
Restaurar um snapshot para um novo cluster com a classificação de dados em níveis ativada (console), siga as etapas em Restauração a partir de um snapshot (Console)
Observe que, para ativar a classificação de dados em níveis, você precisa selecionar um tipo de nó da família r6gd.
Ao criar um cluster usando o AWS CLI, por padrão, o armazenamento em camadas de dados é usado selecionando um tipo de nó da família r6gd, como db.r6gd.xlarge, e definindo o parâmetro. --data-tiering
Você não pode optar por não usar a classificação de dados em níveis ao selecionar um tipo de nó da família r6gd. Se você configurar o parâmetro --no-data-tiering
, a operação falhará.
Para Linux, macOS ou Unix:
aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6gd.xlarge \ --engine valkey --acl-name my-acl \ --subnet-group my-sg \ --data-tiering \ --snapshot-name
my-snapshot
Para Windows:
aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6gd.xlarge ^ --engine valkey ^ --acl-name my-acl ^ --subnet-group my-sg ^ --data-tiering ^ --snapshot-name
my-snapshot
Após executar essa operação, você verá uma resposta semelhante ao seguinte:
{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6gd.xlarge", "EngineVersion": "7.2", "EnginePatchVersion": "7.2.6", "Engine": "valkey" "ParameterGroupName": "default.memorydb-valkey7", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering": "true" }