Menu

1 / 2

Breaking the WebAssembly Sandbox Tax: A Zero-Copy C++ JIT Decoder Scaling to 64 Cores

DEV Community: cpp·Wei Li·5 months ago
#JxHlYqZe
#dev#core#spned#sandbox#database
Reading 0:00
15s threshold

Breaking the WebAssembly Sandbox Tax: A Zero-Copy C++ JIT Decoder Scaling to 64 Cores

Recently, while evaluating ingestion pipelines for analytical database kernels (like DuckDB and Umbra), our research team hit a severe, counter-intuitive bottleneck.

WebAssembly (Wasm) has become the industry's darling for safely sandboxing User-Defined Functions (UDFs) and custom format decoders. In theory, it provides excellent memory isolation. However, when deployed in a highly concurrent, memory-intensive physical environment, we discovered a fatal architectural limit.

The Benchmark: Wasm's Multi-Core Collapse

To eliminate virtual machine noise, we ran a strict stress test on a 64-core physical machine, utilizing the highly optimized Wasmtime Bare-Metal C API.

The results were eye-opening. As the chart demonstrates, the Wasm sandbox scaled acceptably up to 4 to 8 threads, peaking at approximately 812 MT/s.

However, once we pushed past that threshold, throughput completely collapsed.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.