Todos os produtos
Search
Central de documentação

AnalyticDB:Controle de fluxo de split

Última atualização: Jun 27, 2026

O controle de fluxo de split limita o número de varreduras de split concorrentes em uma tarefa ou em um nó. Sem esse limite, a alta concorrência de varreduras pode causar os seguintes problemas:

  • Em tabelas internas, as varreduras de split concorrentes competem pelos recursos de E/S dos nós de armazenamento. Isso aumenta a utilização da CPU e o uso de memória, podendo desestabilizar esses nós.

  • Em tabelas externas, a eficiência da varredura varia conforme a source de dados. Se o número de varreduras de split concorrentes exceder a cota, as novas varreduras consumirão recursos dos nós de computação e afetarão outras consultas, em vez de acelerar a varredura geral.

O controle de fluxo de split está ativado por padrão.

Este tópico descreve como ativar ou desativar o controle de fluxo de split e configure a cota de varreduras de split concorrentes nos níveis de tarefa e de nó.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do AnalyticDB for MySQL com a versão V3.1.10.0 ou posterior

Nota

Para verificar a versão secundária de um cluster, consulte Como consulto a versão de um cluster do AnalyticDB for MySQL?. Para atualizar a versão secundária, entre em contato com o suporte técnico.

Como funciona

Ao executar uma consulta, o AnalyticDB for MySQL a divide em estágios. Cada estágio roda como múltiplas tarefas distribuídas pelos nós. Para varrer uma tabela, o sistema a divide em splits. Cada split é atribuído a uma tarefa, que pode processar vários splits simultaneamente.

O controle de fluxo de split opera em dois níveis:

  • Nível de tarefa: Cada tarefa tem uma cota para varreduras de split concorrentes. Quando o número de varreduras em execução atinge essa cota, as novas varreduras aguardam a conclusão de uma varredura ativa.

  • Nível de nó: Cada nó tem uma cota global. A cota por tarefa se ajusta dinamicamente com base na cota do nó: aumenta quando há capacidade ociosa e diminui quando o nó está sob carga.

Escolha uma abordagem de gerenciamento de cota

Antes de configure as cotas, decida se prefere permitir que o sistema ajuste as cotas por tarefa automaticamente ou defini-las com um valor fixo.

Abordagem

Funcionamento

Quando usar

Ajuste dinâmico (recomendado)

O sistema aumenta ou reduz a cota de cada tarefa com base na carga atual do nó

Cargas de trabalho mistas, nas quais a disponibilidade de recursos flutua

Cota fixa

A cota por tarefa permanece fixada no valor de TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Cargas de trabalho previsíveis que exigem controle preciso de concorrência

O ajuste dinâmico requer que o controle de fluxo de split esteja ativado.

Ative ou desative o controle de fluxo de split

O controle de fluxo de split vem ativado por padrão. Para desativá-lo ou reativá-lo, execute uma das seguintes instruções.

Para um cluster:

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true|false;

Para uma única consulta (usando uma dica):

/*+ SPLIT_FLOW_CONTROL_ENABLED=true|false*/ SELECT * FROM table;

Para verificar se o controle de fluxo de split está atualmente ativado:

SHOW ADB_CONFIG KEY=SPLIT_FLOW_CONTROL_ENABLED;

Configure a cota por tarefa

Ative ou desative o ajuste dinâmico

Com o ajuste dinâmico ativado, a cota de cada tarefa aumenta quando o nó possui capacidade ociosa e diminui quando a cota do nó está sob pressão. A cota por tarefa mantém-se dentro dos limites definidos por MIN_RUNNING_SPLITS_LIMIT_PER_TASK e MAX_RUNNING_SPLITS_LIMIT_PER_TASK.

Se o ajuste dinâmico estiver desativado, a cota por tarefa fica fixa no valor de TARGET_RUNNING_SPLITS_LIMIT_PER_TASK (padrão: 32).

Importante

Ative o controle de fluxo de split antes de habilitar o ajuste dinâmico. Execute SHOW ADB_CONFIG KEY=SPLIT_FLOW_CONTROL_ENABLED; para confirme.

Para ativar ou desativar o ajuste dinâmico:

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true|false;

Parâmetros de cota

Os parâmetros abaixo controlam a cota de varreduras de split concorrentes por tarefa.

Parâmetro

Padrão

Intervalo válido

Descrição

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

1

De 1 até o valor de TARGET

Defina a cota mínima por tarefa. Sob alta carga no nó, a cota dinâmica não cai abaixo deste valor.

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

32

Do valor de MIN até o valor de MAX

Representa a cota base por tarefa. Se a soma das cotas-alvo de todas as tarefas couber na cota do nó, a cota de cada tarefa aumenta dinamicamente; caso contrário, diminui. Este valor também define a cota fixa quando o ajuste dinâmico está desativado.

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

64

Maior que o valor de TARGET

Estabelece a cota máxima por tarefa. Quando o nó tem capacidade ociosa, a cota dinâmica não ultrapassa este valor.

Aplique as configurações de cota para um cluster ou consulta

Aplique as configurações de cota no nível do cluster usando SET ADB_CONFIG ou no nível da consulta por meio de uma dica.

Nível do cluster:

SET ADB_CONFIG <parameter>=<value>;

Nível da consulta:

/*+ <parameter>=<value>*/ SELECT * FROM orders;

Exemplos

Defina a cota mínima de varreduras de split concorrentes como 24 para todas as tarefas do cluster:

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;

Configure a cota mínima como 10 para uma consulta específica:

/*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/ SELECT * FROM orders;

Estabeleça a cota máxima como 128 para todas as tarefas do cluster:

SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

Limite a cota máxima a 100 para uma consulta específica:

/*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/ SELECT * FROM adb_test;

Orientações de ajuste

Reduzir a cota de uma tarefa faz com que mais splits aguardem na fila. Isso aumenta a latência de varredura dessa consulta, mas libera recursos para outras. Aumentar a cota produz o efeito oposto.

Cenário

Características da consulta

Abordagem recomendada

Consultas pontuais ou de baixa latência

Poucos splits, volume pequeno de dados, conclusão rápida esperada

Defina MIN, TARGET e MAX com valores maiores ou desative o controle de fluxo de split para essa consulta

Varreduras completas de tabela grandes e com menor prioridade

Muitos splits, execução longa, não sensível a latência

Configure TARGET com um valor menor para proteger consultas de alta prioridade; a cota aumentará automaticamente quando os recursos estiverem ociosos

Consultas em tabelas externas

A eficiência da varredura depende do throughput da source de dados

Baseie a cota nos limites de transmissão da source de dados para evitar sobrecarregá-la

Configure a cota no nível do nó

Cada nó possui uma cota global para varreduras de split concorrentes. O valor padrão é 256 tanto para nós de armazenamento quanto para nós de computação.

Importante

Não altere o valor padrão. Uma cota excessivamente alta ou baixa degrada o desempenho do cluster.

Nós de armazenamento (varreduras de tabelas internas):

SET ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

Nós de computação (varreduras de tabelas externas):

SET ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

Para consultar a cota atual no nível do nó:

SHOW ADB_CONFIG;

Para obter mais informações, consulte SHOW ADB_CONFIG.

Observações de uso

  • Alterações na cota do nó aplicam-se apenas a splits pendentes. A redução da cota do nó só entra em vigor após a conclusão das varreduras de split em execução.

  • Cotas mínimas por tarefa podem fazer com que a cota do nó seja excedida. Se a soma de MIN_RUNNING_SPLITS_LIMIT_PER_TASK de todas as tarefas em um nó superar a cota desse nó, o número real de varreduras de split concorrentes poderá exceder a cota configurada.