Análisis del rendimiento de sistemas distribuidos de recuperación

Anuncio
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.
Descargar