Análisis técnico del rendimiento de io_uring y readahead en Turso

Este artículo técnico analiza el impacto de la implementación de readahead (lectura anticipada) en la base de datos Turso, específicamente en su backend basado en io_uring con O_DIRECT. Al utilizar O_DIRECT, el kernel no realiza lectura anticipada automática, por lo que debe implementarse a nivel de

Cancelación, apagado y terminación: tres conceptos que se suelen confundir

En programación concurrente conviven tres ideas distintas que conviene no mezclar: la cancelación síncrona, la cancelación asíncrona y el apagado graceful (graceful shutdown). La cancelación síncrona es una estructura de control, a menudo implícita. Desenrolla la pila al disparar una excepción o de

Apache Iggy se gradúa como proyecto de primer nivel de la ASF

Apache Iggy, la plataforma de mensajería persistente escrita en Rust, se graduó oficialmente como proyecto de primer nivel (TLP) de la Apache Software Foundation el 19 de agosto de 2026, tras una votación unánime del Apache Incubator. El proyecto, nacido en marzo de 2023 como una iniciativa personal

Writergate: la reorganización del sistema de E/S en Zig

Writergate es el nombre informal con el que la comunidad de Zig bautizó la profunda reforma de la interfaz de entrada y salida del lenguaje, iniciada a finales de 2023 y culminada en agosto de 2025 con la eliminación completa de GenericWriter, GenericReader, AnyWriter y AnyReader. El cambio afecta a

Cada escritura rápida traslada trabajo a otro lugar del sistema

Los motores de almacenamiento deben decidir qué operaciones completan antes de confirmar al cliente que una escritura se ha realizado correctamente. Devolver el control tras copiar los bytes en memoria es la opción más rápida, pero un fallo de la máquina puede perder esos datos. Esperar a un SSD loc

Diseñando el sistema de consultas de Krabby: objetivos y arquitectura

El autor describe el proceso de cinco meses para diseñar el sistema de consultas del compilador Krabby, inicialmente planteado con una arquitectura push que acabó descartada. Las principales limitaciones del modelo push eran que, al gestionar referencias pendientes, terminaba siendo un sistema de co

Colas MPSC sin bloqueos para io_uring en el kernel 7.2

El subsistema io_uring del kernel Linux gestiona un volumen elevado de operaciones en vuelo, lo que exige estructuras de datos eficientes para sus colas internas de trabajo. Hasta la versión 7.1, io_uring se apoyaba en la API llist del kernel, una lista simplemente enlazada sin bloqueos orientada a

Furtex: kit de post-explotación y evasión para Linux basado en io_uring y eBPF

Furtex es un kit de herramientas de código abierto orientado a la investigación de post-explotación y a la evasión de controles de seguridad en sistemas Linux. Está construido sobre dos primitivas del kernel —io_uring y eBPF— y prescinde intencionadamente de liburing y de frameworks intermedios, de

Lecturas asíncronas a nivel de kernel en PostgreSQL 19 con io_uring

PostgreSQL 19 introduce un nuevo método de E/S asíncrona basado en io_uring, la interfaz del kernel de Linux que permite enviar y completar operaciones de lectura sin bloquear el proceso. Frente al modelo previo basado en procesos 'io worker' internos, esta variante delega la gestión de la cola de E

Cómo saturar una NIC de 400 Gb/s leyendo NVMe con io_uring

Este artículo técnico describe un recorrido de optimización de rendimiento en un sistema de almacenamiento de alto rendimiento ejecutado sobre Linux. El montaje es deliberadamente simple: un único hilo emite lecturas aleatorias de 1 MiB en E/S directa sobre 8 unidades NVMe y envía los datos a un hos

epoll frente a io_uring en Linux: comparativa técnica

El artículo compara los dos sistemas de colas para E/S asíncrona que ofrece Linux: epoll, disponible desde 2002, e io_uring, incorporado en la versión 5.1 del kernel en 2019. El autor parte de su experiencia reescribiendo TinyGate, un proxy inverso que pasó de una arquitectura basada en workers a ot

Explorando la gestión automática de buffers con io_uring

UringMachine, una gema de Ruby para realizar operaciones de E/S mediante io_uring —la interfaz de Linux para E/S asíncrona de alto rendimiento—, está incorporando un sistema de gestión automática de buffers inspirado en el mecanismo de buffer rings del kernel. ¿Qué es io_uring y por qué importa? i

zeroserve: un servidor web HTTPS sin configuración que se programa con eBPF

zeroserve es un servidor web HTTPS sin configuración, compacto y rápido, desarrollado por losfair y publicado en GitHub. Recibe un único archivo tar con un sitio web y lo sirve tal cual, sin descomprimirlo en disco, a través de HTTP/2 y TLS 1.3, con recarga en caliente y un consumo de memoria mínimo

ClickHouse presenta Silk: nuevo planificador de fibras para Linux

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 concurr

Glass Cannon: Generador de carga HTTP ultra rápido

Se ha lanzado 'Glass Cannon', un nuevo generador de carga HTTP/1.1 y WebSocket de alto rendimiento, diseñado para pruebas de estrés y rendimiento de servidores web. Desarrollado para [Http Arena](https://www.http-arena.com/), Glass Cannon se distingue por su velocidad, aprovechando la tecnología 'io

TCP Zero-Copy: Acelera la transferencia de datos en Linux

TCP Zero-Copy es una característica del kernel de Linux que optimiza la transferencia de datos a través de sockets TCP al evitar copias innecesarias de memoria entre el espacio de usuario y el kernel. Tradicionalmente, al enviar o recibir datos, los datos se copian de la memoria del usuario al espac

Zig: I/O con Fibra y GCD en Prueba

El equipo de Zig ha anunciado la integración experimental de implementaciones de I/O basadas en fibra, utilizando io_uring y Grand Central Dispatch (GCD). Esta nueva funcionalidad, disponible en la rama principal, permite a los desarrolladores experimentar con el intercambio de implementaciones de I