Silk: A silky smooth fiber runtime for ClickHouse
Silk is a new open-source C++ fiber runtime built for ClickHouse, combining a NUMA-aware work-stealing scheduler, io_uring I/O, and zero heap allocation in the steady state to deliver nanosecond-level fiber yields and dramatically lower tail latency for h
Opening excerpt (first ~120 words) tap to expand
TL;DR # Silk is a stackful-fiber library and scheduler with a NUMA-aware work-stealing loop, io_uring as the I/O ground truth, and zero heap allocation in the steady-state hot path. We built it for ClickHouse, and the first place we aim to integrate it is in our distributed cache. What are fibers? What is Silk? # Fibers are a lightweight user-space execution unit, somewhat like threads. Unlike threads, fibers participate in cooperative multitasking instead of the preemptive multitasking that threads use; allowing fibers to yield their work instead of block on it. This particular behavior is best suited for asynchronous I/O, which is becoming more of a bottleneck in distributed systems as CPUs grow faster and clusters grow larger.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at ClickHouse.