> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão de webassembly_udf_*

> Configurações de sessão do ClickHouse no grupo gerado webassembly_udf_*.

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Recurso experimental
        </a>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versão", "Valor padrão", "Comentário"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Histórico de versões
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Estas configurações estão disponíveis em [system.settings](/pt-BR/reference/system-tables/settings) e são geradas automaticamente a partir do [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

## webassembly\_udf\_input\_split\_memory\_ratio

<ExperimentalBadge />

<SettingsInfoBlock type="Float" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0.5"},{"label": "Nova configuração que controla a fração da memória linear de uma instância de WebAssembly UDF que a entrada serializada de uma chamada pode ocupar, o que também habilita a divisão dinâmica dessa entrada conforme seu tamanho serializado; `compatibility` abaixo de 26.9 a define como 0 e restaura o comportamento anterior, no qual `webassembly_udf_max_input_block_size = 0` significava uma chamada por bloco do pipeline."}]}]} />

Fração da memória linear de uma instância de WebAssembly UDF que a entrada serializada de uma chamada pode ocupar. Deve ser no mínimo 0 e no máximo 1; o padrão deixa a outra metade para o guest usar em seu próprio working set, ao lado do buffer de entrada.

A margem abaixo de 1 é o que torna o batching seguro: os dados, o stack e o allocator do próprio guest compartilham essa memória e são invisíveis ao host. Uma razão próxima de 1 não deixa nada para eles, de modo que uma chamada dimensionada com base nela ainda pode falhar dentro do allocator do guest.

É lida apenas para `ABI BUFFERED_V1` e dimensiona as chamadas somente enquanto `webassembly_udf_max_input_block_size` for 0 — um bloco size diferente de zero passa a limitar o número de linhas por chamada.

Um batch nunca fica abaixo de uma única linha, portanto uma linha cujo tamanho serializado exceda o orçamento é passada isoladamente, e uma linha grande demais para a memória linear do módulo falha dentro do allocator do guest.

Defina como 0 para deixar a entrada sem divisão: o bloco inteiro do pipeline é passado em uma única chamada.

## webassembly\_udf\_max\_fuel

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="100000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "100000"},{"label": "Nova configuração para limitar instruções de CPU (fuel) em cada execução de uma instância de WebAssembly UDF."}]}]} />

Limite de fuel em cada execução de uma instância de WebAssembly UDF. Cada instrução WebAssembly consome uma certa quantidade de fuel. O valor é multiplicado por 1024 antes de ser passado ao runtime, portanto `webassembly_udf_max_fuel = 1` corresponde a aproximadamente 1024 unidades de fuel. Defina como 0 para não haver limite finito. Aplica-se apenas a funções cuja configuração por função `webassembly_udf_enable_fuel` é true, que é o padrão.

## webassembly\_udf\_max\_input\_block\_size

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Nova configuração para limitar o tamanho do bloco de entrada para WebAssembly UDFs."}]}]} />

Número máximo de linhas passadas para uma WebAssembly UDF em uma única chamada. Um valor diferente de zero limita as linhas por chamada e se aplica a todas as ABIs.

Defina como 0 para, em vez disso, dimensionar as chamadas pela entrada serializada. Isso se aplica apenas à `ABI BUFFERED_V1`, a única ABI que serializa um bloco de entrada inteiro na memória do guest: seus blocos são divididos de modo que a entrada de uma chamada permaneça dentro de `webassembly_udf_input_split_memory_ratio` da memória linear do módulo. `ROW_DIRECT` passa seus argumentos como valores WebAssembly e `ASSEMBLYSCRIPT` constrói um objeto por linha, portanto nenhum deles possui uma entrada serializada pela qual dimensionar uma chamada, e 0 mantém o bloco do pipeline íntegro.

## webassembly\_udf\_max\_instances

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="32" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "32"},{"label": "Nova configuração para limitar o número de instâncias de WebAssembly UDF que podem ser executadas em paralelo para cada função."}]}]} />

Número máximo de instâncias de WebAssembly UDF que podem ser executadas em paralelo para cada função.

## webassembly\_udf\_max\_memory

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="134217728" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "134217728"},{"label": "Nova configuração para limitar a memória de cada instância de WebAssembly UDF."}]}]} />

Limite de memória em bytes de cada instância de WebAssembly UDF.
