IEEE LATIN AMERICA TRANSACTIONS, VOL. 5, NO. 6, OCTOBER 2007 479 Análisis del rendimiento de sistemas distribuidos de recuperación de información en la Web F. Cacheda, V. Formoso y V. Carneiro Resumen—La importancia y el tamaño de los motores de búsqueda en la Web se incrementan día a día. Los sistemas de recuperación de información basados en un único índice centralizado presentan varios problemas, que llevan al uso de sistemas de recuperación de información distribuidos para buscar y localizar de manera efectiva la información requerida. En este estudio analizamos dos mejoras sobre el cuello de botella de los brokers en un sistema de recuperación de información distribuido. Hemos demostrado que reduciendo los conjuntos de resultados parciales se mejora el tiempo de respuesta de un sistema distribuido en un 53%, con una probabilidad despreciable de modificar los valores de precisión y exhaustividad del sistema. Finalmente, presentamos un modelo de brokers distribuidos jerárquicamente que reduce los tiempos de respuesta de un sistema distribuido en un 55%. Palabras clave—Sistemas de información recuperación de información, simulación. E distribuidos, I. INTRODUCCIÓN N los últimos años, el incremento de información disponible en la Web ha sido espectacular. Por este motivo, cada vez son más importantes los sistemas de Recuperación de Información (RI) en la Web para gestionar, recuperar y filtrar la información de este entorno. Estos sistemas de búsqueda deben indexar grandes cantidades de información, permitir a sus usuarios localizar la información buscada de manera ágil y soportar múltiples consultas simultáneamente. Es evidente la necesidad de utilizar sistemas de RI distribuidos, ante la falta de escalabilidad y problemas de sobrecarga de los sistemas centralizados [1]. Un sistema de RI distribuido se basa en dos componentes: los brokers y los servidores de consulta (SCs). Los brokers interactúan con los usuarios, recibiendo las consultas, difundiéndolas a los SCs y devolviendo la lista final de resultados al usuario. Los SCs procesan las consultas recibidas y envían su lista de resultados parciales a los brokers, para ser combinados en la lista final de resultados. Existen dos estrategias fundamentales para la distribución de un índice en un cluster de SCs: ficheros invertidos globales y ficheros invertidos locales [2] [3]. La técnica de los ficheros invertidos locales es el estándar de facto en la mayoría de los buscadores comerciales y consiste en asociar a cada SC un conjunto disjunto de documentos, creándose un índice local en cada SC. Para procesar una consulta, las palabras clave se difunden a todos los SCs que, en paralelo, procesan la consulta y devuelven un conjunto disjunto de documentos relevantes para la consulta. En nuestro trabajo previo en [4] y [5] se simulaba un sistema distribuido de RI utilizando la estrategia de ficheros invertidos locales, identificando dos cuellos de botella: los brokers y la red de interconexión. Este artículo presenta un resumen de nuestro trabajo en el estudio del cuello de botella en los brokers, descrito de manera detallada en [6]. Este trabajo se basa en un modelo de simulación de un sistema distribuido de RI que representa un cluster de SCs interconectados mediante una red de área local conmutada y un conjunto de brokers. Se simula la colección de documentos SPIRIT (94.552.870 documentos y 1 TB de texto) [7], distribuida utilizando ficheros invertidos locales. En este estudio del cuello de botella en los brokers, se analizan dos soluciones diferentes. La primera solución consiste en reducir el número de resultados parciales enviados por los SCs, midiendo las mejoras obtenidas y su efecto en la precisión y exhaustividad del sistema de búsqueda. La segunda solución se basa en la utilización de un modelo de brokers distribuido jerárquicamente, tratando de identificar la configuración que obtenga un mejor rendimiento. Este artículo está estructurado de la siguiente manera. En primer lugar presentamos los trabajos relacionados en la Sección 2. La Sección 3 describe el modelo de simulación utilizado, para pasar a la Sección 4 en donde se analizan los experimentos realizados. Por último se presentan las principales conclusiones y trabajos futuros. II. ESTADO DEL ARTE Este trabajo está relacionado con el análisis del rendimiento de diferentes arquitecturas de sistemas distribuidos de RI. A continuación presentamos los principales artículos en este área, así como una descripción más detallada de nuestros trabajos previos. Tomasic y García-Molina en [3] estudian el rendimiento de 480 IEEE LATIN AMERICA TRANSACTIONS, VOL. 5, NO. 6, OCTOBER 2007 varias estrategias para el procesamiento de consultas en paralelo, utilizando varias organizaciones para los índices. Ribeiro-Neto y Barbosa en [2] utilizan un modelo analítico y un pequeño simulador para estudiar el rendimiento de las consultas en función de diversos parámetros (p.e. la velocidad de la red). En [8], los autores, utilizan los resultados obtenidos a partir de un sistema centralizado para extrapolar, mediante simulación, los resultados obtenidos en un sistema distribuido, demostrando la escalabilidad de su sistema. A partir del mismo simulador, Lu y McKinley en [9] analizan los efectos de la replicación parcial de la colección para mejorar el rendimiento. MacFarlane, McCann y Robertson en [10] y Badue, BaezaYates, Ribeiro-Neto y Ziviani en [11] analizan el rendimiento de los dos tipos de estrategias de distribución del índice (ficheros invertidos locales y globales) utilizando una implementación real. Su principal conclusión es que el rendimiento de un sistema distribuido depende de: el tiempo de acceso a disco, el tiempo de comunicación en la red y el nivel de concurrencia de las consultas. Nuestro trabajo previo inicial está descrito en [4] y [5], en donde analizamos el rendimiento de diversos sistemas de búsqueda distribuidos, replicados y basados en clustering, simulando grandes colecciones de documentos. En estos trabajos previos se identifican fundamentalmente dos cuellos de botella: los brokers y la red de interconexión. La carga en los brokers es debido al elevado número de respuestas parciales a combinar, cuando el número de SCs es muy alto. El cuello de botella en la red es debido al continuo intercambio de datos entre los SCs y los brokers, especialmente en un sistema replicado. En [6] se introduce un nuevo modelo de simulación que permite analizar el rendimiento de un sistema distribuido en base a una red conmutada. De esta manera, se comprueba como se elimina el cuello de botella en la red y se estudian varias alternativas para reducir la carga en los brokers, que se describirán a continuación. III. MODELO DE SIMULACIÓN El modelo de simulación de un sistema de RI distribuido utilizado en este artículo está basado en nuestro trabajo previo descrito en [4], [5] y [6], en donde se implementa un simulador orientado a eventos utilizando el entorno de simulación JavaSim [12]. El modelo de simulación definido representa un sistema basado en la organización de ficheros invertidos locales. Todas las consultas se almacenan en una cola global que es controlada por uno o más brokers centrales. Cada broker selecciona una consulta para ser procesada, y la envía a los SCs a través de la red. Cada SC procesa la consulta localmente, obtiene un conjunto de documentos relevantes para esa consulta, los ordena, extrae los más relevantes (p.e. los 1000 primeros) y se los envía al broker. El broker recibe todas las respuestas parciales de los SCs y las combina en una respuesta final ordenada para ser presentada al usuario. Para representar el procesamiento de las consultas en un sistema distribuido de RI nos basamos en un modelo analítico, en donde el tiempo para procesar una consulta qi (denominado ti) está divido en tres fases: el tiempo de procesamiento en los SCs (P1), el tiempo de recepción de los resultados parciales en el broker (P2) y la ordenación de los resultados finales en el broker (P3). Por lo tanto, el tiempo de procesamiento para una consulta qi viene dado por la siguiente fórmula: P3 P1 P2 6 474 8 6474 8 6474 8 (1) ti = max(ti , j ) + max(rai , j ) + ∑ tc(tri , j ) j En donde se definen los siguientes parámetros: - qi: vector de términos de búsqueda para la consulta iésima. - ti,j: tiempo total (en milisegundos) para completar el procesamiento de la consulta qi en el SC j. - rai,j: tiempo para recibir la respuesta parcial para la consulta qi del SC j. - tc(n): tiempo para ordenar n documentos, que se calcula según el siguiente modelo logarítmico: tc(n) = tc 0 + tc1 × n + tc 2 × ln(n) [6]. - tri,j: número de documentos ordenados de la consulta qi devueltos como respuesta parcial por el SC j, en donde tri,j ≤ trmax, y trmax es el número máximo de documentos devueltos como respuesta parcial (se considera trmax = 1000). El tiempo para procesar una consulta en un SC está divido en cinco fases: el tiempo de recepción de la consulta del broker (P1,1), el tiempo de inicialización (P1,2), el tiempo de posicionamiento en disco para todos los términos de la consulta (P1,3), el tiempo para leer de disco las listas invertidas asociadas a cada término (P1,4) y la ordenación de los resultados parciales (P1,5). Por lo tanto, el tiempo en el SC j para procesar la consulta qi (ti,j) viene dado por la siguiente fórmula: P ti , j P1,5 1,4 P1,1 P1,2 P1,3 6474 8 67 8 } } } = rqi , j + ti + ki × ts + ∑ d k , j × tr + tc(ri , j ) (2) k ∈qi En donde se definen los siguientes parámetros: - rqi,j: tiempo para recibir la consulta qi en el SC j. - ti: tiempo de inicialización. - ki: número de términos de búsqueda para qi. - ts: tiempo medio de posicionamiento para un disco. - dk,j: número de documentos de la lista invertida para el término k en el SC j. - tr: tiempo medio para leer de disco un documento de una lista invertida y realizar su procesamiento. - ri,j: número de resultados obtenidos para la consulta qi en el SC j. El sistema de RI Terrier descrito en [13] ha sido utilizado para estimar los parámetros del modelo analítico, obteniéndose los siguientes valores: ti = 62,335 ms, ts = 0,03 ms, tr = 1,15 μs, tc0 = -470, tc1 = 0,0, tc2 = 62 [6]. Los parámetros del modelo de documentos (dk,j y ri,j) son simulados a partir de la colección SPIRIT, que consiste en CACHEDA et al.: PERFORMANCE ANALYSIS OF DISTRIBUTED 94.552.870 documentos y 1 TB de texto [7]. Cada consulta es generada como una secuencia de K términos (t1,…,tk) independiente e idénticamente distribuidos, siguiendo el modelo de consultas sesgado. El modelo de consultas sesgado asigna la probabilidad de que un término ocurra en una consulta, proporcionalmente a su frecuencia en el vocabulario, y proporciona consultas más realistas que el modelo uniforme [6]. Los parámetros de la red (rqi,j y rai,j) que determinan los tiempos de transmisión entre las máquinas no pueden ser estimados utilizando el modelo analítico, ya que dependen directamente de la carga en la red de cada momento. Por lo tanto, se define un modelo de simulación de la red. El modelo de red empleado es el definido en [6] y equivalente a una red conmutada FastEthernet 100BASE-T a 100 Mbps. Las redes conmutadas se basan en un dispositivo denominado conmutador, que centraliza la conmutación entre las máquinas. De esta manera, el conmutador reduce los conflictos de transmisión ya que una máquina sólo debe competir con otras máquinas que se quieran comunicar con el mismo destino, lo que incrementa la velocidad efectiva de la red. Utilizando este nuevo modelo de red se define un modelo de simulación más realista y genérico, en donde las máquinas están interconectadas a través de uno o más conmutadores, en función del número de máquinas a interconectar (asumimos que cada conmutador tiene capacidad para 64 máquina). Además, se realiza una estimación exhaustiva de la sobrecarga en la red, considerando las diferentes cabeceras de los protocolos de comunicación, la fragmentación IP e incluso el retardo de propagación [6]. El diseño de este nuevo modelo de red permite representar mensajes multicast, simulando el envío de un mensaje a múltiples destinatarios. En un sistema de RI distribuido basado en ficheros invertidos locales, los mensajes multicast son especialmente útiles para reducir el número de mensajes necesarios para distribuir las consultas a los SCs. En [6] se puede encontrar una descripción detallada del modelo de simulación de red conmutada, junto con una comparación detallada de un sistema de RI distribuido real con el modelo simulación, confirmándose la correspondencia entre ambos. En todos los experimentos descritos en este artículo se ha utilizado este modelo de simulación de red conmutada con el objetivo de obtener conclusiones realistas a la hora de simular y comparar distintos sistemas distribuidos de RI. IV. EXPERIMENTOS En esta sección se analizan dos métodos para reducir la carga de procesamiento en los brokers, en base al modelo de simulación descrito. Los brokers se convierten en un cuello de botella en un sistema de RI distribuido debido al número de resultados parciales recibidos de todos los SCs que deben ser ordenados. Por un lado, incrementar el número de SCs reducirá el tiempo de respuesta en los SCs, pero los brokers recibirán más 481 conjuntos de resultados parciales a combinar en los resultados finales, al incrementar el número de SCs. Esto provoca que el tiempo de respuesta en los brokers se incremente y, si el número de SCs es lo suficientemente elevado, se produce un deterioro en el rendimiento del sistema reduciéndose la escalabilidad del sistema [5]. En estos experimentos, el rendimiento del sistema de RI se mide utilizando el tiempo de respuesta, asumiendo que las consultas llegan al sistema siguiendo una distribución exponencial, con una media de 500 milisegundos y simulando 50 consultas. Para cada configuración se realizan 5 simulaciones diferentes y se calculan los tiempos de respuesta medios para cada consulta. A. Reducción de los Resultados Parciales En esta sección se analiza la primera solución, para reducir el cuello de botella en los brokers, consistente en reducir el número de resultados parciales enviados desde los SCs a los brokers y, su efecto en la precisión y exhaustividad del sistema de RI. En primer lugar presentamos un estudio teórico del efecto en la precisión y exhaustividad de esta reducción y después describimos las mejoras en el rendimiento que se obtienen. Siguiendo el modelo de TREC [14], asumimos que las consultas recuperan los 1000 mejores resultados (denominado trmax en nuestro modelo de simulación). En el sistema de RI distribuido se asume un escenario del peor caso posible en el que cada SC recupera trmax resultados, que son finalmente combinados en el broker para obtener el conjunto final de resultados. En este sentido, se garantiza que, con independencia de la distribución de los resultados entre los SCs, los 1000 mejores resultados siempre serán recuperados, manteniendo los valores de precisión y exhaustividad iguales a los de un sistema centralizado. Una reducción en el número de resultados parciales recuperados en los SCs implica una cierta probabilidad de que alguno de los 1000 mejores resultados se pierda. Por lo tanto, el objetivo en esta primera fase es calcular esta probabilidad para un sistema de RI genérico, formado por h máquinas o SCs, cada uno de los cuales recupera p resultados parciales para obtener los t mejores resultados. En base a la estrategia de ficheros invertidos locales, podemos asumir que los t mejores resultados estarán aleatoriamente distribuidos entre los h SCs. Consideremos un ejemplo sencillo en donde tenemos 2 SCs y queremos recuperar los 4 mejores resultados. La distribución binomial nos permite calcular la probabilidad de que haya exactamente x resultados finales en el primer SC (y recíprocamente, t-x en el segundo SC), utilizando la siguiente fórmula: t! (3) P(h1 = x) = × p x ⋅ (1 − p) t − x x!⋅(t − x)! En donde, p=0.5, ya que los resultados finales están distribuidos aleatoria e independientemente entre dos SCs. Utilizando la distribución multinomial es posible extender este resultado para cualquier número de SCs, utilizando la 482 IEEE LATIN AMERICA TRANSACTIONS, VOL. 5, NO. 6, OCTOBER 2007 Tabla 1. Máximos resultados parciales por SC para calcular la probabilidad de perder algún resultado final (especificada en la columna Prob), utilizando desde 2 a 1024 SCs y 1000 resultados finales SCs Prob 2 4 8 16 32 64 128 512 768 1024 0,1 525 276 148 81 46 27 17 11 7 6 10-2 540 288 157 88 51 31 19 13 9 7 10-3 551 298 164 93 54 33 21 14 10 8 10-4 560 306 170 97 58 36 23 16 11 9 10-5 569 313 176 102 61 38 25 17 13 10 10-6 576 320 181 105 64 41 27 19 14 11 -7 583 325 185 109 68 43 29 20 15 12 10-8 589 333 188 114 69 46 31 21 16 13 10 siguiente fórmula: P( h1 = x1 , h2 = x2 , K , hh = xh ) = t! × p1x1 ⋅ p2xx ⋅ K ⋅ phxh x1!⋅x2 !⋅K ⋅ xh ! En donde, p1 = p2 = … = ph = h-1 y (4) h ∑x i =t. i =1 Por lo tanto, un sistema de RI distribuido con h SCs, cada uno recuperando p resultados parciales, obtendrá los t mejores resultados con una probabilidad de: (5) P ( xi ≤ p ) = ∑ P (h1 = x1 , h2 = x2 ,K , hh = xh ) h En donde, x1, x2, …, xh ≤ p y ∑x i =t. i =1 El principal problema es que esta fórmula hace que sea extremadamente difícil calcular P(xi≤p) para valores elevados de h y t, ya que es necesario calcular todos los posibles sumandos x1, x2, …, xh. En concreto, en los sistemas estudiados, se simulan 1024 SCs y se recuperan los 1000 mejores resultados, haciendo este cálculo impracticable. Este es el motivo por el que se utilizan técnicas de simulación para obtener aproximaciones a estas probabilidades. Con este propósito, hemos simulado un sistema de RI distribuido con h SCs y 1000 resultados finales distribuidos aleatoriamente entre los SCs, con h tomando los siguientes valores: 2, 4, 8, 16, 32, 64, 128, 256, 512, 768 y 1024. En cada sistema distribuido simulado, se ha determinado el SC con el valor más alto de xi y se ha creado una tabla de frecuencias. Este proceso ha sido repetido 100 millones de veces para cada sistema distribuido. En la Tabla 1 se presenta un resumen de las probabilidades y el número máximo de resultados parciales para todos los sistemas simulados. Debido al alto coste computacional de la fórmula teórica, sólo se han comparado las probabilidades estimadas con las probabilidades teóricas para el sistema de RI distribuido con 2 SCs. Los tests de Mann-Whitney y Kolmogorov-Smirnov 1 para comparar dos muestras confirman la precisión de los 1 Los tests no paramétricos de Mann-Whitney y Kolmogov-Smirnov se usan para detectar diferencias en poblaciones cuando no se satisfacen ciertas asunciones (p.e. distribución normal de las poblaciones). En ambos casos, un p-valor elevado indica que no existe una diferencia estadística significativa entre las dos poblaciones. valores estimados con un p-valor de 0,965 y 1.0, respectivamente. En base a los valores de la Tabla 1, proporcionamos el número máximo de resultados parciales a recuperar en cada sistema distribuido. La idea es obtener la probabilidad de que se pierda algún resultado final, representado en la columna Prob. Por ejemplo, en un sistema distribuido con 2 SCs, si recuperamos 525 resultados parciales por SC, esta probabilidad será de un 10%, mientras que si recuperamos 589 resultados parciales, perderemos un resultado final de cada 100 millones de consultas. De la misma manera, en un sistema distribuido con 1024 SCs, la probabilidad de que se pierda un resultado final recuperando 13 resultados parciales por SC es también de 10-8. Desde un punto de vista global, estos resultados demuestran que es posible utilizar valores considerablemente menores para el número de resultados parciales recuperados en los SCs, con una probabilidad extremadamente baja de afectar negativamente a la precisión y exhaustividad del sistema. Teniendo esto en cuenta, la segunda parte de este estudio se centra en analizar las mejoras en el rendimiento que se pueden obtener al reducir el número de resultados parciales. Para ello simulamos un conjunto de sistemas distribuidos con 2, 4, 8, 16, 32, 64, 128, 256, 512, 768 y 1024 SCs (y el número óptimo de brokers según [6]) de donde queremos obtener los 1000 mejores resultados para cada consulta. Analizamos el rendimiento cuando cada SC recupera p resultados parciales, con p tomando los siguientes valores: 1000 (caso base), 750, 600, 500, 350, 200, 125, 75, 50, 35, 25, 20 y 15. La Tabla 2 presenta los tiempos de respuesta obtenidos, considerando sólo aquellas configuraciones en donde la probabilidad de perder algún documento relevante fuese menor de 10-8. También se ha analizado la capacidad de procesamiento (o throughput) de estos sistemas sin detectarse ninguna mejora significativa. Esto es debido a que el throughput se mide haciendo operar al sistema en modo por lotes, por lo que el cuello de botella del sistema son los SCs que están continuamente procesando consultas. Los beneficios de reducir los resultados parciales están enfocados a los brokers, por lo que tiene un impacto menor en el rendimiento global del sistema. Sin embargo, el tiempo de respuesta se mide en un entorno más realista (ver Tabla 2), en donde las consultas llegan al sistema según una distribución exponencial, con una media de 500 milisegundos. En estos resultados, era de esperar que el tiempo de respuesta se redujese al decrementar el número de resultados parciales, pero esto no se cumple en los sistemas de RI más pequeños (desde 2 a 32 SCs). De hecho, el tiempo de respuesta se incrementa ligeramente en algunos casos al reducir el número de resultados parciales (p.e. en un sistema con 2 SCs recuperando 750 y 600 resultados parciales y en un sistema con 4 SCs recuperando 500 o 350 resultados parciales, se incrementa el tiempo de respuesta). Esto es debido a que en un sistema con pocos SCs, éstos son el cuello de botella y el CACHEDA et al.: PERFORMANCE ANALYSIS OF DISTRIBUTED 483 Tabla 2. Tiempo de respuesta (milisegundos) para la reducción de resultados parciales, en sistemas de RI distribuidos utilizando de 2 a 1024 SCs QS p 1000 750 600 500 350 200 125 75 50 35 25 20 15 2 14688,5 14960,0 15010,5 4 8960,4 8868,7 8791,0 8913,5 9078,7 8 5408,1 5384,6 5415,0 5360,2 5424,7 5388,5 16 3514,2 3536,8 3521,4 3510,1 3564,2 3516,5 3517,6 32 2553,9 2538,8 2523,2 2527,1 2520,6 2523,1 2508,0 2513,8 tiempo de procesamiento en los brokers es sólo una pequeña fracción del tiempo total respuesta. La mejora en el tiempo de procesamiento en los brokers es despreciable respecto al tiempo de procesamiento en los SCs. En el resto de casos, los sistemas se han comportado como era previsible, reduciendo el tiempo de respuesta según se reduce el número de resultados parciales. En el caso del sistema con 1024 SCs, el tiempo de respuesta se reduce a más de la mitad recuperando 75 o menos resultados parciales. Además, sólo un 9% del tiempo total de respuesta se corresponde con el procesamiento en los brokers, lo que refleja una importante reducción de su carga. Otro aspecto interesante es que, en un sistema con 1024 SCs, el tiempo de respuesta para el caso base (p=1000) es equivalente a un sistema con 16 SCs, debido al cuello de botella en los brokers. Sin embargo, el mejor tiempo de respuesta de todos los sistemas y configuraciones se obtiene recuperando 15 resultados parciales en un sistema con 1024 SCs. Esto demuestra que el cuello de botella de los brokers se ha reducido significativamente. La mejora en el rendimiento se debe a dos razones. La primera de ellas es una reducción en el número de resultados parciales recibidos por los brokers (1.024.000 con p=1000, comparado con 15.360 con p=15, en un sistema con 1024 SCs), lo que reduce el tiempo de ordenación en los brokers. La segunda razón, es que el tamaño de los mensajes enviados a través de la red desde los SCs a los brokers se reduce de 8000 bytes por mensaje, con p=1000, a 120 bytes con p=15, en un sistema con 1024 SCs (utilizando una media de 8 bytes por documento). A modo de resumen, un sistema distribuido compuesto por 1024 SCs y obteniendo 1000 resultados finales, puede reducir su tiempo de respuesta en aproximadamente un 53% recuperando sólo 15 resultados parciales por SC. En este caso, la probabilidad de que la precisión y exhaustividad del sistema se vean afectadas es menor de 10-8. En los sistemas de RI distribuidos más pequeños no se obtienen mejoras en el rendimiento al reducir el número de resultados parciales. 64 2102,7 2072,4 2056,1 2046,6 2031,5 2017,8 2012,5 2007,7 2001,9 128 1952,1 1895,1 1863,0 1840,1 1807,7 1777,8 1764,0 1753,2 1748,3 1745,8 512 2100,7 1960,2 1881,0 1830,3 1757,9 1689,5 1658,0 1637,6 1626,9 1621,0 1617,9 768 2695,3 2393,5 2210,6 2087,2 1904,4 1729,7 1650,9 1604,0 1582,2 1569,5 1561,3 1557,7 1024 3288,7 2846,6 2575,4 2391,6 2116,4 1844,2 1707,2 1622,9 1585,1 1564,1 1550,7 1544,3 1538,1 B. Brokers Distribuidos En esta sección se estudia un modelo de distribución jerárquico de los brokers. En el sistema de RI distribuido, el índice ha sido distribuido sobre múltiples máquinas que realizan su procesamiento en paralelo. Sin embargo, una parte del sistema continúa realizando su procesamiento de manera centralizada: los brokers. Por este motivo, en esta sección se presenta un modelo sencillo de distribución para los brokers y se analiza el rendimiento que se obtiene. En este nuevo sistema distribuido, utilizamos el término broker final para referirnos a los brokers descritos en la introducción. Un broker final únicamente realiza tareas de interfaz con el usuario, sin procesar los resultados. El broker final recibe las consultas de los usuarios, las difunde a los SCs y, después de un período de tiempo, recibe la lista final de resultados para mostrar al usuario. El procesamiento adicional que realizaban los brokers (recepción, organización y adquisición de los resultados finales) se distribuye entre servidores específicos denominados brokers jerárquicos. En la Fig. 1 se define un modelo de distribución jerárquico para un sistema de 16 SCs. Definimos el parámetro de tamaño de grupo, que indica el número de SCs gestionados de manera independiente por cada broker jerárquico. En la Fig. 1 se ha establecido un tamaño de grupo de 4. Dentro de cada grupo, un broker jerárquico se selecciona aleatoriamente, de manera independiente para cada grupo y para cada consulta. Esto garantiza la distribución de la carga entre todos los SCs para múltiples consultas. Esta selección se realiza sin ningún intercambio de información entre los SCs, simplemente generando un identificador aleatorio a partir de la consulta recibida y el identificador del grupo. Este proceso se repite en cada nivel para obtener el broker jerárquico correspondiente. De esta manera, el número de niveles viene determinado por logTamaño de grupo·Número de SCs. En el ejemplo de la Fig. 1, el número de niveles es log4 16 = 2. Los brokers jerárquicos operan inicialmente como SCs, 484 IEEE LATIN AMERICA TRANSACTIONS, VOL. 5, NO. 6, OCTOBER 2007 Br 1 Brokers jerárquicos SC 10 nivel 2 Resultados parciales SC 1 Resultados finales Brokers jerárquicos nivel 1 SC 4 SC Grupo 0 10 SC 13 SC 10 SC 13 Resultados parciales SC 0 SC 1 SC 2 SC 3 SC 4 SC 5 Grupo 0 SC 6 SC 7 Grupo 1 SC 8 SC 9 SC 11 Grupo 2 SC 12 SC 14 SC 15 Grupo 3 Fig. 1. Modelo de distribución jerárquica de brokers (Br: Broker final) procesando la consulta de la manera habitual y después esperan por los resultados parciales del resto de miembros del grupo. Estos resultados son ordenados y los t mejores se envían al siguiente nivel. Una vez que se alcanza la raíz, los t mejores resultados se envían directamente al broker final para su presentación al usuario. En base a este modelo jerárquico, hemos diseñado una serie de experimentos simulando un sistema de RI distribuido compuesto por 1024 SCs, cada uno recuperando 1000 resultados parciales. Los brokers han sido distribuidos sobre el conjunto de SCs, estudiando el rendimiento para varios tamaños de grupo, tal y como se muestra en la Tabla 3. El número de brokers finales es igual al utilizado en la subsección anterior, ya que no afecta al rendimiento del sistema. Los resultados obtenidos se comparan con un sistema distribuido con el número óptimo de brokers centralizados (denominado caso base). La columna Niveles representa el número de niveles utilizado en el modelo jerárquico y, si está presente, el número entre paréntesis indica el número teórico Tabla 3. Tiempo de respuesta (milisegundos) para el modelo de distribución jerárquico de los brokers, utilizando un sistema de RI distribuido con 1024 SCs Tamaño grupo Niveles Tiempo de respuesta Caso base - 3859,76 0,00 % 2 10 2158,44 44,08 % % mejora 4 5 1804,71 53,24 % 8 4 (3,33) 1744,50 54,80 % 12 3 (2,79) 1678,93 56,50 % 16 3 (2,50) 1688,82 56,25 % 24 3 (2,18) 1706,88 55,78 % 32 2 1668,01 56,78 % 40 2 (1,88) 1670,38 56,72 % 48 2 (1,79) 1676,05 56,58 % de niveles (logTamaño de grupo Número de SCs). En base a esto, se observa como los tiempos de respuesta se reducen en más de un 50% en todos los casos, excepto cuando se utilizan grupos de 2 SCs. Esto es debido a que se requieren 10 niveles en la jerarquía, lo que introduce demasiadas etapas y ralentiza la operación del sistema. Un análisis más detallado indica que el mejor tiempo de respuesta se obtiene con un tamaño de grupo de 32 SCs. Esto se corresponde con una jerarquía de dos niveles balanceada: un primer nivel con 32 brokers jerárquicos y la raíz. En este caso, más del 85% del tiempo de respuesta total se corresponde con el procesamiento en los SCs (sin tener cuenta el procesamiento asociado a los brokers jerárquicos). Al igual que en el caso anterior, esto indica una importante reducción de la carga de los brokers. Analizando los resultados para los tamaños de grupo de 4, 8 y 12 SCs (con, respectivamente, 5, 4 y 3 niveles), parece claro que una reducción en el número de niveles implica una mejora en el rendimiento. Del mismo modo, en el caso de una jerarquía de dos niveles, la utilización de tamaños de grupos que no resultan en árboles balanceados produce ligeros incrementos en el tiempo de respuesta (p.e. tamaños de grupo 40 y 48). A modo de resumen, los experimentos descritos indican que es posible reducir los tiempos de respuesta utilizando un modelo de distribución jerárquico para los brokers. Concretamente, con la estructura jerárquica óptima (un árbol balanceado de dos niveles), el tiempo de respuesta se reduce en más del 56%. V. CONCLUSIONES En este trabajo hemos analizado dos mejoras sobre el cuello de botella de los brokers en un sistema de RI distribuido: la reducción de los resultados parciales y la distribución de los brokers. La reducción de los resultados parciales mejora CACHEDA et al.: PERFORMANCE ANALYSIS OF DISTRIBUTED significativamente el rendimiento de los sistemas distribuidos con un número elevado de SCs, aunque no se obtienen mejoras para los sistemas más reducidos. Por ejemplo, en un sistema distribuido con 1024 SCs, el tiempo de respuesta se reduce hasta un 53% cuando se reduce el número de resultados parciales de 1000 a 15. Esta reducción del número de resultados parciales implica una cierta probabilidad de reducir los valores de precisión y exhaustividad, demostrándose que esta probabilidad toma valores prácticamente despreciables (menos de 10-8). Para la distribución de los brokers, se presenta un modelo jerárquico, utilizando los SCs. En este caso, con la estructura jerárquica óptica (en nuestros experimentos, un árbol balanceado con dos niveles), los tiempos de respuesta se reducen en un 56%. Otro beneficio de estos dos mecanismos es que operan de manera independiente. Por lo tanto, en nuestros trabajos futuros queremos combinar estas dos soluciones en un esfuerzo para incrementar las mejoras en el rendimiento de los sistemas de RI distribuidos. VI. AGRADECIMIENTOS Los autores quieren agradecer a Iadh Ounis, de la Universidad de Glasgow, y a Vassilis Plachouras, de Yahoo! Research, por su colaboración en el desarrollo de este trabajo. VII. REFERENCIAS [1] D. Hawking and P. Thistlewaite. “Methods for Information Server Selection,” ACM Transactions on Information Systems, vol. 17 (1), pp. 40-76, 1999. [2] B. Ribeiro-Neto and R. Barbosa, R. “Query performance for tightly coupled distributed digital libraries,” in Proc. of the 3rd ACM Conf. on Digital Libraries, pp: 182-190, 1998. [3] A. Tomasic and H. García-Molina. “Performance of inverted indices in shared-nothing distributed text document information retrieval systems,” in Proc. of the 2nd International Conf. on Parallel and Distributed Information Systems, pp: 8-17, 1993. [4] F. Cacheda, V. Plachouras and I. Ounis. “Performance Analysis of Distributed Architectures to Index One Terabyte of Text,” in Proc. of 26th European Conf. on Information Retrieval Research (ECIR’04), Lecture Notes on Computer Science (2997), pp. 394-408, 2004. [5] F. Cacheda, V. Plachouras and I. Ounis. “A Case Study of Distributed Information Retrieval Architectures to Index One Terabyte of Text,” Information Processing and Management Journal, vol. 41 (5), pp: 11411161, 2005. [6] F. Cacheda, V. Carneiro, V. Plachouras and I. Ounis. “Performance Analysis of Distributed Information Retrieval Architectures Using an Improved Network Simulation Model,” Information Processing and Management Journal, vol. 43 (1), pp: 204-224, 2007. [7] C.B. Jones, R. Purves, A. Ruas, M. Sanderson, M. Sester, M. van Kreveld and R. Weibel. “Spatial information retrieval and geographical ontologies an over-view of the SPIRIT project,” in Proc. of the 25th ACM-SIGIR Conf. on Research and Development in Information Retrieval, pp. 387-388, 2002. [8] B. Cahoon and K.S. McKinley. “Performance evaluation of a distributed architecture for information retrieval,” in Proc. of 19th ACM-SIGIR International Conf. on Research and Development in Information Retrieval, pp: 110-118, 1996. [9] Z. Lu and K. McKinley. ”Partial collection replication versus caching for information retrieval systems,” in Proc. of the 25th ACM-SIGIR Conf. on Research and Development in Information Retrieval, pp. 248-255, 2000. [10] A. MacFarlane, J.A. McCann and S.E. Robertson. “Parallel Search using Partitioned Inverted Files,” in Proc. of the 7th International Symposium 485 [11] [12] [13] [14] on String Processing and Information Retrieval (SPIRE’00), pp. 209– 220, 2000. C.S. Badue, R. Barbosa, P. Golgher, B. Ribeiro-Neto and N. Ziviani. “Basic Issues on the Processing of Web Queries,” in Proc. of the 28th International ACM SIGIR Conf. on Research and Development in Information Retrieval (SIGIR’05), pp. 577–578, 2005. M.C. Little. (2003). “JavaSim User's Guide. Public Release 0.3, Version 1.0” [Online] Disponible en: http://javasim.ncl.ac.uk/ I. Ounis, G. Amati, V. Plachouras, B. He, C. Macdonald and C. Lioma. “Terrier: A High Performance and Scalable Information Retrieval Platform,” in Proc. of ACM SIGIR'06 Workshop on Open Source Information Retrieval, pp. 18-25, 2006. C. Clarke, N. Craswell and I. Soboroff. “Overview of the TREC 2004 Terabyte Track,” in Proc. of the Thirteenth Text REtrieval Conf., pp. 1-9, 2004. BIOGRAFÍAS Fidel Cacheda Seijo nació el 26 de enero de 1973 en Poissy (Francia). Se licenció en Informática por la Universidad de A Coruña (España) en 1996, con premio extraordinario. En 2002 obtiene el título de Doctor en Informática por la misma universidad. Desde 1998 forma parte del Departamento de Tecnologías de la Información y las Comunicaciones de la Universidad de A Coruña, en donde en la actualidad es Profesor Titular del área de Ingeniería Telemática impartiendo docencia en recuperación de información y redes de ordenadores a nivel avanzado. Su tesis doctoral se encuadró en el ámbito de la recuperación de información en la web y sus intereses investigadores actuales están centrados en la recuperación de información distribuida, estudiando aspectos de escalabilidad y rendimiento de los motores de búsqueda en la web sobre diferentes arquitecturas distribuidas de recuperación de información. Vreixo Formoso nació en Muros, A Coruña, España el 28 de febrero de 1982. En el año 2006 se licenció en Ingeniería Informática por la Universidad de A Coruña (España). Desde ese mismo año trabaja como investigador junior en el grupo de Ingeniería Telemática del departamento de Tecnologías de la Información y las Comunicaciones de la misma universidad. Sus principales áreas de interés se centran en la recuperación de información y el filtrado colaborativo. Victor Carneiro nació en Betanzos, A Coruña, España, el 18 de enero de 1970. Se doctoró en Informática y graduó en Ingeniería informática por la Universidad de A Coruña (España), en 1998 y 1993 respectivamente. Es profesor titular de universidad del área de ingeniería telemática desde 1998 y ha participado en gran cantidad de proyectos de investigación y experiencias profesionales relativas a la monitorización y gestión de redes y servicios así como la búsqueda, extracción y recuperación de información en la red. Ha dirigido varias tesis doctorales en las citadas áreas de interés. Actualmente participa como investigador principal en un proyecto del plan nacional de I+D+I relativo a la recuperación de información en la red.