> ## 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.

# ajustes de sesión de webassembly_udf_*

> Ajustes de sesión de ClickHouse en el grupo generado 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>
            Funcionalidad experimental
        </a>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versión", "Valor predeterminado", "Comentario"];
  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
  }}>
        Historial de versiones
      </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"
  }}>Predeterminado</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modificable sin reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Estos ajustes están disponibles en [system.settings](/es/reference/system-tables/settings) y se generan automáticamente a partir del [código fuente](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": "Nueva configuración que controla la fracción de la memoria lineal de una instancia de WebAssembly UDF que puede ocupar la entrada serializada de una llamada, lo que también permite dividir dinámicamente dicha entrada según su tamaño serializado; `compatibility` inferior a 26.9 la establece en 0 y restaura el comportamiento anterior, en el que `webassembly_udf_max_input_block_size = 0` significaba una llamada por bloque del pipeline."}]}]} />

Fracción de la memoria lineal de una instancia de WebAssembly UDF que puede ocupar la entrada serializada de una llamada. Debe ser como mínimo 0 y como máximo 1; el valor predeterminado reserva la otra mitad para que el guest mantenga su propio conjunto de trabajo junto al búfer de entrada.

El margen por debajo de 1 es lo que hace seguro el batching: los datos del guest, la pila y el allocator comparten esa memoria y son invisibles para el host. Una proporción cercana a 1 no les deja espacio, por lo que una llamada dimensionada según ella puede seguir fallando dentro del allocator del guest.

Es de solo lectura para `ABI BUFFERED_V1` y dimensiona las llamadas solo mientras `webassembly_udf_max_input_block_size` sea 0; un tamaño de bloque distinto de cero limita las filas por llamada.

Un batch nunca se reduce por debajo de una sola fila, por lo que una fila cuyo tamaño serializado supera el presupuesto se pasa por sí sola, y una demasiado grande para la memoria lineal del módulo falla dentro del allocator del guest.

Establézcalo en 0 para dejar la entrada sin dividir: todo el bloque del pipeline se pasa en una llamada.

## webassembly\_udf\_max\_fuel

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "100000"},{"label": "Nueva configuración para limitar las instrucciones de CPU (fuel) por ejecución de cada instancia de WebAssembly UDF."}]}]} />

Límite de fuel por ejecución de cada instancia de WebAssembly UDF. Cada instrucción de WebAssembly consume cierta cantidad de fuel. El valor se escala en 1024 antes de pasarse al entorno de ejecución, por lo que `webassembly_udf_max_fuel = 1` corresponde a aproximadamente 1024 unidades de fuel. Establézcalo en 0 para no tener ningún límite finito. Se aplica solo a las funciones cuyo ajuste por función `webassembly_udf_enable_fuel` es true, que es el valor predeterminado.

## 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": "Nueva configuración para limitar el tamaño del bloque de entrada de las WebAssembly UDF."}]}]} />

Número máximo de filas que se pasan a una WebAssembly UDF en una única llamada. Un valor distinto de cero limita las filas por llamada y se aplica a todas las ABI.

Establézcalo en 0 para dimensionar las llamadas según su entrada serializada. Esto se aplica únicamente a `ABI BUFFERED_V1`, la única ABI que serializa un bloque de entrada completo en la memoria del guest: sus bloques se dividen de modo que la entrada de una llamada se mantenga dentro del valor de `webassembly_udf_input_split_memory_ratio` de la memoria lineal del módulo. `ROW_DIRECT` pasa sus argumentos como valores de WebAssembly y `ASSEMBLYSCRIPT` construye un objeto por fila, por lo que ninguna de las dos tiene una entrada serializada con la que dimensionar una llamada, y 0 deja intacto su bloque del pipeline.

## webassembly\_udf\_max\_instances

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "32"},{"label": "Nueva configuración para limitar el número de instancias de WebAssembly UDF que pueden ejecutarse en paralelo por función."}]}]} />

Número máximo de instancias de WebAssembly UDF que pueden ejecutarse en paralelo por función.

## webassembly\_udf\_max\_memory

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "134217728"},{"label": "Nueva configuración para limitar la memoria de cada instancia de WebAssembly UDF."}]}]} />

Límite de memoria en bytes para cada instancia de WebAssembly UDF.
