Todos os produtos
Search
Central de documentação

AnalyticDB:Controle de fluxo de splits

Última atualização: Aug 26, 2026

O controle de fluxo de splits limita o número de varreduras de splits simultâneas em uma tarefa ou em um nó. Sem esse limite, a alta simultaneidade de varreduras pode causar os seguintes problemas:

  • Em tabelas internas, as varreduras de splits simultâneas competem pelos recursos de E/S dos nós de armazenamento, o que aumenta a utilização da CPU e o uso de memória, podendo tornar esses nós instáveis.

  • Em tabelas externas, a eficiência da varredura varia conforme a source de dados. Se o número de varreduras de splits simultâneas 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 splits está ativado por padrão.

Este tópico descreve como ativar ou desativar o controle de fluxo de splits e configure a cota de varreduras de splits simultâneas 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 verify 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 run 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, e uma única tarefa pode processar vários splits simultaneamente.

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

  • Nível de tarefa: Cada tarefa possui uma cota para varreduras de splits simultâneas. Quando o número de varreduras em execução atinge essa cota, as novas varreduras aguardam a conclusão de uma varredura em andamento.

  • 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 disponível e diminui quando o nó está sob carga.

Escolha uma abordagem de gerenciamento de cotas

Antes de configure as cotas, decida se permitirá que o sistema ajuste as cotas por tarefa automaticamente ou se as definirá com um valor fixo.

Abordagem

Como funciona

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 fica fixada no valor de TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Cargas de trabalho previsíveis que exigem controle preciso de simultaneidade

O ajuste dinâmico exige que o controle de fluxo de splits esteja ativado.

Ative ou desative o controle de fluxo de splits

O controle de fluxo de splits 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 verify se o controle de fluxo de splits está ativado no momento:

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ó tem capacidade disponível e diminui quando a cota do nó está sob pressão. A cota por tarefa permanece 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 splits antes de enable o ajuste dinâmico. Execute SHOW ADB_CONFIG KEY=SPLIT_FLOW_CONTROL_ENABLED; para confirm.

Para enable ou desativar o ajuste dinâmico:

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true|false;

Parâmetros de cota

Os parâmetros a seguir controlam a cota de varreduras de splits simultâneas 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

Define 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, ela 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ó possui 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 usando 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 splits simultâneas como 24 para todas as tarefas no cluster:

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;

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

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

Defina a cota máxima como 128 para todas as tarefas no cluster:

SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

Defina a cota máxima como 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 consultas. 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 e conclusão rápida esperada

Defina valores maiores para MIN, TARGET e MAX ou desative o controle de fluxo de splits para a consulta

Varreduras completas de tabela grandes e com menor prioridade

Muitos splits, longa duração e sem sensibilidade à latência

Use um valor menor para TARGET a fim de proteger consultas de alta prioridade; a cota aumenta automaticamente quando os recursos ficam ociosos

Consultas em tabelas externas

Eficiência da varredura dependente 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 splits simultâneas. 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 view 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 splits 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 splits simultâneas poderá exceder a cota configurada.