A Comparative Survey of API Rate-Limiting Algorithms: Token Bucket, Leaky Bucket, and Sliding Window
Este artículo analiza y compara experimentalmente cinco algoritmos de limitación de tasa de API ampliamente utilizados —token bucket, leaky bucket, fixed window, sliding window log y sliding window counter— para evaluar sus compensaciones en tolerancia a ráfagas y precisión, proporcionando finalmente orientación para seleccionar el algoritmo más apropiado basándose en características de tráfico específicas y restricciones del sistema.
Artículo original bajo licencia CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Los servicios digitales modernos dependen de un delicado equilibrio entre la disponibilidad y la protección. Cuando millones de personas intentan acceder a un sitio web o a una aplicación al mismo tiempo, los servidores que operan tras bambalinas pueden verse abrumados, de forma muy similar a un puente de un solo carril obstruido por un aumento repentino del tráfico. Para evitar este colapso, los ingenieros utilizan un mecanismo llamado limitación de tasa (rate limiting), que actúa como un guardián. Este guardián cuenta cuántas solicitudes envía un usuario o dispositivo específico dentro de un periodo determinado y bloquea cualquier otra que exceda un umbral seguro. El objetivo no es castigar a los usuarios, sino asegurar que el sistema permanezca estable para todos, evitando que unos pocos usuarios intensivos consuman todos los recursos disponibles. Sin embargo, no todo el tráfico llega como un flujo constante; a veces llega en ráfagas repentinas y agudas, como cuando surge una noticia popular o cuando un sistema reintenta una conexión fallida. El desafío para los ingenieros es decidir cómo manejar estas ráfagas: ¿debería el sistema permitir que pase un pico temporal o debería aplicar estrictamente un límite fijo independientemente de la situación?
Un estudio reciente de Umair Saleem investiga las diferentes reglas matemáticas utilizadas para construir estos guardianes digitales. La investigación se centra en cinco métodos específicos que se utilizan comúnmente en la industria: el cubo de tokens (token bucket), el cubo con fugas (leaky bucket), el contador de ventana fija (fixed window counter), el registro de ventana deslizante (sliding window log) y el contador de ventana deslizante (sliding window counter). Cada uno de estos métodos tiene una forma diferente de rastrear el tiempo y contar las solicitudes, lo que genera comportamientos distintos cuando ocurre una oleada de tráfico. Para comprender qué método funciona mejor, el autor no se basó únicamente en la teoría, sino que construyó una simulación informática para probarlos a todos bajo condiciones idénticas. La simulación creó un flujo realista de más de mil solicitudes durante un periodo de cien segundos. Este flujo incluía un flujo de fondo constante de ocho solicitudes por segundo, interrumpido por dos ráfagas distintas de actividad: un periodo de cinco segundos donde el tráfico saltó a cuarenta solicitudes por segundo, seguido de un pico más agudo de dos segundos que alcanzó las sesenta solicitudes por segundo. Al pasar este mismo patrón de tráfico exacto por cada uno de los cinco algoritmos, el estudio pudo medir exactamente cuántas solicitudes aceptó cada método, cuántas rechazó y cómo se comportó el sistema durante los picos.
Los resultados revelaron una clara división en cómo estos algoritmos manejan la presión de una oleada de tráfico. El cubo de tokens y el cubo con fugas se comportaron de manera casi idéntica cuando se utilizaron simplemente para decidir si aceptar o rechazar una solicitud. Ambos métodos permitieron que el sistema absorbiera las ráfagas de manera más efectiva que los demás, aceptando un total de 844 solicitudes de las 1,057 enviadas, lo que se traduce en una tasa de aceptación de aproximadamente el 80 por ciento. Durante la primera ráfaga importante, estos dos métodos permitieron el paso de 69 solicitudes, y durante la segunda ráfaga, más aguda, permitieron 38 solicitudes. Esto sucedió porque estos algoritmos están diseñados con una capacidad integrada para almacenar "permisos de sobra" para uso futuro, lo que les permite suavizar los picos sin alejar inmediatamente a los usuarios. En contraste, el registro de ventana deslizante fue el más rígido de todos los métodos. Nunca permitió que pasaran más de diez solicitudes en un solo segundo, adhiriéndose estrictamente al límite configurado. Si bien esto proporcionó la protección más precisa contra la sobrecarga, tuvo un alto costo: rechazó la mayor cantidad de tráfico en total, aceptando solo el 67.9 por ciento de las solicitudes. Fue el único método que garantizó que el sistema nunca viera un pico por encima del límite, pero lo hizo rechazando a usuarios legítimos con más frecuencia que los otros métodos.
Los tres métodos restantes se situaron en un punto intermedio, mostrando fallos predecibles basados en cómo medían el tiempo. El contador de ventana fija, que reinicia su conteo al inicio de cada nuevo segundo, sufrió un error de temporización en los límites. Debido a que podía reiniciar su contador justo cuando llegaba una ráfaga de tráfico, permitió un pico temporal de hasta quince solicitudes en un solo segundo, lo cual era superior al límite previsto. El contador de ventana deslizante intentó corregir esto observando también el segundo anterior, pero solo corrigió el problema parcialmente, alcanzando un máximo de trece solicitudes. El estudio encontró que la elección del algoritmo depende enteramente de lo que el sistema necesite proteger. Si el objetivo es mantener contentos a los usuarios y permitir ráfagas naturales de actividad, como cuando una página se recarga con múltiples llamadas de datos, el cubo de tokens es la opción superior porque equilibra una alta aceptación con un rendimiento constante. Si el objetivo es proteger un sistema descendente frágil que no puede tolerar ningún pico en absoluto, el registro de ventana deslizante es la mejor opción, a pesar de su menor tasa de aceptación. La investigación concluye que no existe una única herramienta perfecta para cada trabajo; en cambio, los ingenieros deben elegir el método que se alinee con su tolerancia específica a los picos de tráfico y sus recursos de memoria disponibles.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.