Silk es un planificador de fibras cooperativas para Linux desarrollado por ClickHouse, diseñado para ofrecer alto rendimiento y concurrencia eficiente en sistemas modernos. Las fibras son corutinas de pila ligera que suspenden en lugar de bloquear sus hilos del sistema operativo, permitiendo concurrencia masiva con mínimo sobrecarga de contexto.
El sistema funciona mediante un bucle de planificador por CPU con hilos dedicados, integración con io_uring para E/S asíncrona y un sistema de robo de trabajo consciente de la topología NUMA. Esto significa que las tareas se redistribuyen dinámicamente entre CPUs según la carga, optimizando el uso de recursos hardware. Las fibras pueden suspenderse y reanudar sin bloquear el hilo subyacente, lo que permite manejar miles de operaciones simultáneas con pocos hilos del kernel.
Las aplicaciones incluyen servidores de alto rendimiento, sistemas de procesamiento de datos en tiempo real, y servicios que requieren manejar miles de conexiones simultáneas. Los desarrolladores pueden usar primitivas de sincronización como FiberMutex, FiberEvent, y FiberFutex para coordinación segura entre fibras. El proyecto incluye herramientas de depuración GDB extendido, bibliotecas de estructuras de datos sin bloqueo, y sistemas de memoria optimizados.
Consideraciones importantes: requiere CMake 3.28+, Clang 21, Ninja, y herramientas de desarrollo específicas. Las fibras difieren de las corutinas sin pila en su diseño de gestión de memoria y ofrecen mejor rendimiento para cargas intensivas de E/S. Los benchmarks incluyen pruebas de archivo, red TCP, HTTP, y comparación con fio para validar el rendimiento en escenarios reales. El sistema es ideal para aplicaciones que necesitan máximo throughput con mínimo uso de memoria.
