O Simple Log Service (SLS) usa shards para controlar o throughput de leitura e gravação de Logstores, Eventstores e Metricstores. Divida ou mescle shards para ajustar a quantidade de shards ativos e o throughput geral. A divisão pode ser automática, mas a mesclagem é exclusivamente manual.
Conceitos principais
Intervalo de shard
Cada shard abrange um intervalo de hash MD5 fechado à esquerda e aberto à direita: [BeginKey,EndKey). Os intervalos não se sobrepõem e cobrem todo o espaço MD5: [00000000000000000000000000000000,ffffffffffffffffffffffffffffffff). Ao criar um Logstore ou Metricstore, o SLS divide o intervalo MD5 igualmente entre o número especificado de shards.
BeginKey: início do intervalo do shard. Este valor é inclusivo.
EndKey: fim do intervalo do shard. Este valor é exclusivo.
Por exemplo, o Logstore A tem quatro shards com os seguintes intervalos:
Tabela 1. Exemplo de intervalos de shards
|
ID do Shard |
Intervalo |
|
Shard0 |
[00000000000000000000000000000000,40000000000000000000000000000000) |
|
Shard1 |
[40000000000000000000000000000000,80000000000000000000000000000000) |
|
Shard2 |
[80000000000000000000000000000000,c0000000000000000000000000000000) |
|
Shard3 |
[c0000000000000000000000000000000,ffffffffffffffffffffffffffffffff) |
A leitura de dados exige a especificação de um ID de shard. A gravação oferece suporte a dois modos:
-
Modo de balanceamento de carga: cada pacote de dados é gravado aleatoriamente em um shard disponível.
Recomendado quando o tráfego de gravação excede a capacidade de um único shard.
-
Modo de roteamento por chave de hash: especifique uma chave MD5 e os dados serão gravados no shard cujo intervalo contém essa chave.
Por exemplo, com base no exemplo de intervalo de shard, ao gravar dados com uma chave MD5 de 5F, eles serão escritos no Shard1. Se usar a chave 8C, os dados serão gravados no Shard2.
Capacidade de leitura e gravação do shard
Cada shard possui limites definidos de capacidade de leitura e gravação. Para obter detalhes, consulte Leitura e gravação de dados.
Planeje a quantidade de shards com base no tráfego real de dados. Divida os shards quando o tráfego exceder a capacidade; mescle-os quando o tráfego estiver bem abaixo da capacidade para reduzir a contagem de shards ativos e o custo.
Se as chamadas de API de gravação retornarem persistentemente erros 403 ou 500, verifique o tráfego e os códigos de status no CloudMonitor para determinar se mais shards são necessários.
Caso as solicitações excedam a capacidade de um shard, o SLS as processará com base no melhor esforço, sem garantir a qualidade do service.
Status do shard
O status do shard pode ser readwrite ou readonly.
Novos shards iniciam com o status readwrite. Após uma divisão ou mesclagem, os shards originais tornam-se readonly e novos shards readwrite são criados. O status não afeta o desempenho de leitura, mas apenas shards readwrite garantem o desempenho de gravação — shards readonly não aceitam novas gravações.
Divisão e mesclagem
Ajuste a contagem de shards ativos de duas maneiras:
-
A divisão separa um shard em dois novos shards
readwriteposicionados após o original. O intervalo MD5 combinado deles equivale ao intervalo do shard original.Somente shards
readwritepodem ser divididos. Após a divisão, o shard original torna-sereadonly— ainda é possível consumir seus dados, mas não gravar novos dados nele. -
A mesclagem combina dois shards adjacentes em um novo shard
readwriteposicionado após eles. Seu intervalo MD5 cobre o intervalo combinado dos dois originais.Selecione um shard
readwriteque não seja o último na sequência. O SLS o mescla automaticamente com o shard adjacente à sua direita. Ambos os shards originais tornam-sereadonly— ainda é possível consumir seus dados, mas não gravar novos dados.
Dividir shard
Planeje a quantidade de shards com base no seu tráfego de dados. Cada shard suporta throughput de gravação de 5 MB/s ou 500 solicitações/s e throughput de leitura de 10 MB/s ou 100 solicitações/s. Esses são limites flexíveis — o SLS processa o tráfego excedente com base no melhor esforço. Divida os shards quando o throughput for insuficiente.
Se as chamadas de API de gravação retornarem persistentemente erros 403 ou 500, verifique o tráfego e os códigos de status no CloudMonitor para determinar se mais shards são necessários.
Operações no console
Faça login no console do Simple Log Service.
-
Na seção Projects, clique em no projeto desejado.

No painel de navegação à esquerda, escolha
Log Storage > Logstores. Na página Logstores, passe o mouse sobre o logstore de destino e escolha .Na página Logstore Attributes, clique em Modify.
-
Selecione um shard para dividir e clique em Split.
ImportanteSomente shards
readwritepodem ser divididos.Na página Shard Management, localize o shard
readwritea ser dividido e clique em Split na coluna Actions. Na caixa de diálogo exibida, selecione o número de novos shards e clique em OK.
Clique em Save.
Visualizar shards
Operações no console
Faça login no console do Simple Log Service.
-
Na seção Projects, clique em no projeto desejado.

No painel de navegação à esquerda, escolha
Log Storage > Logstores. Na página Logstores, passe o mouse sobre o logstore de destino e escolha .-
Na página Logstore Attributes, visualize a lista de shards do logstore.
Esta página exibe o Total Shards (incluindo o número de shards readwrite e readonly) e detalhes de cada shard, incluindo seu Id, Status, BeginKey/EndKey e Creation Time.
Divisão automática de shards
O SLS divide automaticamente um shard quando todas as condições a seguir são atendidas:
A opção Auto Split Shard está ativada.
O tráfego de gravação no shard excedeu sua capacidade de gravação por mais de cinco minutos.
O número de shards
readwriteno logstore é menor que o valor configurado em Maximum Shards.
Shards criados por uma divisão nos últimos 15 minutos não são elegíveis para divisão automática.
Ative a divisão automática de shards e defina o valor de Maximum Shards ao criar ou modificar um Logstore.
-
Auto Split Shard
Por exemplo, se houver quatro shards, o SLS avalia cada um independentemente. Ele divide qualquer shard que atenda às condições, desde que a contagem total não exceda o máximo configurado.
-
Maximum Shards
Limite superior para o total de shards após a divisão automática. Valor máximo suportado: 256 shards
readwrite.
Mesclar shards
Quando o tráfego de dados estiver muito abaixo da capacidade do shard, mescle os shards para reduzir a contagem de shards ativos e diminuir custos. Uma mesclagem combina um shard com o shard adjacente à sua direita e deve ser executada manualmente.
Para mesclar shards, especifique um shard com status readwrite que não seja o último shard readwrite da sequência.
No painel de navegação à esquerda, escolha
Log Storage > Logstores. Na página Logstores, passe o mouse sobre o logstore de destino e escolha .Na página Logstore Attributes, clique em Modify.
-
Selecione um shard para mesclar e clique em Merge.
A página Shard Management lista todos os shards com seus detalhes. A coluna Actions fornece as opções Split ou Merge para shards
readwrite. Nenhuma ação está disponível para shardsreadonly. -
Clique em Save.
Após a mesclagem, os dois shards originais tornam-se
readonly. Um novo shardreadwriteé criado com um intervalo MD5 que cobre o intervalo combinado dos dois originais.
Excluir shard
Shards excluídos não podem ser restaurados. Prossiga com cautela.
-
Exclusão automática
Se você definir um período de retenção de dados para o logstore, o SLS excluirá automaticamente os shards e seus dados quando o período expirar.
-
Exclusão manual
Caso tenha ativado o armazenamento permanente, exclua todo o Logstore para remover seus shards e dados. Parar faturamento/Excluir logstore.
Referência de API
|
Ações |
API |
|
Dividir um shard |
|
|
Mesclar shards |
|
|
Listar shards |
> Modify