Após a reinicialização de um nó de column store, os índices de coluna em memória (IMCIs) entram no estado LOADING_NCI enquanto o nó reconstrói os mapeamentos entre os IMCIs e os dados orientados a linhas. Esses mapeamentos permitem atualizações de dados em tempo real e com alta concorrência para cargas de trabalho de processamento transacional e analítico híbrido (HTAP).
Durante esse período, as gravações continuam sem interrupção, mas o comportamento de leitura muda conforme a configuração dos parâmetros. O estado LOADING_NCI pode durar de alguns segundos a várias horas, dependendo do volume de dados orientados a colunas e das especificações do cluster.
Verificar o estado do IMCI
Consulte INFORMATION_SCHEMA.IMCI_INDEXES para verificar o estado atual de todos os IMCIs em um nó de column store.
|
**Valor de |
Significado |
|
|
O nó de column store foi reiniciado e o sistema está reconstruindo o mapeamento do índice. O comportamento de leitura depende do parâmetro |
|
|
A reconstrução foi concluída. As leituras retornam os dados mais recentes em tempo real. |
|
Outro |
Não é possível ler os dados. |
Impacto nas gravações
As gravações em um IMCI no estado LOADING_NCI não são bloqueadas; os dados continuam sendo atualizados em tempo real. No entanto, como o mapeamento entre o IMCI e os dados orientados a linhas ainda não foi totalmente estabelecido, essas atualizações permanecem apenas em cache no IMCI e não podem ser consultadas imediatamente.
Impacto na consistência de leitura
O parâmetro imci_enable_read_during_load_nci controla como os IMCIs atendem às solicitações de leitura durante o estado LOADING_NCI.
|
Estado do índice |
** |
Comportamento de leitura |
|
|
|
O sistema atende a leituras de snapshot. Se qualquer IMCI estiver em |
|
|
|
É possível ler IMCIs cujos dados não foram alterados desde o último snapshot (equivalente a |
|
|
N/A |
Os dados mais recentes estão disponíveis para leitura em tempo real. |
|
Outros estados |
N/A |
Não é possível ler os dados. |
Configure o parâmetro
Quando definido como ON
Todos os IMCIs fornecem serviço de leitura de snapshot até que cada IMCI atinja o estado COMMITTED. Isso permite que consultas complexas usem a aceleração do IMCI, independentemente de os IMCIs individuais estarem em LOADING_NCI ou COMMITTED.
Utilize esta configuração quando a disponibilidade da consulta durante a recuperação for mais importante que a atualização dos dados no momento da leitura.
Se pelo menos um IMCI estiver em LOADING_NCI , todos os IMCIs passarão a usar leituras de snapshot, não apenas aquele que ainda está carregando.
Quando definido como OFF
Os IMCIs aplicam uma consistência de leitura mais rigorosa:
IMCIs em
COMMITTEDatendem a leituras usando os dados orientados a colunas mais recentes.IMCIs em
LOADING_NCInão podem atender a leituras em tempo real. Exceção: se os dados de um IMCI não tiverem sido modificados desde o último snapshot, ele será tratado como equivalente aCOMMITTEDe poderá ser lido.
Adote esta configuração quando sua carga de trabalho exigir que as leituras sempre reflitam os dados confirmados mais recentes e você aceitar que alguns IMCIs possam ficar temporariamente indisponíveis para aceleração de consultas.
Escopo do parâmetro e valores padrão
O escopo e o valor padrão de imci_enable_read_during_load_nci dependem da versão do cluster PolarDB for MySQL Enterprise Edition:
|
Faixa de versão |
Escopo |
Padrão |
Reinicialização necessária para aplicar alterações |
|
V8.0.1.1.29 a V8.0.1.1.36 |
Global |
|
Sim |
|
V8.0.1.1.37 ou posterior |
Nível de sessão |
|
Não |