webassembly_udf_input_split_memory_ratio
WebAssembly UDF 인스턴스의 선형 메모리에서 한 번의 호출에 대한 직렬화된 입력이 차지할 수 있는 비율입니다. 값은 0 이상 1 이하여야 합니다. 기본값에서는 입력 버퍼 외에 게스트가 자체 작업 집합에 사용할 수 있도록 나머지 절반을 남겨 둡니다. 1보다 작은 여유 공간이 배칭의 안전성을 보장합니다. 게스트의 자체 데이터, 스택, allocator는 이 메모리를 함께 사용하며 호스트에서는 보이지 않습니다. 비율이 1에 가까우면 이들을 위한 공간이 남지 않으므로, 이를 기준으로 크기를 정한 호출도 게스트의 allocator 내부에서 실패할 수 있습니다.ABI BUFFERED_V1에서는 읽기 전용이며, webassembly_udf_max_input_block_size가 0일 때만 호출 크기를 결정합니다. 0이 아닌 블록 크기가 대신 호출당 행 수를 제한합니다.
배치는 단일 행보다 작아지지 않으므로 자체 직렬화 크기가 예산을 초과하는 행은 단독으로 전달됩니다. 모듈의 선형 메모리에 비해 너무 큰 행은 게스트의 allocator 내부에서 실패합니다.
입력을 분할하지 않으려면 0으로 설정하십시오. 전체 파이프라인 블록이 한 번의 호출로 전달됩니다.
webassembly_udf_max_fuel
WebAssembly UDF 인스턴스 실행마다 적용되는 연료 제한입니다. 각 WebAssembly 명령어는 일정량의 연료를 소비합니다. 이 값은 런타임에 전달되기 전에 1024배로 조정되므로,webassembly_udf_max_fuel = 1은 대략 1024 연료 단위에 해당합니다. 유한한 제한을 두지 않으려면 0으로 설정합니다. 기본값이 true인 함수별 설정 webassembly_udf_enable_fuel이 true인 함수에만 적용됩니다.
webassembly_udf_max_input_block_size
한 번의 호출에서 WebAssembly UDF로 전달되는 최대 행 수입니다. 0이 아닌 값은 호출당 행 수를 제한하며 모든 ABI에 적용됩니다. 대신 직렬화된 입력을 기준으로 호출 크기를 조정하려면 0으로 설정하십시오. 이는 전체 입력 block을 게스트 메모리에 직렬화하는 유일한 ABI인ABI BUFFERED_V1에만 적용됩니다. 이 ABI의 block은 호출 입력이 모듈 선형 메모리의 webassembly_udf_input_split_memory_ratio 이내로 유지되도록 분할됩니다. ROW_DIRECT는 인수를 WebAssembly 값으로 전달하고 ASSEMBLYSCRIPT는 행마다 하나의 객체를 생성하므로, 둘 다 호출 크기를 결정할 직렬화된 입력이 없습니다. 따라서 0으로 설정하면 해당 파이프라인 블록은 그대로 유지됩니다.