webassembly_udf_input_split_memory_ratio
Fraction de la mémoire linéaire d’une instance d’UDF WebAssembly que peut occuper l’entrée sérialisée d’un appel. Doit être comprise entre 0 et 1 ; la valeur par défaut laisse l’autre moitié au guest pour son propre working set, à côté du buffer d’entrée. C’est cette marge en dessous de 1 qui rend le batching sûr : les données propres du guest, sa stack et son allocator se partagent cette mémoire et restent invisibles pour l’hôte. Un ratio proche de 1 ne leur laisse rien, si bien qu’un appel dimensionné en conséquence peut malgré tout échouer dans l’allocator du guest. Read only pourABI BUFFERED_V1 ; ce paramètre ne dimensionne les appels que tant que webassembly_udf_max_input_block_size vaut 0 : une block size non nulle plafonne à la place le nombre de lignes par appel.
Un batch ne descend jamais en dessous d’une seule ligne : une ligne dont la taille sérialisée dépasse à elle seule le budget est transmise isolément, et une ligne trop volumineuse pour la mémoire linéaire du module échoue dans l’allocator du guest.
Mettez la valeur à 0 pour laisser l’entrée non découpée : le bloc de pipeline entier est alors transmis en un seul appel.
webassembly_udf_max_fuel
Limite de fuel pour chaque exécution d’une instance de WebAssembly UDF. Chaque instruction WebAssembly consomme une certaine quantité de fuel. La valeur est multipliée par 1024 avant d’être transmise à l’environnement d’exécution ; ainsi,webassembly_udf_max_fuel = 1 correspond à environ 1024 unités de fuel. Définissez-la sur 0 pour supprimer toute limite finie. S’applique uniquement aux fonctions dont le paramètre par fonction webassembly_udf_enable_fuel est true, ce qui est la valeur par défaut.
webassembly_udf_max_input_block_size
Nombre maximal de lignes transmises à une WebAssembly UDF en un seul appel. Une valeur non nulle plafonne le nombre de lignes par appel et s’applique à tous les ABI. Définissez cette valeur sur 0 pour dimensionner plutôt les appels selon leur entrée sérialisée. Cela ne concerne queABI BUFFERED_V1, le seul ABI qui sérialise un bloc d’entrée entier dans la mémoire du guest : ses blocs sont découpés de sorte que l’entrée d’un appel reste dans la limite de webassembly_udf_input_split_memory_ratio de la mémoire linéaire du module. ROW_DIRECT transmet ses arguments sous forme de valeurs WebAssembly et ASSEMBLYSCRIPT construit un objet par ligne : aucun des deux ne dispose donc d’une entrée sérialisée permettant de dimensionner un appel, et la valeur 0 laisse leur bloc de pipeline intact.