Context
We're running a self-hosted e2b deployment on high-density nodes (hundreds of cores per node, Linux 6.12). Under heavy sandbox creation load, we noticed NBD block device connection became a significant bottleneck.
What we did
We forked the infra repo and replaced the NBD-based block device path with a ublk-based implementation. The NBD client/server socket overhead is eliminated — ublk communicates with the kernel via io_uring, avoiding the network stack entirely.
Results
- NBD: ~300ms block device connection latency
- ublk: ~10ms block device connection latency
The improvement is especially pronounced on high-core-count machines, where kernel socket contention under NBD scaled poorly with concurrent sandbox starts.
Question
We noticed the e2b-dev/ublk-go repo has been under active development. Is there a timeline or tracking issue for integrating ublk into the main infra repo? We'd be happy to contribute our patches or share more detailed benchmarks if that would be helpful.
Context
We're running a self-hosted e2b deployment on high-density nodes (hundreds of cores per node, Linux 6.12). Under heavy sandbox creation load, we noticed NBD block device connection became a significant bottleneck.
What we did
We forked the infra repo and replaced the NBD-based block device path with a ublk-based implementation. The NBD client/server socket overhead is eliminated — ublk communicates with the kernel via io_uring, avoiding the network stack entirely.
Results
The improvement is especially pronounced on high-core-count machines, where kernel socket contention under NBD scaled poorly with concurrent sandbox starts.
Question
We noticed the e2b-dev/ublk-go repo has been under active development. Is there a timeline or tracking issue for integrating ublk into the main infra repo? We'd be happy to contribute our patches or share more detailed benchmarks if that would be helpful.