Motores de Consulta de Bases de Datos: Push vs. Pull
Este artículo profundiza en las diferencias entre los motores de consulta de bases de datos basados en push y pull. Los sistemas basados en pull, similares al modelo iterador, son impulsados por el consumidor, donde los datos se recuperan a demanda. Los sistemas basados en push, por el contrario, son impulsados por el productor, empujando activamente los datos a los operadores posteriores. Los sistemas basados en push sobresalen en el manejo de planes de consulta en forma de DAG (por ejemplo, la cláusula WITH de SQL) debido a su capacidad de empujar datos eficientemente a múltiples operadores posteriores, evitando cálculos redundantes y almacenamiento en búfer innecesario. Sin embargo, los sistemas basados en pull ofrecen ventajas al manejar ciertos algoritmos (como las uniones de mezcla y las cláusulas LIMIT). El artículo también examina la eficiencia de la caché, la simplicidad del código y la idoneidad de cada modelo en diferentes escenarios, concluyendo que ninguno es universalmente superior, y la elección depende de los requisitos específicos.
Leer más