Mecanismos de Concurrencia y Recuperación en el Árbol Q

Anuncio
IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 1, MARCH 2005
9
Mecanismos de Concurrencia y Recuperación
en el Árbol Q. Enfoque para la Orientación
Transaccional de un Índice Multidimensional en
una Aplicación Web
José Fernando López, Manuel Barrena, Francisco Javier Rufo, Elena Jurado y Simeón Barroso
Departamento de Informática de la Universidad de Extremadura y Diana Teknologia
Resumen-- La expansión generalizada en el uso de Internet, el
desarrollo de la tecnología Java y la consideración de los
navegadores Web como interfaces naturales para muchas de las
aplicaciones y sistemas que se desarrollan hoy en día, convierten
en insoslayable la necesidad de dotar de un encapsulamiento
transaccional a las aplicaciones que pretendan servirse de esta
evolución. Es por ello que subsistemas de almacenamiento y
métodos de acceso deben proporcionar capacidades de
concurrencia y fiabilidad para su incorporación en este tipo de
aplicaciones. A pesar de ello, muy pocas propuestas de
estructuras de indexación abordan este importante aspecto.
En este artículo presentamos los mecanismos de concurrencia
y recuperación instaurados en el árbol Q, índice
multidimensional constituido en núcleo del motor de búsqueda
multitemática en Xerka.net, una aplicación concebida como
soporte para la gestión del conocimiento. Las ideas originales que
sustentan nuestra propuesta suponen una contribución novedosa
en el panorama actual de los métodos de acceso y, en particular,
de las estructuras de indexación multidimensional.
Palabras clave: Gestión del Conocimiento,
Multidimensional, Control de Concurrencia,
Transaccional.
Indexación
Paradigma
dispersión de la información textual se incide también en las
técnicas de captura de esa información con subsistemas que
rastrean la Web de forma autónoma para alimentar el espacio
temático construido.
Uno de los aspectos novedosos de Xerka.net como
herramienta de catalogación multitemática es la utilización del
árbol Q [1] como núcleo de su motor de búsqueda. Para la
recuperación de información la estructura provee varios tipos
de búsquedas: exactas de un punto, en ventana (puntos
circunscritos a un hipercubo dentro del espacio), en rango (los
puntos más cercanos a uno dado con un algoritmo de
búsqueda por similitud muy eficiente para el árbol Q [6]) y
parciales (puntos que cumplen un patrón dado).
Para realizar consultas, en Xerka.net se ha diseñado un
interfaz gráfico denominado rosa de los temas que, de forma
análoga a la rosa de los vientos, permite especificar en una
consulta características deseadas en varios temas, asociando
cada uno a una dirección de la rosa (ver figura 1). Una
consulta sobre la rosa de los temas se traduce en una búsqueda
en ventana, pudiendo obtener, con búsquedas en rango, los
documentos similares a los resultados que más satisfacen al
usuario.
I. INTRODUCCIÓN
L
os sistemas de gestión del conocimiento surgen de la
necesidad que existe de equilibrar la velocidad con que
aumenta el volumen de información y el crecimiento de las
prestaciones en los mecanismos de búsqueda y acceso a esa
información. En este ámbito presentamos Xerka.net, un
catalogador multitemático de documentos textuales orientado
a dar soporte en la búsqueda de información para la toma de
decisiones. Este sistema pretende superar el plano relacional
en la gestión de documentos mediante la incorporación de
tecnología multidimensional, desarrollando algoritmos para la
categorización multilingüe de espacios multitemáticos
mediante la identificación de términos y desambiguación del
sentido de las palabras. Para superar la abundancia y la
J. F. López, M. Barrena, F. J. Rufo y E. Jurado pertenecen al
Departamento de Informática de la Universidad de Extremadura, 10071
Cáceres, Spain. E-mails: {jflopez,barrena,javirufo,[email protected]}.
S. Barroso es responsable del Departamento de I+D de Diana Teknologia,
20180 Oiartzun, Spain. E-mail: {[email protected]}
Fig. 1. Rosa de los temas
Aunque son muchos los aspectos técnico-científicos de
interés sobre los que hemos trabajado intensamente en el
desarrollo de Xerka.net, en este artículo nos centramos en los
mecanismos de concurrencia y recuperación implantados
sobre el árbol Q, con objeto de dotar al sistema en su conjunto
de las propiedades transaccionales básicas (universalmente
10
IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 1, MARCH 2005
conocidas bajo el acrónimo ACID) [4]. En el proceso de
implantación de los mencionados mecanismos hemos
antepuesto el objetivo de minimización de tiempos de
respuesta a consultas emitidas por el usuario (el tiempo del
usuario como recurso más valioso) frente a cualesquiera otros
criterios de rendimiento del sistema, tales como tiempos de
actualización principalmente provenientes de automatismos de
rastreo transparentes al usuario.
La organización del artículo a partir de este punto es como
sigue. En la sección 2 delimitamos el contexto de nuestra
aplicación y presentamos los trabajos más estrechamente
relacionados con el nuestro. La sección 3 describe los
principios básicos de la concurrencia en índices multinivel. La
parte central donde se detalla el mecanismo de concurrencia
implantado sobre el árbol Q se enmarca en la sección 4 y, a
continuación, en la sección 5 se describen los mecanismos de
recuperación ante errores. Terminamos con la sección 6, en la
que exponemos las principales conclusiones de este trabajo.
II. CONTEXTO Y TRABAJOS RELACIONADOS
Es ampliamente admitido que información y conocimiento
son entidades distintas. La información dentro de un
documento no es portadora esencial de la interpretación
humana subjetiva que permite un tratamiento adecuado. Ese
contexto subjetivo es donde se encuentra realmente el
conocimiento que promueve una acción basándose en la
interpretación de la información, siendo la organización
subjetiva de esa información el principal rasgo diferenciador
de las diferentes aportaciones en el ámbito de los sistemas de
gestión del conocimiento [2].
En este panorama encontramos por una parte sistemas que
optan por definir una jerarquía de temas. Destacados ejemplos
son KnowCat y Sintagma, sistemas para la gestión y
catalogación de información documental. KowNet es una
iniciativa internacional, dentro del proyecto ESPIRIT, para el
desarrollo de la sociedad de la información en su conjunto.
Un enfoque alternativo estriba en organizar la información
mediante ontologías. En el ámbito de los negocios
WebCADET es un sistema basado en la Web para dar soporte
a la toma de decisiones, aplicando un motor de inferencia a
bases de datos estructuradas ontológicamente. También se han
utilizado las ontologías para soportar sistemas de búsqueda
automática de conocimiento y gestores de consultas sobre la
Web, como es el caso de Ontobroker.
Existe un tercer camino, de momento el menos explotado y
que representa el marco de este trabajo, la utilización de
múltiples dimensiones para organizar un espacio temático en
el que no prevalece ningún eje sobre otro. En la última década
se ha puesto de manifiesto las soluciones eficientes que
proporciona la indexación multidimensional al problema de la
búsqueda por contenido en bases de datos multimedia [10].
Esta es la alternativa que hemos elegido para el desarrollo de
Xerka.net, utilizando el árbol Q como subsistema organizador
y motor de búsqueda para documentos textuales.
En el ámbito más específico de los mecanismos de
indexación multidimensional, son básicamente dos las
categorías que agrupan la mayoría de las propuestas: índices
basados en distancia e índices basados en características
(denominados así por la existencia de un vector de valores que
caracteriza el objeto a representar). La primera de las
categorías engloba propuestas conducentes primordialmente a
optimizar consultas de vecindad en un espacio normado, con
un coste ciertamente inasequible ante variaciones de este
escenario (otro tipo de consultas, distancias alternativas, etc.),
que los hace descartables para un sistema como Xerka.net.
Contrariamente, un índice basado en características no tiene
como principal objetivo de diseño las consultas por similitud.
Estos últimos soportan, con diferente grado de eficiencia,
cualquier clase de consulta, en particular nuestro árbol Q ha
demostrado un comportamiento satisfactorio ante diferentes
escenarios [5], lo que fue determinante en su elección como
motor de búsqueda para Xerka.net. Sin embargo, la
implantación de un método de acceso dentro de un sistema de
información conlleva adicionalmente el establecimiento de
mecanismos de concurrencia y recuperación para permitir el
uso colaborativo del sistema y dotar de seguridad a las
operaciones sobre la información almacenada.
Quizás debido al carácter innovador de la tecnología
relacionada, muy pocos ejemplos existen en la literatura de
sistemas de información que integren mecanismos de
indexación multidimensional como parte integral del motor de
búsqueda. Esta carencia favorece sin duda la escasez de
propuestas que incorporen técnicas de concurrencia y
recuperación
en
los
mecanismos
de
indexación
multidimensional. Entre estos pocos trabajos se encuentra el
árbol hB3 [3], que por su proximidad a nuestra propuesta será
tratado con mayor detalle en el siguiente apartado.
III. MECANISMOS DE CONCURRENCIA EN ÍNDICES
Un rasgo común en las operaciones de actualización en un
índice multinivel es el tratamiento de las sobrecargas o
infracargas de sus nodos (páginas de disco en el método de
acceso). Cuando un nodo se encuentra en una de estas
situaciones particulares, se divide en dos o se fusiona con un
nodo hermano al tiempo que su nodo padre se actualiza para
reflejar la nueva situación. Este nodo padre es, a su vez,
susceptible de dividirse o fusionarse igual que el nodo hijo
que inició el proceso. Este fenómeno, denominado
actualización ascendente de un índice, precisa reglas de
sincronización cuando se pretende soportar ejecución
concurrente de operaciones sobre la estructura.
Una primera aproximación a este problema consiste en
sincronizar las operaciones haciendo que adquieran cierres
sobre los nodos por los que pasan en su recorrido. Cuando se
trata de una actualización, la operación puede comprobar si un
nodo está a salvo de una posible división (en cuyo caso se
habla de nodo seguro), liberando en este caso el cierre
adquirido sobre el nodo padre. Esta técnica de cierres
emparejados consigue que una actualización sea propietaria en
exclusividad del camino que contiene los nodos que van a ser
modificados. Algoritmos basados en esta técnica aportan
enfoques diferentes sobre la utilización en las operaciones de
LÓPEZ et al.: CONCURRENCY AND RECOVERY IN THE
distintos tipos de cierre [11]. Las posibilidades de utilizar una
técnica similar a ésta en nuestro árbol Q son escasas, debido a
la dificultad que entraña decidir si un nodo es o no seguro, ya
que la información que se añade a un nodo como resultado de
la división de un hijo no tiene un tamaño predecible,
resultando en ocasiones imposible determinar cuánto espacio
libre debe albergar un nodo para considerarlo seguro.
Una alternativa bastante extendida para soportar
concurrencia en índices multinivel es la utilización de árboles
enlazados, propuesta por primera vez por Lehman y Yao sobre
el árbol B [8] y extendida posteriormente a otros tipos de
índices. Esta técnica aboga por utilizar enlaces horizontales
entre nodos de un mismo nivel con objeto de localizar datos
posiblemente trasladados por otros procesos concurrentes a
nodos hermanos (producto de una división o una fusión de
nodos). El árbol hB3 [3], un método de acceso
multidimensional basado en árboles k-d, apuesta por esta
técnica para conseguir un funcionamiento transaccional de la
estructura. Su similitud con el árbol Q sugiere un tratamiento
más detallado.
11
tener utilidad, siendo una información redundante que va a
incrementar el tamaño del árbol k-d con efectos perniciosos.
Una de las diferencias que caracterizan nuestro árbol Q
respecto del árbol hB3 es la optimización en el espacio de las
páginas índice. Mientras que en el árbol hB3 se mantiene un
grado considerable de redundancia entre los árboles k-d
locales a una página y todas sus descendientes, en el árbol Q
esta redundancia se optimiza al mínimo. Esta limitación en la
redundancia supone la ausencia en el árbol k-d local de nodos
que representan fronteras exteriores de la región
correspondiente a una página y, por tanto, la imposibilidad de
apuntar de forma expresa y directa a páginas hermanas. Si
bien la ausencia de este tipo de nodos descarta la posibilidad
de usar esta técnica para dotar de concurrencia a la estructura,
consigue importantes beneficios, ya que el apropiado uso del
espacio en el árbol Q garantiza mucha menor propensión a la
división. Sirva como ejemplo la figura 2, en la que el árbol k-d
de la misma región R es en el árbol Q de menor tamaño que
en el hB3.
y6
y5
A. Concurrencia en el Árbol hB3
3
El árbol hB soporta la concurrencia de procesos
enlazando un nodo con todos los del mismo nivel que han sido
extraídos de él. Cada página índice de un árbol hB3 contiene
un árbol k-d local. Mientras que la mayoría de los nodos hoja
de este árbol apuntan a páginas índice de nivel inferior,
algunos apuntan a páginas del mismo nivel. La figura 2 sirve
para ilustrar este mecanismo de enlace. El nodo R es del
mismo nivel que los nodos A y B, los cuales fueron en el
pasado extraídos de R, mientras que los nodos 1, 2, 3, 4 y 5
son descendientes del nodo R.
En este tipo de estructuras, el recorrido seguido por
cualquier operación no tiene por qué ir bajando niveles
siempre de padre a hijo, sino que en alguna ocasión se puede
desplazar horizontalmente en el mismo nivel hacia un nodo
hermano. Tanto las operaciones de consulta como las de
actualización siguen inicialmente un recorrido descendente.
Mientras que las consultas finalizan en el nivel hoja del árbol,
las de actualización continúan, si es necesario, con un proceso
de actualización ascendente. Este camino en orden inverso no
tiene por qué coincidir con el que se siguió en el descenso.
Para ilustrar el uso de los enlaces horizontales,
imaginemos, sobre la figura 2, que una operación Oi realiza un
recorrido descendente que va en dirección al espacio de datos
que representa el nodo B. Supongamos también que B está
siendo extraído de R en este momento por una actualización
concurrente Oj. Oj ya ha creado y añadido B al índice, al
tiempo que ha modificado R, pero aún no ha trasladado la
necesaria información al padre de R. El recorrido descendente
que lleva a cabo Oi lee el nodo padre en esta situación, de
forma que decide continuar hacia R. Al procesar R Oi llega a
la hoja que apunta al nodo hermano B y continúa en este caso
desplazándose horizontalmente hacia este nodo. Sin embargo,
cuando el nodo padre de R sea actualizado, para reflejar la
nueva situación, ese enlace desde R hacia el nodo B deja de
4
3
5
2
x0
x1
x2
Región R en árbol Q
x4
y1
2
B
A
y4
y3
y2
y1
y0
3
x4
Región R en árbol hB3
x4
p
p
x1
1
x3
1
y1
p
x4
x1
y4
4
B
3
X2
y4
5
1
2
4
A
5
Fig. 2. Árbol k-d en árboles Q y hB3
Una de las diferencias que caracterizan nuestro árbol Q
respecto del árbol hB3 es la optimización en el espacio de las
páginas índice. Mientras que en el árbol hB3 se mantiene un
grado considerable de redundancia entre los árboles k-d
locales a una página y todas sus descendientes, en el árbol Q
esta redundancia se optimiza al mínimo. Esta limitación en la
redundancia supone la ausencia en el árbol k-d local de nodos
que representan fronteras exteriores de la región
correspondiente a una página y, por tanto, la imposibilidad de
apuntar de forma expresa y directa a páginas hermanas. Si
bien la ausencia de este tipo de nodos descarta la posibilidad
de usar esta técnica para dotar de concurrencia a la estructura,
consigue importantes beneficios, ya que el apropiado uso del
espacio en el árbol Q garantiza mucha menor propensión a la
división. Sirva como ejemplo la figura 2, en la que el árbol k-d
de la misma región R es en el árbol Q de menor tamaño que
en el hB3.
Un segundo argumento para descartar la utilización de esta
técnica de concurrencia en nuestro árbol Q estriba en la
12
IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 1, MARCH 2005
penalización que supone el seguimiento de enlaces
horizontales durante el proceso de búsqueda (se alarga la lista
de nodos visitados), operación cuyo rendimiento optimo
representa el objetivo central de nuestras decisiones.
El mecanismo de concurrencia que proponemos para el
árbol Q está a salvo de “errores” en los recorridos (en el
sentido de descender a un nodo equivocado y tener que seguir
un enlace horizontal para resolver el problema), favoreciendo
así el tiempo de ejecución de consultas.
IV. CONCURRENCIA EN EL ÁRBOL Q
Para describir con detalle nuestra propuesta sobre la
concurrencia en el árbol Q precisamos introducir una breve
clasificación de las operaciones en virtud de las cuales
establecemos diferentes tipos de candados. Tenemos dos
grupos principales:
o
Lectura: Actualmente son cuatro, a saber, búsquedas
exactas de un elemento, búsquedas en ventana, búsquedas
parciales y búsquedas en rango
Una operación de escritura no necesita obligatoriamente
adquirir el candado BD. Para sincronizarse entre sí las
escrituras adquieren un cierre X sobre el nodo raíz del árbol y
no lo liberan hasta que terminan su ejecución. De este modo
las
operaciones
de
escritura
nunca
se
ejecutan
simultáneamente entre ellas, pero sí con un número ilimitado
de operaciones de lectura.
Escrituras
Nodo Raíz Árbol Q
(Cierre X)
Ejecución y generación
de lista de páginas
modificadas
Lecturas
No
Si
¿Multiescritura?
Candado BD
Multiescrituras (Cierre X) Lecturas (Cierre S)
Aperturas y CopiasBD
Candado SR
(Cierre X)
Actualización de Páginas
Liberación de candados y nodos
o
Escritura: Tenemos tres, que son inserción de puntos,
borrado de puntos y modificación de puntos. Una
inserción llega hasta el contenedor donde se añade el
nuevo punto y, en caso de sobrecarga, propaga el proceso
de división de forma ascendente. Un borrado llega al
contenedor donde elimina el punto y, en caso de
infracarga, propaga el proceso de reordenación que sólo
afecta a la región padre. La modificación mueve un punto
de sitio en el espacio. Esta operación puede iniciar tanto
procesos de división ascendente como procesos de
reordenación en la región padre.
Las operaciones de escritura, a su vez,
tienen una
clasificación adicional:
o Operaciones Monoescritoras.
contenedor del nivel de Datos.
Actualizan
un
solo
o Operaciones Multiescritoras. Modifican más de una
página. En general son operaciones que necesitan hacer
actualizaciones en Qnodos índice, pero en esta clase
también se incluyen operaciones de modificación que
realizan dos actualizaciones de página en Qnodos de datos.
Como es sobradamente conocido, el tamaño de los
gránulos sobre los que se aplican los cierres es inversamente
proporcional al rendimiento de la concurrencia y directamente
proporcional a la complejidad de la gestión de esos cierres [9].
Nuestro modelo se inclina hacia una granularidad gruesa,
definiendo un único gránulo que representa a toda la
estructura al que denominamos Candado BD, sobre el que se
pueden aplicar dos tipos de cierre, uno compartido (S), que es
compatible con más cierres de su mismo tipo pero con ningún
otro, y uno exclusivo (X), que no es compatible con ningún
otro tipo de cierre, aunque sea de su mismo tipo. Cuando un
proceso adquiere un cierre S del Candado BD puede coincidir
simultáneamente con otros procesos que adquieren el mismo
tipo de cierre. Todas las operaciones de lectura necesitan
adquirir un cierre S del candado como se aprecia en la figura
3.
Fig. 3. Modelo de sincronización de operaciones en Árbol Q
El mecanismo de sincronización entre las operaciones de
lectura y escritura depende directamente de la anterior
clasificación. Como se ve en la figura 3, las operaciones
monoescritoras no necesitan sincronizarse con las lecturas.
Son las operaciones multiescritoras las que sí necesitan de un
mecanismo de sincronización, debido a que modifican varios
Qnodos y, por tanto, la estructura no vuelve a ser consistente
hasta que no se hayan actualizado todos. Las operaciones de
escritura trabajarán con copias de las páginas modificadas
realizando su trabajo de forma concurrente a las operaciones
de lectura y realizando una actualización en bloque al final,
ésta técnica de escrituras diferidas ya se menciona en [7].
Justo en el momento de iniciar ese volcado físico de las
páginas es cuando las operaciones multiescritoras necesitan el
cierre X del candado BD para impedir que ningún otro
proceso recorra el índice en ese intervalo de tiempo.
Línea de Tiempo
Ti
Tv
Tf
Estado A
Estado B
Operación de Escritura
Fase de ejecución
Ejecución lógica
Volcado físico de páginas
Estado
A
Inconsistente
Errores
Inocuos
Perniciosos
B
Fig. 4. Escritura diferida de páginas en transacciones de escritura
Además de las operaciones de lectura y de escritura existen
otras operaciones con un carácter administrativo que también
precisan de sincronización. Por ejemplo, en la apertura de una
base de datos se necesita comprobar si ésta es consistente y,
LÓPEZ et al.: CONCURRENCY AND RECOVERY IN THE
por tanto, es necesaria la sincronización con las operaciones
de escritura. Para esta clase de operaciones, disponemos de un
gránulo denominado Candado SR (figura 3), utilizado para la
sincronización de las escrituras con operaciones que, o bien
necesiten comprobar la consistencia de la base de datos, o
bien necesitan impedir durante un intervalo de tiempo la
modificación de ésta, como al hacer una copia de seguridad de
la base de datos, por ejemplo.
Este mecanismo de concurrencia favorece notablemente a
las consultas, las cuales sólo pueden quedar bloqueadas en un
candado, y además, sólo el tiempo justo que dure el volcado
físico de las páginas modificadas por una operación
multiescritora, las cuales, además, son minoría dentro del
conjunto de las escrituras.
La política de escrituras diferidas favorece el
mantenimiento de la base de datos en un estado consistente
frente a errores que puedan surgir antes del volcado físico de
las páginas modificadas. La figura 4 ilustra las situaciones de
riesgo potencial respecto a la consistencia que aparecen
durante la ejecución de una operación de escritura sobre la
base de datos. En el periodo [Ti,Tv) la operación de escritura
lleva a cabo modificaciones en el buffer, de modo que la base
de datos física se mantiene durante dicho periodo en el estado
consistente A, incluso ante la aparición de cualquier error. El
periodo [Tv, Tf) es crítico respecto a la consistencia porque
durante el mismo la base de datos física se encuentra en un
estado inconsistente y cualquier interrupción provocada por
un error puede dejarla en éste estado. Se deduce de la figura
que para evitar una situación anómala de inconsistencia basta
con conseguir que la fase de volcado físico de páginas se
comporte como una operación atómica que, o bien se ejecute
en su totalidad (llevando la base de datos al estado B) o bien
no se ejecute en absoluto (dejándola en su estado original A).
En aquellas estructuras índice que siguen un enfoque de
enlaces horizontales para dotar de concurrencia al método de
acceso (tal como sucede con el árbol hB3), la consideración
de “estado consistente” se limita a cada nivel del índice. Esto
significa que una página padre puede no reflejar
correctamente la organización de los datos en sus páginas
descendientes y no por ello tildar a la estructura en su
conjunto de inconsistente, dado que los enlaces horizontales
permiten acceder a aquellos datos ocultos para la página
padre. Esta característica permite implementar una operación
de escritura como una sucesión de transacciones atómicas
igual a la altura del árbol.
En nuestro caso, la consideración de “estado consistente”
supone una garantía sobre el estado de la estructura en su
conjunto, asegurando en todo momento que el contenido del
índice cumple con las propiedades fundamentales que definen
la estructura. La figura 5 ilustra las diferencias de nuestro
enfoque respecto al que siguen estructuras basadas en enlaces
horizontales para conseguir atomicidad en operaciones
virtualmente perniciosas para la consistencia del sistema.
V. RECUPERACIÓN EN EL ÁRBOL Q
Una vez justificada la necesidad de instaurar la fase de
13
ejecución del volcado físico de páginas como una operación
atómica (transacción), vamos a describir qué mecanismos de
recuperación utilizamos para evitar que la operación se
detenga prematuramente provocando un estado inconsistente
de la base de datos.
Si la fase del volcado físico de páginas se interrumpe a
causa de un error incontrolado, necesitamos recuperar el
último estado consistente de la base de datos. Con tal fin
implementamos otros mecanismos de recuperación: (a)
basados en técnicas de recuperación de un estado previo
(“undo”) y (b) basados en técnicas de reconstrucción de
estados posteriores (“redo”). El primer enfoque basa su
funcionalidad en la existencia de un archivo de log que
registra temporalmente las versiones originales de las páginas
modificadas, las cuales serán restauradas en caso de error. La
segunda técnica precisa mantener por una parte copias de
seguridad de la base de datos y por otra un archivo de
transacciones secuenciado en el tiempo, las cuales podrán ser
relanzadas contra la copia de seguridad a fin de obtener
estados posteriores de la base de datos.
Operación de escritura en árbol hB3
Ti = Actualización de nodos de nivel i
Nivel 1 = Nivel más bajo
T1
A
Si error en Ti , deshacer (“undo”)
T2
B1
Tn
B2
…
Bn-1
Bn
Estados CONSISTENTES Intermedios
Operación de escritura en árbol Q
T = Actualización de todos los
nodos modificados del árbol
T
B
A
Copia
Si error en T, deshacer (“undo”)
Si error en operación deshacer (
), rehacer (“redo”)
Fig. 5. Atomicidad en árbol hB3 y árbol Q
Durante la fase de volcado físico, son dos las principales
fuentes de problemas: errores de E/S y caídas abruptas de un
proceso. Ambos precisan de tratamientos distintos para su
resolución. En el primer caso podremos aplicar un mecanismo
undo, para restablecer el estado previo de la base de datos,
durante el curso mismo de la operación. En el segundo caso se
puede interrumpir el curso de una operación que haya iniciado
el volcado de nodos modificados. Deshacer esos cambios
queda fuera de las posibilidades de la operación por lo que es
necesario identificar el problema cuando posteriormente se
intente reabrir la base. Las aperturas se sincronizan con las
escrituras adquiriendo un cierre X sobre el Candado SR
(figura 3) recuperando el último estado consistente de la base
de datos antes de liberarlo.
El mecanismo de undo utilizado para recuperar el último
estado consistente de una base de datos está sujeto a su vez a
errores que pueden provocar un estado irrecuperable de la
base de datos. Ante esta situación se recurre al mecanismo de
redo que relanza las transacciones registradas a partir de la
última copia de seguridad disponible para reconstruir la base
14
IEEE LATIN AMERICA TRANSACTIONS, VOL. 3, NO. 1, MARCH 2005
(ver figura 5). Esta técnica es útil tanto para recuperar un
último estado consistente de una base de datos como para
restaurar estados anteriores que interese recuperar.
VI. CONCLUSIONES Y TRABAJO FUTURO
En este artículo hemos descrito los mecanismos de
concurrencia y recuperación que hemos implantado en el árbol
Q para dotar de robustez y seguridad a una estructura que
actualmente se constituye como núcleo operativo del motor de
búsqueda en Xerka.net, una herramienta concebida como
sistema soporte a la gestión del conocimiento.
El modelo de concurrencia que fundamenta nuestra
propuesta huye de esquemas convencionales (principalmente
basados en el uso de enlaces horizontales) para concentrar
toda su potencia en favorecer las operaciones de búsqueda
frente a los procesos de instanciación de la base de datos u
operaciones con mayor grado de excepcionalidad como
modificaciones o borrados de documentos de la colección.
Respecto a la originalidad de nuestra propuesta, a lo largo del
artículo hemos justificado convenientemente las decisiones de
diseño en los mecanismos instaurados confrontando nuestro
enfoque con posibles alternativas, tales como las que se siguen
en el árbol hB3.
La propuesta que aquí presentamos no se ciñe a un
planteamiento específicamente teórico, sino que su viabilidad
ha sido contrastada a través de un conveniente desarrollo
experimental. En el momento en que escribimos este artículo
nos encontramos en plena fase de evaluación del sistema
global (Xerka.net) de la que sin duda obtendremos valiosa
información para mejorar la calidad de los mecanismos
implantados.
La implantación del árbol Q en Xerka.net no se ha reducido
a conseguir el funcionamiento transaccional de la estructura.
Hemos llevado adelante otras líneas de trabajo no menos
importantes, tales como desarrollar los algoritmos de
reordenación de la estructura para hacer frente a operaciones
de borrado y modificación, la consecución de una total
portabilidad de los datos o la optimización de la búsqueda de
vecinos más próximos. Algunas de estas tareas, como es el
caso de los algoritmos de reordenación, han finalizado
cumpliendo sus objetivos iniciales pero, a la vez han ido
destapando nuevas posibilidades que se han convertido en
retos que ya estamos afrontando.
VII. REFERENCIAS
[1]
[2]
[3]
[4]
[5]
M. Barrena, “Técnicas de Particionamiento Multidimensional Basadas
en Índices Multiatributo para Bases de Datos Paralelas”. Tesis Doctoral.
Facultad de Informática de la Universidad Politécnica de Madrid, 1995
R. Cobos, J. A. Esquivel y X. Alamán, “Herramientas Informáticas para
la Gestión del Conocimiento. Un Estudio de la Situación Actual”,
Novótica nº 155. Enero/Febrero 2002.
G. Evangelidis, D. Lomet, B. Salzberg, “The hB3-tree: A Modified hBtree Supporting Concurrency, Recovery and Node Consolidation”, 21st
Internacional Conference on Very Large Databases (VLDB), September
1995, pp. 551-561.
J. Gray and A. Reuter, “Transaction Processing: Concepts and
Techniques”, Morgan Kaufmann Publishers, 1993.
E. Jurado, “Una Aproximación Eficiente a la Búsqueda de Vecinos en
Espacios Multidimensionales a través del Árbol Q”. Tesis Doctoral.
Departamento de Informática de la Escuela Politécnica. Universidad de
Extremadura 2003.
[6] E. Jurado and M. Barrena, “Efficient Similarity Search in Feature Spaces
with the Q-Tree”, International Conference on Advances in Databases
and Information Systems (ADBIS), September 2002, pp. 177-190.
[7] H. T. Kung and P. L. Lehman, “Concurrent Manipulation on Binary
Search Trees”, ACM Transactions on Database Systems, 5(3):354-382,
September 1980.
[8] P. L. Lehman and S. B. Yao, “Efficient Locking for Concurrent
Operations on B-Trees”, ACM Transactions on Database Systems,
6(4):650-670, December 1981.
[9] D. R. Ries and M. Stonebraker, “Effects of Locking Granularity in a
Database Management System”, ACM Transactions on Database
Systems, 2(3):233-246, September 1977.
[10] Y. Rui, T. S. Huang and S. F. Chang, “Image Retrieval: Current
Techniques, Promising Directions and Open Issues”, Journal of Visual
Communication and Image Representation, 10:39-62, March 1999.
[11] V. Srinivasan and M. J. Carey, “Performance of B-Tree Concurrency
Control Algorithms”, 1991 ACM SIGMOD Conf., pp. 416-425.
VIII. BIOGRAFÍAS
José Fernando López nació en Huertas de Ánimas
(Cáceres), España, en 1978. Obtuvo el título de Ingeniero
en Informática por la Universidad de Extremadura (Uex) en
2003. Es alumno de doctorado en el Departamento de
Informática de la Uex y becario de investigación en el
proyecto SYGE. Sus áreas de investigación actuales son las
Bases
de
Datos
y
estructuras
de
Indexación
Multidimensional, los sistemas CBIR e IR.
Manuel Barrena nació en Zafra (Badajoz), España, en
1961. Obtuvo su Licenciatura en Ciencias Matemáticas por
la Universidad de Extremadura (Uex) en 1984, y el grado de
Doctor en Informática por la Universidad Politécnica de
Madrid en 1995. Es Profesor Titular de Universidad en la
Uex por el área de Lenguajes y Sistemas Informáticos.
Investigador principal del proyecto SYGE. Sus áreas de
investigación son las estructuras de Indexación Multidimensional y Temporal,
los sistemas CBIR e IR y las Bases de Datos Multimedia.
Francisco Javier Rufo nació en Alicante, España, en 1979.
Obtuvo el título de Ingeniero en Informática por la
Universidad de Extremadura (Uex) en 2003. Es alumno de
doctorado en el Departamento de Informática de la Uex y
becario de investigación en el proyecto SYGE. Sus áreas de
investigación actuales son las Bases de Datos y estructuras
de Indexación Multidimensional.
Elena Jurado nació en Cáceres, España, en 1962. Obtuvo
la Licenciatura en Matemáticas en 1985 y el grado de
Doctora en Informática en 2003, ambos en la Universidad
de Extremadura (Uex). Es Profesora en la Uex por el área de
Lenguajes y Sistemas Informáticos. Investigadora en el
proyecto SYGE. Sus áreas de investigación están dentro del
campo de las Bases de Datos, concretamente en el ámbito de
las Búsquedas por Similitud en Índices Multidimensionales para la
recuperación de información por contenido.
Simeón Barroso nació en Aceuche (Cáceres), España, en
1955. Obtuvo su licenciatura en Ciencias Físicas por la
Universidad de Navarra en 1982. Socio y promotor de
Diana Teknologia, empresa vasca dedicada a la innovación
y desarrollo de software original de calidad. Investigador
principal del departamento de I+D de Diana Teknologia y
responsable de productos como DIB y Xerka. Sus áreas de
Investigación son los sistemas de backup, la Gestión del Conocimiento y el
Procesamiento Multilingüe del Lenguaje Natural (castellano, euskera, francés
e inglés).
Descargar