Gestión eficiente de transacciones en máquinas de búsqueda para la web
- BONACIC CASTRO, CAROLINA
- Mauricio Marin Caihuan Director/a
- Carlos García Sánchez Director/a
- Manuel Prieto Matías Director/a
Universidad de defensa: Universidad Complutense de Madrid
Fecha de defensa: 28 de marzo de 2011
- Francisco Tirado Fernández Presidente/a
- Luis Piñuel Moreno Secretario/a
- Nieves R. Brisaboa Vocal
- Emilio Luque Fadón Vocal
- Enrique Arias Vocal
Tipo: Tesis
Resumen
Las máquinas de búsqueda para la Web son sistemas diseñados para alcanzar un rendimiento eficiente frente a situaciones de tráfico de consultas muy intenso y dinámico. Este objetivo se consigue a través de composiciones de estrategias de indexación d istribuida y caching, y procesamiento paralelo de consultas, las cuales son desplegadas en grandes clusters de nodos procesadores. Los clusters forman sistemas de memoria distribuida entre nodos, y cada nodo es un sistema de memoria compartida que pe rmite la ejecución concurrente de muchos threads. El foco de atención en investigación ha estado centrado sólo en los sistemas de memoria distribuida. El problema de cómo administrar eficientemente los threads en cada nodo no ha sido mencionado en la literatura del área. Para máquinas de búsqueda convencionales, donde la solución a consultas de usuarios genera operaciones de sólo lectura, este problema no es relevante puesto que cualquier estrategia estándar de gestión de threads puede alcanza r un rendimiento razonablemente eficiente. Sin embargo, el problema de la sincronización eficiente de threads lectores y escritores que acceden concurrentemente a la memoria compartida del nodo, se ha vuelto relevante debido a que las máquinas de b úsqueda han comenzado a permitir que sus contenidos sean actualizados de manera on-line. Este trabajo de tesis se ha dedicado al estudio de este problema en el contexto de nodos con procesadores multi-core. Se proponen estrategias de procesamiento de transacciones de lectura y escritura para nodos de máquinas de búsqueda. Las estrategias desarrolladas realizan paralelismo sincrónico a nivel de threads como una alternativa más eficiente al enfoque convencional basado en concurrencia asincrónica y sincronización vía locks. Las ideas propuestas son validadas tanto con experimentación en base a implementaciones reales como con modelos de simulación discreta.