ES2608392T3 - Validez a largo plazo de resultados de solicitud pre-calculados - Google Patents
Validez a largo plazo de resultados de solicitud pre-calculados Download PDFInfo
- Publication number
- ES2608392T3 ES2608392T3 ES14290040.6T ES14290040T ES2608392T3 ES 2608392 T3 ES2608392 T3 ES 2608392T3 ES 14290040 T ES14290040 T ES 14290040T ES 2608392 T3 ES2608392 T3 ES 2608392T3
- Authority
- ES
- Spain
- Prior art keywords
- recalculation
- precalculated
- precalculated search
- search results
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Un método para recalcular resultados de búsqueda precalculados realizado en un entorno de base de datos (1), comprendiendo el entorno de base de datos una plataforma de búsqueda (4) que mantiene resultados de búsqueda precalculados, un controlador de recálculo (2) y una plataforma de cálculo (3), comprendiendo el método: - asignar el controlador de recálculo (2) un indicador de recálculo a cualquiera de los resultados de búsqueda precalculados, en el que el indicador de recálculo para un resultado de búsqueda precalculado i indica una prioridad de recálculo del resultado de búsqueda precalculado i y se basa en al menos los siguientes factores: - una probabilidad acci de que resultado de búsqueda precalculado i sea aún válido; - una frecuencia de recálculo fi del resultado de búsqueda precalculado i aproximada por la recíproca de un tiempo desde el último recálculo del resultado de búsqueda precalculado i; y - una medida para recursos de cálculo ci necesarios para recalcular el resultado de búsqueda precalculado i; - en el que el indicador de recálculo está definido por**Fórmula** - en un intervalo de tiempo dado, recalcular resultados de búsqueda precalculados que tienen un indicador de recálculo que indica la prioridad más alta para recálculo, estando el número de resultados de búsqueda precalculados recalculados por la plataforma de cálculo limitado por los recursos de cálculo disponibles de la plataforma de cálculo para el recálculo en el intervalo de tiempo dado.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Validez a largo plazo de resultados de solicitud pre-calculados Campo de la invencion
La presente invencion se refiere en general a tecnologfa de base de datos. Mas espedficamente, se refiere a una estrategia para mantener resultados de busqueda precalculados almacenados como registros de base de datos en una base de datos actualizada.
Antecedentes
Un problema comun en la tecnologfa de base de datos es asegurar tiempos de respuesta cortos a consultas de base de datos que requieren procesar grandes volumenes de datos. Por ejemplo, tal potencia informatica que consume procesamiento tiene que realizarse en respuesta a las denominadas “consultas abiertas” que contienen unicamente poca informacion de entrada (por ejemplo, unicamente se especifican uno o dos parametros de una docena de posibles parametros y/o los intervalos de valor especificados de los parametros son amplios) y, en consecuencia, conducen en general a un gran numero de resultados. Las posibilidades para acelerar el procesamiento de datos aumentando el rendimiento de hardware son limitadas. Por lo tanto, se llama la atencion a mejorar los mecanismos que subyacen el procesamiento de grandes volumenes de datos.
Un enfoque general para acortar tiempos de consulta es precalcular consultas esperadas y mantener los resultados de consulta correspondientes en un sistema de cache. Las consultas entonces realmente no se procesan en las bases de datos grandes, sino que se dirigen al sistema de cache.
Sin embargo, otro problema que surge junto con tales enfoques de almacenamiento en cache, es mantener los resultados de busqueda precalculados actualizados para asegurar que las consultas respondidas por los resultados almacenados en cache reflejan correctamente el estado de las correspondientes bases de datos grandes. En el caso de cambios de datos subyacentes, los resultados de consulta almacenados en cache quedan desactualizados y el sistema de cache devolvena resultados incorrectos. Por lo tanto, se emplean estrategias de actualizacion para mantener el sistema de cache actualizado.
Son conocidas en la tecnica anterior diversas estrategias de actualizacion relativamente sencillas como, por ejemplo, recalcular todo el dominio de datos con frecuencia, establecer y mantener planificaciones de recalculo manualmente y recalcular datos cuando se esten volviendo demasiado antiguos.
Se han desarrollado estrategias de actualizacion algo mas sofisticadas, como se describen por ejemplo mediante el documento WO 01/33472 y el documento WO 02/25557.
El documento WO 01/33472 se refiere a un sistema de disponibilidad usado en un sistema de planificacion de viajes. El sistema incluye una cache que tiene entradas de informacion de disponibilidad con respecto a asientos de la lmea aerea. Un gestor de cache gestiona informacion de entrada en la cache para mantener la informacion en la cache correcta, actual, completa o de otra manera tan util como sea posible. En respuesta a una consulta dirigida a la cache, el gestor de cache determina si una respuesta almacenada es obsoleta y, si este es el caso, envfa una consulta de disponibilidad a una fuente de informacion de disponibilidad. Las entradas de cache a modificar se obtienen por notificaciones asmcronas a partir de sistemas externos y se determinan por un modelo determimstico, predictivo o estadfstico.
De manera similar, el documento WO 02/25557 pertenece a un sistema de recuperacion de informacion en el que la informacion recibida desde fuentes de informacion se almacena en cache para uso futuro, tal como para futuras solicitudes de clientes. Las consultas proactivas pueden generarse para rellenar una cache y/o para actualizar informacion actualmente almacenada en cache. En un sistema de informacion de lmea aerea, las consultas proactivas se ordenan basandose en estadfsticas o indicaciones predictivas tales como una cercama de tiempo de salida, la antiguedad de los datos almacenados en cache, asientos restantes en una aeronave, vacaciones o eventos especiales o tipo de equipaje. Ademas, se reciben actualizaciones mediante notificaciones externas desde lmeas aereas tales como mensajes AVS.
Ademas, el documento WO 99/22315 describe un mecanismo para refrescar automaticamente documentos en una cache usando un modelo probabilfstico basado en estadfsticas. Para cada documento, la cache determina una probabilidad Psi(t) de que un objeto almacenado en cache i este obsoleto en un tiempo particular t (es decir el servidor ha cambiado ese objeto) y una probabilidad Pri(h) de que ese objeto i se solicite por un usuario en el tiempo de solicitud h. La cache refresca estos objetos con el producto mas alto Pi = Psi(t) x Pri(h), es decir la probabilidad de que un objeto desactualizado se devuelva al usuario con la siguiente solicitud. Para mantener estos valores de probabilidad, la cache mantiene y registra estadfsticas historicas para los objetos almacenados en cache tales como un intervalo medio estimado entre actualizaciones de servidor EUI. El EUI de un objeto se actualiza, por ejemplo, cuando el propio objeto se actualiza por el servidor o el objeto no se actualiza despues de que su tiempo de refresco
5
10
15
20
25
30
35
40
45
50
55
60
medio estimado ha transcurrido.
Sumario de la invencion
La presente invencion se define mediante las reivindicaciones independientes.
El documento US2009/0204753 A1 se refiere a refrescar una cache basandose en respuestas de consulta proporcionadas por un sistema de busqueda en respuesta a consultas. Una entrada de cache se proporciona para cada unica consulta si hay espacio disponible en la cache. Se asigna un valor de temperatura a cada entrada de cache basandose en una frecuencia de ocurrencia de la correspondiente consulta. Se asigna un valor de antiguedad a cada entrada de cache basandose en un tiempo de ultimo refresco o creacion de la correspondiente respuesta de consulta. La antiguedad de las entradas de cache se actualiza periodicamente y la temperatura de una entrada de cache se actualiza cuando tiene lugar una consulta correspondiente. Si hay recursos de sistema disponibles, la respuesta de consulta de una entrada de cache se refresca basandose en la temperatura y antiguedad de la entrada de cache. Si no hay recursos disponibles, el refresco esta limitado.
El artfculo “Synchronizing a database to Improve Freshness” por J. Cho et al. estudia posibilidades para refrescar una copia local de una fuente de datos autonoma para mantener la copia actualizada. Entre otros, se describe el proceso de Poisson como un enfoque para modelar la evolucion probabilfstica de un elemento.
De acuerdo con un aspecto, la presente invencion proporciona un metodo de recalculo de resultados de busqueda precalculados realizado en un entorno de base de datos. El entorno de base de datos esta al menos compuesto de al menos una plataforma de busqueda que mantiene resultados de busqueda precalculados, un controlador de recalculo y una plataforma de calculo.
- El controlador de recalculo asigna un indicador de recalculo a cualquiera de los resultados de busqueda precalculados. El indicador de recalculo para un resultado de busqueda precalculado i indica una propiedad de recalculo del resultado de busqueda precalculado i y se basa en al menos los siguientes factores:
◦ una probabilidad de que el resultado de busqueda precalculado i sea aun valido;
◦ una frecuencia de recalculo del resultado de busqueda i aproximada por la redproca de un tiempo desde el ultimo recalculo del resultado de busqueda precalculado i; y
◦ una medida para recursos de calculo c necesarios para recalcular el resultado de busqueda precalculado i.
1 — acci
- El indicador de recalculo se define por ------------.
fici
- La plataforma de calculo recalcula resultados de busqueda precalculados que tienen un indicador de recalculo que indica la prioridad mas alta para recalculo. El numero de resultados de busqueda precalculados recalculados por la plataforma de calculo esta limitado por los recursos de calculo disponibles de la plataforma de calculo para el recalculo en el intervalo de tiempo dado.
De acuerdo con un aspecto adicional, se proporciona un controlador de recalculo para empleo en un entorno de base de datos, comprendiendo el entorno de base de datos una plataforma de busqueda que mantiene resultados de busqueda precalculados y una plataforma de calculo. El controlador de recalculo esta dispuesto para:
- asignar un indicador de recalculo a cualquiera de los resultados de busqueda precalculados, en el que el indicador de recalculo para un resultado de busqueda precalculado i se basa en al menos los siguientes factores:
◦ una probabilidad de que el resultado de busqueda precalculado i sea aun valido; y
◦ una frecuencia de recalculo del resultado de busqueda i aproximada por la redproca de un tiempo desde el ultimo recalculo del resultado de busqueda precalculado i; y
° una medida para recursos de calculo o necesarios para recalcular el resultado de busqueda precalculado i;
1 — acc
y el indicador de recalculo se define por-----------;
fic,
- generar ordenes de recalculo para resultados de busqueda precalculados que tienen un indicador de recalculo que indica la necesidad mas alta para recalculo, estando limitado el numero de resultados de busqueda precalculados recalculados por la plataforma de calculo por los recursos de calculo disponibles de la plataforma de calculo para el recalculo;
- transmitir las ordenes de recalculo a la plataforma de calculo para hacer que la plataforma de calculo recalcule los resultados de busqueda precalculados indicados por las ordenes de recalculo.
5
10
15
20
25
30
35
40
45
50
55
60
65
De acuerdo con un aspecto aun adicional, se proporciona un medio de almacenamiento legible por ordenador no transitorio que tiene instrucciones de programa informatico almacenadas en el mismo, que cuando se ejecutan en un sistema informatico producen que el sistema informatico realice estas actividades.
De acuerdo con otro aspecto, los recursos de calculo para recalcular el resultado de busqueda precalculado i dependen de si se recalculan o no otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i durante el intervalo de tiempo dado y en el que los recursos de calculo necesarios para recalcular el resultado de busqueda precalculado i se estiman dinamicamente dependiendo de que otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se seleccionen para recalculo durante el intervalo de tiempo dado.
De acuerdo con un aspecto adicional, los resultados de busqueda precalculados para recalculo por la plataforma de calculo en el intervalo de tiempo dado se seleccionan de manera iterativa. Esta seleccion iterativa incluye una estimacion de los recursos de recalculo para recalcular los resultados de busqueda precalculados que a su vez comprende:
a) inicializar los recursos de calculo ci necesarios para recalcular cada resultado de busqueda precalculado i con un valor que asume el calculo de i independiente del calculo de otros resultados de busqueda precalculados seleccionados para recalculo durante el intervalo de tiempo dado;
b) seleccionar una porcion no seleccionada aun de los resultados de busqueda precalculados para recalculo de acuerdo con el indicador de recalculo, en el que - basandose en los valores actuales para los recursos de calculo necesarios para recalcular la porcion de resultados de busqueda precalculados - requiriendo unicamente la porcion seleccionada un porcentaje dado de los recursos de calculo totales disponibles de la plataforma de calculo para recalculo en el intervalo de tiempo dado;
c) reevaluar a los recursos de calculo o necesarios para recalcular cada resultado de busqueda precalculado i teniendo en cuenta que resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se han seleccionado para recalculo;
d) continuar con la etapa b) si se agota menos del 100 % de los recursos de calculo globales disponibles de la plataforma de calculo para recalculo en el intervalo de tiempo dado.
Se definen aspectos adicionales mediante las reivindicaciones dependientes.
Breve descripcion de las figuras
La presente invencion se describira con referencia a las figuras adjuntas. Numeros de referencia similares indican en general elementos identicos o de funcionalidad similar.
La Figura 1 muestra esquematicamente un entorno de base de datos distribuido.
La Figura 2 ilustra un modelo probabilfstico que predice precision decreciente de un resultado de busqueda precalculado durante el tiempo.
Las Figuras 3a, 3b y 3c visualizan los efectos de una estrategia de recalculo que se centra en recalcular resultados de busqueda precalculados volatiles.
Las Figuras 4a y 4b visualizan los efectos de una estrategia de recalculo teniendo en cuenta frecuencias de recalculo, costes de recalculo para recalcular resultados de busqueda precalculados y su popularidad de busqueda.
La Figura 5 representa costes de recalculo para diferentes tipos de conjuntos de resultados de busqueda precalculados.
La Figura 6 muestra un ejemplo de un entorno de base de datos que implementa los metodos presentados en el presente documento.
La Figura 7 presenta una vista en una estructura interna ejemplar del controlador de recalculo.
La Figura 8 es una vista esquematica ejemplar de la arquitectura interna del servidor de procesamiento de consulta.
Descripcion detallada
Para poder manejar consultas de base de datos o solicitudes de calculo en lotes que requieren calculos basandose en grandes volumenes de datos subyacentes, los resultados de busqueda que corresponden a consultas esperadas generalmente se precalculan y almacenan como registros de base de datos en una base de datos. Se consulta esta base de datos por entidades solicitantes (tales como clientes, aplicaciones, exploradores instalados en terminales de
5
10
15
20
25
30
35
40
45
50
55
60
65
usuario, etc.) en el curso de una busqueda y se devuelven resultados de busqueda precalculados que satisfacen criterios de busqueda indicados por la consulta al cliente en respuesta a la consulta. Posteriormente, el termino “consulta” se usa como un termino general que incluye cualquier tipo de solicitudes de recuperacion de informacion tales como consultas transaccionales, peticiones para calculos en lotes y otras formas.
La Figura 1 ilustra un entorno de base de datos 1 de este tipo en un nivel abstracto. Los datos basicos, en lo sucesivo denominados tambien como “datos de calculo”, se mantienen en y/o se acceden por una plataforma de calculo 3 que esta conectada a un controlador de recalculo 2. El ultimo emite ordenes de recalculo a la plataforma de calculo 3 que, a su vez, transmite los resultados correspondientes a la plataforma de busqueda 4 y, ademas, al controlador de recalculo 2 que tambien mantiene los resultados de busqueda precalculados por razones de control de recalculo. Los usuarios finales 5 tales como aplicaciones en terminales de usuario acceden a los resultados de busqueda precalculados a partir de la plataforma de busqueda 4. Como se indica mediante la Figura 1, una o varias plataformas de busqueda 4 pueden estar presentes en el entorno 1. Si esta presente una pluralidad de plataformas de busqueda 4, los resultados de busqueda precalculados pueden mantenerse de una manera distribuida a traves de las varias plataformas de busqueda 4 y el controlador de recalculo 2 puede controlar el recalculo de todos los resultados de busqueda precalculados distribuidos a traves de las plataformas de busqueda 4. La plataforma de busqueda 4 puede ofrecer tambien un conjunto heterogeneo de solicitudes de busqueda precalculadas, por ejemplo algunas plataformas de busqueda 4 mantienen solicitudes de busqueda precalculadas relacionadas con un viaje aereo, otras plataformas de busqueda 4 almacenan solicitudes de busqueda precalculadas relacionadas con seguros y otras plataformas de busqueda 4 mantienen solicitudes de busqueda precalculadas (o pre-rastreadas) relacionadas con sitios web de internet. Un entorno heterogeneo de este tipo puede controlarse por un unico controlador de recalculo 2 o por una pluralidad de controladores de recalculo 2. Como alternativa, la pluralidad de plataformas de busqueda 4 puede utilizarse para espejar los mismos resultados de busqueda precalculados, por ejemplo, por razones de redundancia.
El enfoque de precalcular resultados de busqueda y almacenarlos en la plataforma de busqueda accesible a clientes de consulta conduce a la situacion general de que los datos de calculo pueden cambiar durante el tiempo y, por lo tanto, los resultados de busqueda precalculados quedan desactualizados o invalidos (ambos terminos se usan de manera sinonima en el presente documento). Los resultados de busqueda precalculados que aun estan actualizados, es decir que coinciden con los equivalentes de calculo en tiempo real correspondientes (resultados que se calculanan realmente bajo demanda sin tener resultados de busqueda precalculados disponibles), se denominan resultados de busqueda precalculados “precisos” en lo sucesivo. Por lo tanto, cuando la plataforma de busqueda que mantiene los resultados de busqueda precalculados representa correctamente el estado actual del dominio de datos que subyace los resultados de consulta almacenados en cache, es decir los datos de calculo, los resultados de busqueda precalculados almacenados en la plataforma de busqueda son, en general, precisos.
En general, para posibilitar que la plataforma de busqueda devuelva resultados correctos, se desea mantener un alto grado de correlacion entre resultados de busqueda precalculados que se proporcionan a la entidad de consulta en respuesta a consultas de base de datos y sus equivalentes de calculo en tiempo real. Al mismo tiempo, sin embargo, es deseable minimizar el consumo de recursos de calculo producido por recalculos, es decir evitar cualquier recalculo innecesario tal como recalculo de resultados de consulta almacenados en cache ya precisos. Los recursos informaticos son limitados y, en general, no hay suficientes recursos informaticos para recalcular todos los resultados de busqueda precalculados en todo momento. Por lo tanto, ha de hallarse un equilibrio entre precision de resultados de busqueda precalculados y utilizacion de la potencia informatica disponible.
Para hacer el recalculo mas eficaz, se definen metricas para evaluar como es de “necesario” o “innecesario” un recalculo. Por ejemplo, no merece la pena relanzar un pre-calculo masivo completo cada dfa si menos de la mitad de los resultados de consulta calculados se vuelven desactualizados. Por otra parte, si se sabe que clases particulares de resultados de consulta cambian frecuentemente, recalcularlas varias veces por dfa puede ser beneficioso para la precision. En consecuencia, es necesaria una manera efectiva de evaluar o estimar precision de resultado de busqueda, teniendo en cuenta en general tanto la ganancia asociada en la precision como el coste de recalculo.
De acuerdo con la estrategia de actualizacion de resultados de busqueda presentada en el presente documento, se deciden los recalculos de resultados de busqueda precalculados basandose en un modelo predictivo que produce estimaciones de la precision de los resultados de busqueda precalculados mantenidos en la plataforma de busqueda. Este modelo predictivo modela las discrepancias entre los resultados de busqueda precalculados y resultados de busqueda reales supuestos, es decir aproxima la precision o imprecision de cualquier resultado de busqueda precalculado. El modelo modela, por ejemplo, la validez probable de los resultados de busqueda precalculados durante el tiempo. Las suposiciones sobre la validez de los resultados precalculados se concluyen y extrapolan a partir de las experiencias del mundo real pasadas en la materia objeto del respectivo dominio de datos.
Por ejemplo, los datos de calculo subyacente pueden pertenecer al dominio de viajes aereos y contener informacion sobre vuelos tales como aeropuerto de salida y destino, lmea aerea, fechas de salida y retorno, tarifas, clases de reserva y similares. Estos datos relacionados con viajes aereos se mantienen en la plataforma de calculo y se consultan por clientes para tener conocimiento de, por ejemplo, disponibilidad de precios de vuelos aereos o cualquier otro producto/servicio de viaje con precio. Por ejemplo, calcular precios basandose en los datos de vuelo
5
10
15
20
25
30
35
40
45
50
55
60
basicos consume recursos y tiempo. Por lo tanto, los precios reales se precalculan y almacenan en la plataforma de busqueda. En este ejemplo, el modelo probabiKstico modela la validez de los precios de recomendacion de viaje durante el tiempo. El conocimiento requerido para crear un modelo de este tipo puede tomarse a partir de las experiencias del mundo real sobre el comportamiento y desarrollo de, por ejemplo, precios de recomendacion de viaje anteriores a la fecha de salida. Por ejemplo, puede conocerse que los precios permanecen relativamente estables durante el periodo de tiempo anterior a un mes antes de las respectivas fechas de salida, pero se vuelven mas volatiles durante el mes antes de la fecha de salida. Por lo tanto, el modelo probabilfstico indica que los precios precalculados que pertenecen a recomendaciones de viaje proximas en el siguiente mes debenan recalcularse mas a menudo que tales precios precalculados que estan asociados con las recomendaciones en el futuro mas distante.
Una estrategia particular para recalcular resultados de busqueda precalculados basandose en un modelo predictivo se propone, por ejemplo, por la solicitud de patente internacional no publicada PCT/EP2013/002390 que se incluye por referencia en el presente documento. En particular, los enfoques desvelados en la misma tienen en cuenta la denominada “volatilidad” y “popularidad” de los resultados de busqueda precalculados. Observese que esta “volatilidad” no se refiere a un cambio de los mismos resultados de busqueda precalculados, sino al cambio de los datos subyacentes que forman la base para el calculo de los resultados de busqueda precalculados, dando como resultado potencialmente resultados de busqueda precalculados desactualizados o invalidos. La “popularidad” se refiere a la frecuencia de consultas a los resultados de busqueda precalculados en la base de datos: los resultados de busqueda precalculados se consultan mas a menudo que otros que son mas populares que estos otros resultados de busqueda precalculados menos populares.
Los presentes inventores han reconocido que concentrar la estrategia de recalculo unicamente en resultados de busqueda precalculados volatiles y populares (es decir tales resultados de busqueda precalculados que se desactualizan regularmente por cambio de sus correspondientes datos de calculo subyacentes) no es optimo. Los inventores se han dado cuenta de que tal estrategia unicamente produce aumentos a corto plazo de la precision de los resultados de busqueda precalculados, pero puede provocar una degradacion de la precision a largo plazo. Esto se describe ahora en mas detalle en primer lugar, antes de volver a las consecuencias de estos reconocimientos extrafdos por la presente invencion.
Para entender las desventajas de una estrategia de recalculo que se centra de manera particular unicamente en la volatilidad y popularidad de resultados de busqueda precalculados, se definen los siguientes parametros para un resultado de busqueda precalculado i:
- La antiguedad ti del resultado de busqueda precalculado i: el tiempo desde el ultimo calculo de este resultado de busqueda precalculado por la plataforma de calculo 3.
- La tasa de validez Xi del resultado de busqueda precalculado i es una medida de cuanto tiempo el resultado de busqueda precalculado i permanece valido o con que rapidez el resultado de busqueda precalculado i se vuelve invalido debido a cambios de los datos originales subyacentes. Esta tasa de validez de un resultado de busqueda precalculado dado i se deriva estadfsticamente, por ejemplo, a partir de las apariciones y los resultados (re- )calculos o (re-)cogidas y comparaciones del pasado del resultado de busqueda recogido con su estado o valores anteriores. Por ejemplo, se ha determinado que un resultado de busqueda pre-recogido particular i tiene una tasa de validez Xi del 10 % por hora, que significa que la probabilidad de que i sea valido se reduce un 10 % cada hora. En el momento de su (re-)cogida o (re-)calculo, i es en general el 100 % valido. Despues de una hora,
i es valido con una probabilidad del 90 %. Despues de dos horas la validez de i es del 81 % (=90 % reducido por otro 10 %). Despues de tres horas, la validez probable de i esta al 72,9 %, y asf sucesivamente.
La tasa de validez Xi puede emplearse para proporcionar una estimacion de la probabilidad de que un resultado de busqueda precalculado permanezca valido despues de un tiempo dado: P(invariable despues de t) = e_xit.
Esto se refiere tambien a la precision esperada = C~°’ mas en 9eneral> como la probabilidad de
que un resultado de busqueda precalculado sea valido o, en otras palabras, no este desactualizado. Se representan dos funciones ejemplares de esta reduccion de precision probable por la Figura 2. La funcion 10 representa un resultado de busqueda precalculado que potencialmente permanece mas preciso (o, mas correctamente, permanece a una probabilidad superior de ser valido durante el tiempo) que otro resultado de busqueda precalculado asociado con la funcion 11. Por ejemplo, el resultado de busqueda precalculado representado por la funcion 10 tiene el 70 % de probabilidad de que aun sea valido a 35 horas despues de su ultimo recalculo, mientras que el otro resultado de busqueda precalculado caracterizado por la funcion 11 es unicamente valido hasta aproximadamente el 50 % a las 35 horas despues de su ultimo recalculo. Las funciones 10 y 11 pueden representar tambien conjuntos completos de resultados de busqueda precalculados y a continuacion indicar proporciones de los conjuntos de resultados de busqueda precalculados que es probable que sean validos en un tiempo pasado desde el ultimo recalculo del conjunto.
- La precision esperada inicial: resultados de busqueda precalculados generados por la plataforma de calculo 3 pueden no ser necesariamente precisos incluso en el tiempo de calculo si, por ejemplo, la misma plataforma de
5
10
15
20
25
30
35
40
45
50
55
calculo 3 basa sus calculos en datos almacenados en cache (y por lo tanto desactualizados). Esto conduce a discrepancias adicionales entre resultados de busqueda precalculados calculados por la plataforma de calculo 3 y resultados de calculo que se han generado hipoteticamente por datos subyacentes precisos. Esta discrepancia puede medirse si esta disponible la respectiva realimentacion. Puede inferirse, por ejemplo, a partir de los calculos anteriores que resultado de busqueda precalculado i tiene una probabilidad ai de que sea preciso en el tiempo de calculo por la plataforma de calculo 3. Significa que la probabilidad para que un resultado de busqueda precalculado sea preciso despues de un tiempo dado t es ai e_M.
La precision de los resultados de busqueda precalculados totales mantenidos en la plataforma de busqueda 4 de acuerdo con este modelo ejemplar puede considerarse entonces como la precision media (“precision global”):
Precision Global = Avg {ai e " ).
La “popularidad” pi del resultado de busqueda precalculado i: esto es la frecuencia de acceso media a este resultado de busqueda precalculado por los usuarios finales. Como ya se ha indicado brevemente antes, puede ser deseable conseguir una mejor precision para estos resultados de busqueda precalculados que se solicitan mas a menudo por los usuarios que otros resultados de busqueda precalculados. Por lo tanto, la precision de la suma total de los resultados de busqueda precalculados en la base de datos 2 como se observa por los usuarios finales puede definirse tambien en que cada valor de precision se pondera por la popularidad del respectivo resultado de busqueda precalculado. Por lo tanto, la proporcion de los accesos precisos a los resultados de busqueda precalculados a diferencia de la proporcion esperada de los resultados de busqueda precalculados precisos esta incluida:
Estos parametros asignados a cualquier resultado de busqueda precalculado a partir de un modelo de precision probabilfstico utilizado para decidir que resultados de busqueda precalculados en la base de datos 4 reciben prioridad para recalculo. Los valores de estos parametros se derivan a partir de y se establecen, por ejemplo, de acuerdo con datos de historial estadfstico derivados de un servidor de estadfsticas basandose en varios dfas, semanas o meses, etc., de historial. Cada unico resultado de busqueda precalculado se modela con estos parametros para predecir el estado de los resultados de busqueda precalculados y por lo tanto predecir la precision de todos los resultados de busqueda precalculados.
En general, existen varias maneras para utilizar esta informacion del modelo probabilfstico para priorizar y decidir que resultados de busqueda precalculados recalcular a continuacion. Estos resultados de busqueda precalculados priorizados se denominan tambien como los “mas cnticos” de recalcular. Un enfoque natural para crear un criterio de criticidad sena hallar los ordenes de calculo que se asumen que aumentan como maximo la precision del conjunto global de precalcular solicitudes de busqueda almacenadas en la base de datos 4 desde la perspectiva del usuario final (“Precision de usuario”), es decir estas solicitudes de busqueda precalculadas con la probabilidad mas alta de que sean invalidas, ponderadas por su popularidad. Una estrategia de este tipo se desvela, por ejemplo, por el documento WO 99/22315 proponiendo refrescar estos objetos en una cache con el producto mas alto Pi = Psi(t) x Pri(h).
El enfoque determina el conjunto de resultados de busqueda precalculados C a recalcular que:
- aumenta como maximo la precision del usuario del conjunto total de resultados de busqueda precalculados
almacenados en la base de datos 4 (brevemente “dd” para el “dominio de datos”):
Precision de Usuario = ^ —EL. a. e.--Me
Xjtdd Ptct
y
- cuesta menos que R, indicando R los recursos disponibles para el siguiente ciclo de recalculo:
CosteXO = ^ Ci<R
3r.eC .
Recalcular el resultado de busqueda precalculado i aumentana la precision de usuario por
a, -Et-(1 — e~Xfi) , que
Pm
5
10
15
20
25
30
35
40
45
50
55
60
Este enfoque podria perfeccionarse adicionalmente considerando los costes de calculo (es decir recursos informaticos) requeridos para recalcular un conjunto de solicitudes de busqueda precalculadas. Si los costes de calculo para recalcular la solicitud de busqueda precalculada Xi se indican como c, se busca la relacion ganancia- coste mas alta para aumentar la “precision de usuario” mas eficazmente, es decir mejor aumento con minima
utilization de recursos de calculo. Esta relacion ganancia-coste puede definirse para que sea'
El proceso para determinar los resultados de busqueda precalculados para que se recalculen a continuation incluye las siguientes dos actividades:
- El controlador de recalculo 2 clasifica la solicitud de busqueda precalculada por esta relacion ganancia-coste.
- El controlador de recalculo 2 selecciona las mejores solicitudes de busqueda precalculadas a partir de esta lista clasificada hasta que sus costes de calculo acumulados alcanzan la cantidad de recursos de calculo R disponibles en la plataforma de calculo 3, por ejemplo para un cierto periodo de tiempo formando un ciclo de recalculo.
Un comportamiento de la precision de los resultados de busqueda precalculados durante el tiempo cuando se emplea este enfoque de recalculo se indica por las Figuras 3a, 3b y 3c. Las tres figuras, asi como las Figuras 4a y 4b adicionales, muestran graficos obtenidos por simulation sobre resultados de busqueda precalculados artificiales usando una plataforma de calculo 3 equipada con una cantidad adecuada de recursos de calculo. Se ha supuesto una fluctuation normal dentro de los datos de calculo subyacentes, por ejemplo una tasa de validez media aproximadamente del 2 % por hora que significa que el 2 % de los resultados de busqueda precalculados simulados se quedan desactualizados cada hora (por ejemplo 98 de 100 resultados de busqueda precalculados son aun validos despues de una hora, despues de 10 horas, unicamente 0,9810 = 82 de los 100 resultados de busqueda precalculados son aun validos, y asi sucesivamente). Deberia observarse que este ejemplo de una tasa de validez del 2 % media no implica una tasa de validez homogenea para todos los resultados de busqueda precalculados simulados. En su lugar, la tasa de validez de resultados de busqueda precalculados simulados individual puede variar (como lo hace en realidad) y es unicamente de media alrededor del 2 %. Para destacar el desarrollo de la precision de los resultados de busqueda precalculados, las simulaciones empiezan desde una situation ideal correspondiendo todos los resultados de busqueda precalculados a sus datos de calculo subyacentes, es decir todos los resultados de busqueda precalculados son validos y precisos, respectivamente.
La Figura 3a muestra el desarrollo a largo plazo de la precision global de (todos) los resultados de busqueda precalculados almacenados en la plataforma de busqueda 4. Como se ha senalado anteriormente, la expresion "precision global” se refiere a la popularidad media de todos los resultados de busqueda precalculados simulados. El numero de ciclos de recalculo, que duran por ejemplo 20 minutos cada uno, se expone en el eje X. El porcentaje de resultados de busqueda precalculados validos se representa en el eje Y. La funcion 20 muestra el desarrollo de la validez de los resultados de busqueda precalculados cuando se emplea una estrategia de recalculo sin tratamiento previo, en concreto recalcular siempre aquellos resultados de busqueda precalculados que no se han recalculado para el periodo de tiempo mas largo (los denominados resultados de busqueda precalculados “mas antiguos”). Puede observarse que la precision global de los resultados de busqueda precalculados se reduce rapidamente con las primeras decenas de ciclos de recalculo. Cae por debajo del 75 % alrededor del ciclo de recalculo de orden 45 y a continuacion permanece de manera constante entre el 70 % y el 75 %. En comparacion con este enfoque de recalculo sin tratamiento previo, la estrategia basandose en la relacion ganancia-coste como se ha deducido en detalle anteriormente se muestra mediante el grafico 21 en la Figura 3a. La estrategia orientada a relacion coste- ganancia mostrada mediante la Figura 3a, no considera, sin embargo, la popularidad de los resultados de busqueda
1 -e~Xl1'
precalculados, es decir la estrategia de recalculo se basa, por ejemplo, en la formula ------------. Es facilmente
c,
evidente que el enfoque de relacion ganancia-coste no mejora significativamente la precision global de los resultados de busqueda precalculados. Durante las primeras decenas de ciclos de recalculo, la precision de los resultados de busqueda precalculados aun permanece por encima de la funcion 20, aunque de manera insignificante. Sin embargo, a partir de aproximadamente el ciclo de recalculo 70, la funcion 21 incluso cae por debajo de la funcion 20 y permanece unicamente ligeramente por encima del 70 % de precision a traves de todos los siguientes ciclos de recalculo. Por lo tanto, a largo plazo, el enfoque de relacion ganancia-coste realmente conduce a una validez reducida de los resultados de busqueda precalculados, en comparacion con la estrategia de recalculo sin tratamiento previo de recalcular siempre los resultados de busqueda precalculados “mas antiguos”.
La Figura 3b muestra los efectos de la estrategia orientada a relacion coste-ganancia en relacion con la estrategia de recalculo sin tratamiento previo si la estrategia orientada a relacion coste-ganancia tambien considera la
5
10
15
20
25
30
35
40
45
50
55
60
“popularidad” de los resultados de busqueda precalculados, es decir los resultados de busqueda precalculados mas populares se recalculan mas a menudo que los resultados de busqueda precalculados menos populares (que se refleja, como se ha descrito anteriormente, mediante la expresion “precision de usuario” que implica que la “experiencia del usuario” se mejora por lo que los resultados de busqueda precalculados que se solicitan mas a menudo que otros son mas importantes). Por lo tanto, la estrategia orientada a relacion coste-ganancia de la Figura
3b esta caracterizada, por ejemplo, por la formula p ------------. Como se indica mediante el grafico 23 de la Figura
' c,
3b, la estrategia de recalculo orientada a relacion ganancia-coste consigue en general una precision mejorada de los resultados de busqueda precalculados que el recalculo sin tratamiento previo (que se muestra mediante el grafico 22). Esta mejora, sin embargo, se provoca por el hecho de que la estrategia de recalculo sin tratamiento previo no tiene en cuenta, por definicion, la popularidad de los resultados de busqueda precalculados. Esto da como resultado la “subida y bajada” del grafico 22 debido a que recalcular el resultado de busqueda no popular conduce a una reduccion de la “precision de usuario”. Por lo tanto, la comparacion entre la estrategia sin tratamiento previo y la estrategia orientada a relacion coste-ganancia que considera la popularidad se desvfa hasta cierto punto. Sin embargo, como mostraremos adicionalmente a continuacion, puede extraerse a partir de la Figura 3b (en comparacion con la Figura 4a adicionalmente a continuacion) que la estrategia orientada a relacion coste-ganancia que incluye la popularidad como se visualiza mediante la Figura 3b produce una precision de usuario que esta aun en el intervalo general de la precision de usuario resultante de la estrategia sin tratamiento previo.
Pueden extraerse conclusiones similares a partir de la Figura 3c que muestra una distribucion de precision acumulativa de todos los resultados de busqueda precalculados almacenados en la plataforma de busqueda 4 en el final de la simulacion. El eje X indica el porcentaje de resultados de busqueda precalculados, mientras que el eje Y indica de nuevo el porcentaje de resultados de busqueda precalculados que es valido. De nuevo, la lmea 24 indica la estrategia “recalcular el mas antiguo en primer lugar” sin tratamiento previo, mientras que el grafico 25 muestra la estrategia basandose en la relacion ganancia-coste (es decir un valor de 40 % en el eje X y 0,7 en el eje Y indica que el 40 % de los resultados de busqueda precalculados tienen una precision de menos del 70 %). Puede tomarse a partir de la Figura 3c que la estrategia de recalculo orientada a relacion ganancia-coste consigue algunas mejoras (en comparacion con la estrategia sin tratamiento previo) para la mayona de los resultados de busqueda precalculados imprecisos. Con esa estrategia, los mas imprecisos alrededor del 18 % de todos los resultados de busqueda precalculados aun tienen una precision alrededor del 50 %, mientras que la estrategia sin tratamiento previo conduce a significativamente los resultados de busqueda precalculados mas imprecisos del 18 %, aproximadamente el 10 % de los resultados de busqueda precalculados incluso tienen una precision por debajo del 40 %. Por otra parte, la estrategia de recalculo sin tratamiento previo parece producir resultados superiores para el otro 80 % mas preciso de los resultados de busqueda precalculados, como puede inferirse del progreso de las curvas 24 y 25 al lado de la derecha de la Figura 3c.
Por lo tanto, las Figuras 3a, 3b y 3c transportan la idea de que la estrategia de recalculo orientada a relacion ganancia-coste no es optima. Al contrario, da como resultado en general una precision media reducida de resultados de busqueda precalculados, en comparacion con la estrategia sin tratamiento previo para recalcular los resultados de busqueda precalculados “mas antiguos”, cuando se considera el desarrollo a largo plazo. Por lo tanto, seleccionar resultados de busqueda precalculados para recalculo empleando la relacion ganancia-coste aparentemente constituye una optimizacion a corto plazo unicamente. Los inventores se han dado cuenta que esta estrategia gasta demasiados recursos informaticos en los resultados de busqueda precalculados muy volatiles, es decir los resultados de busqueda precalculados que se hacen invalidos mas a menudo que otros. Es el objetivo de esta estrategia mantener estos resultados de busqueda precalculados volatiles a un nivel de precision aceptable. En otras palabras, con referencia a la Figura 3c, la estrategia orientada a relacion ganancia-coste se centra en el lado a la izquierda de la Figura 3c y recalcula el 18 % o el 20 % de los resultados de busqueda precalculados con la minima precision mas a menudo que el otro 80 % con el efecto de que el 18 % o el 20 % permanece a un nivel de precision relativamente moderado, mientras que el otro 80 % es virtualmente insignificante. Por otra parte, el algoritmo sin tratamiento previo deja el 18 % o el 20 % de los resultados de busqueda precalculados con la minima precision en un “mal estado” (es decir con muy poca precision hasta del 0 % al 45 %), pero consigue un mejor resultado medio para el otro 80 % (Figura 3c) y a largo plazo (Figura 3a).
Por lo tanto, se busca una estrategia de recalculo que proporcione precision superior de resultados de busqueda precalculados a largo plazo.
Para este fin, el controlador de recalculo 2 asigna un indicador de recalculo a cualquiera de los resultados de busqueda precalculados almacenados en la base de datos 4. Este indicador de recalculo indica la prioridad para el recalculo. El indicador de recalculo se forma de manera particular, teniendo en cuenta en general los siguientes factores:
- la probabilidad de que el resultado de busqueda precalculado i sea valido o desactualizado, es decir la “precision esperada” como se ha introducido anteriormente;
- opcionalmente, una medida de frecuencia de acceso que indica una frecuencia de solicitud desde la base de
5
10
15
20
25
30
35
40
45
50
55
datos 4, es decir la “popularidad” como se ha introducido anteriormente;
- una frecuencia de recalculo; y
- una medida para los recursos de calculo necesarios para el recalculo.
Mas espedficamente, en algunas realizaciones, el indicador de recalculo para un resultado de busqueda precalculado i particular se genera ponderando la probabilidad de que el resultado de busqueda precalculado i sea aun valido (“precision esperada”) con la medida de frecuencia de acceso del resultado de busqueda precalculado i que indica la frecuencia del resultado de busqueda precalculado i que se solicita desde la base de datos 4 (“popularidad”) y multiplicando la frecuencia de recalculo del resultado de busqueda i con la medida para los recursos de calculo necesarios para recalcular el resultado de busqueda precalculado i. En algunas realizaciones, ambos productos se dividen para formar el indicador de recalculo.
Utilizando el indicador de recalculo asociado con cualquiera de los resultados de busqueda precalculados almacenados en la base de datos 4, el controlador de recalculo 2 selecciona estos resultados de busqueda precalculados para recalculo que tienen un indicador de recalculo que indica la necesidad mas alta para recalculo. La cantidad de resultados de busqueda precalculados recalculados por la plataforma de calculo recalculados en un periodo de tiempo dado, por ejemplo 20 minutos (tambien denominado como un “ciclo de recalculo”), esta limitada por los recursos de calculo disponibles de la plataforma de calculo 3 para el recalculo del periodo de tiempo. Despues de haber identificado los resultados de busqueda precalculados que son mas cnticos de recalcular, el controlador de recalculo 2 emite una orden de recalculo a la plataforma de calculo 3 para recalcularlos en el siguiente ciclo de recalculo. La plataforma de calculo 3 ejecuta esta orden en una manera orientada a lotes y reenvfa los resultados de busqueda recalculados a la plataforma de busqueda 4.
En algunas realizaciones, la plataforma de calculo devuelve tambien el resultado del recalculo de vuelta al controlador de recalculo 2 al mismo tiempo. Esto posibilita que el controlador de recalculo 2 evalue continuamente el indicador de recalculo de los resultados de busqueda precalculados ya que estan almacenados actualmente en la base de datos 4.
Un ejemplo particular de un indicador de recalculo se presenta ahora en mas detalle y en una manera mas formal. Este ejemplo parte de la relacion ganancia-coste que se ha definido anteriormente como ai
despreciando la precision inicial ai, como
Recalcular un resultado de busqueda precalculado particular i produce un aumento en terminos de aumento de precision de usuario, en concreto la ganancia (j. =
Ptot
Si este resultado de busqueda precalculado i particular se recalcula mas a menudo que otros resultados de busqueda precalculados i, por ejemplo, dos veces a menudo, puede considerarse que el recalculo de i es dos veces mas caro que el recalculo de i (asumiendo que un unico recalculo de i y un unico recalculo de i consumen la misma cantidad de recursos de calculo de la plataforma de calculo 3 - que no es necesariamente el caso como se explica adicionalmente a continuacion). El gasto de recalcular el resultado de busqueda precalculado i en terminos del numero relativo de recalculos puede definirse por lo tanto como:
Gasto de calculo, = Ci x fi
donde fi indica una frecuencia de refresco del resultado de busqueda precalculado i.
Por lo tanto, en lugar de recalcular los resultados de busqueda precalculados con la ganancia inmediata mas alta, es decir la relacion ganancia-coste como se ha presentado anteriormente, se seleccionan los resultados de busqueda precalculados con la relacion ganancia-gasto mas alta para recalculo, es decir con la mas alta
G,
Por razones de brevedad, estos resultados de busqueda precalculados de recalculo
Gasto_de_calculoj
usando este criterio de recalculo se denominan brevemente como estrategia “orientada a frecuencia de recalculo”. Una dificultad de este enfoque es que la frecuencia de recalculo fi es en general un valor desconocido. Sin embargo,
5
10
15
20
25
30
35
40
45
por ejemplo se aproxima por rr-
precalculado i.
donde t indica el tiempo desde el ultimo recalculo del resultado de busqueda
Los efectos de la estrategia orientada a frecuencia de recalculo presentados en el presente documento, tal como el ejemplo particular del ejemplo particular del indicador de recalculo anteriormente dado, se visualizan mediante las Figuras 4a y 4b.
La Figura 4a muestra la precision de usuario conseguida por la estrategia orientada a frecuencia de recalculo (indicada por el grafico 32) en comparacion con los resultados producidos por la estrategia sin tratamiento previo de recalcular siempre los resultados de busqueda precalculados mas antiguos (indicados por el grafico 30) y la estrategia orientada a relacion coste-ganancia que incluye la consideracion de la “popularidad” como se ha explicado
1 - acc1/
anteriormente (indicada por el grafico 31), por ejemplo dado por pt X---------------x t(. Puede tomarse a partir de
estos graficos 30, 31, 32 que la precision del usuario de los resultados de busqueda precalculados almacenados en la plataforma de busqueda 4 se aumenta en general, a largo plazo, en aproximadamente el 7 % en comparacion con la estrategia sin tratamiento previo para recalcular siempre los resultados de busqueda precalculados mas antiguos y en aproximadamente el 5 % en comparacion con la estrategia orientada a relacion coste-ganancia.
Por otra parte, tambien se mejora la precision global por una estrategia orientada a frecuencia de recalculo que no tiene en cuenta la “popularidad” de los resultados de busqueda precalculados, como puede inferirse a partir de la Figura 4b. La Figura 4b esta basada en la Figura 3a como se ha analizado anteriormente y visualiza adicionalmente el efecto de la estrategia orientada a frecuencia de recalculo que esta basada en un indicador de recalculo de por
ejemplo * ~acc( y ( La Figura 4b demuestra que la estrategia orientada a frecuencia de recalculo produce una
c, *’
precision global significativamente mejorada en comparacion con la estrategia orientada a relacion ganancia-coste (tambien empleada sin considerar la popularidad) y tambien una precision global de los resultados de busqueda precalculados anteriormente que se consiguieron por la estrategia de recalculo sin tratamiento previo de recalcular siempre los resultados de busqueda precalculados mas antiguos.
Opcionalmente, en algunas realizaciones, el indicador de recalculo se basa adicionalmente en el valor de precision inicial ai que indica la precision esperada del resultado de busqueda precalculado i en el momento de su recalculo, como se ha introducido adicionalmente anteriormente. En estas realizaciones, el indicador de recalculo se define,
i■ *. __ tr .ii nrr^
por ejemplo, por
Variaciones adicionales para definir el indicador de recalculo mediante los mismos principios estan dentro del alcance de la presente invention. Por ejemplo, el indicador de recalculo puede proporcionarse en una manera mas generica, con un modelo probabilistic que proporciona la probabilidad de que el resultado de busqueda precalculado i sea invalido como Pinvaiid(i), independientemente de como se calcule o estime PmvaNd(i). En este ejemplo mas general, el indicador de recalculo se define por ejemplo como
Pi
Plot
Como se ha explicado anteriormente, algunas realizaciones pueden dirigirse a optimizar la precision global sin tener en cuenta la perspectiva del usuario final, es decir la “popularidad” de los resultados de busqueda precalculados. En estas realizaciones, el indicador de recalculo se proporciona por jPfnyfl^^(e) X — .Como se ha descrito con
mwu ci
10
15
20
25
30
35
40
respecto a las realizaciones anteriores, Pinvaiid(i) puede proporcionarse por Pinvaiid(i) = (1-e'xi(i). En alguna realization, un factor de precision inicial se tiene en cuenta adicionalmente de modo que Pinvaiid (i) = ai(1-e'^fi).
Otras realizaciones pueden despreciar los recursos de recalculo requeridos para recalcular un resultado de busqueda precalculado. En particular, esto se aplica a los entornos en los que cada recalculo de cualquier resultado de busqueda precalculado requiere la misma cantidad de recursos de calculo.
Algunas realizaciones presentan un indicador de recalculo perfeccionado adicional dirigido a una estrategia de recalculo para optimization a largo plazo de la precision de usuario que implementa la estrategia orientada a frecuencia de recalculo como se ha deducido anteriormente. Este indicador de recalculo perfeccionado corresponde a la siguiente expresion:
Esto se deriva matematicamente como sigue:
Un conjunto de frecuencias de recalculo se define {fi}iedd de un resultado de busqueda precalculado i. Se definen
'T 1
periodos correspondientes entre recalculo del resultado de busqueda precalculado i como J i — ~.
Si se aplica la frecuencia f al resultado de busqueda precalculado j, entonces la precision media de j se proporciona mediante
La precision de usuario media se define entonces como
Si los recursos de calculo disponibles para un periodo de tiempo son iguales para cualquier periodo de tiempo entonces:
Ixiedd cifi = R donde R son los recursos de calculo asignados por periodo de tiempo y Xi indica los resultados de busqueda precalculados. Sustituir la frecuencia de recalculo fi con los periodos de tiempo Ti entre los recalculos, se deduce que
^erfd j-' —
El conjunto de 1 i puede indicarse como H.
Anadir un multiplicador de Lagrange da como resultado una definition de
En el conjunto de H, se aplica que 1(0, (Tj)xiedd) = p^,dn_de_usuano _
Por lo tanto, la precision de usuario e l tienen el mismo maximo en H. Y sucede que el maximo de l(0, (Tj)xiedd) se da en H puesto l tiene su maximo para
5
10
15
20
25
30
35
Por lo tanto, hallando el maximo de
en H es equivalente a hallar el maximo de l
IL-0
El maximo se halla si
dJi
es decir
La estrategia de recalculo que optimiza el indicador de precision de usuario puede a continuation emplearse como sigue: los resultados de busqueda precalculados con la mas alta como se define en este punto se han de
recalcular en primer lugar para tener la <Fi
Es interesante comparar este indicador de recalculo perfeccionado con el indicador de recalculo anterior descrito
para la estrategia orientada a frecuencia de recalculo anterior, por ejemplo pi espedficamente anteriormente:
x^que se ha introducido
Esto significa que para frecuencias de recalculo no demasiado bajas que son de una cantidad significativa (es decir el periodo de tiempo desde el ultimo recalculo no es demasiado largo), el indicador de recalculo introducido adicionalmente anteriormente es una buena aproximacion del indicador de recalculo presentado adicionalmente en este punto.
Adicionalmente, si se vuelve a introducir la precision inicial, el indicador de recalculo perfeccionado se proporciona por
5
10
15
20
25
30
35
40
45
La estrategia orientada a frecuencia de recalculo se ha analizado hasta ahora asumiendo que el recalculo para cualquier resultado de busqueda precalculado por la plataforma de calculo 3 requiere sustancialmente la misma cantidad de recursos de calculo independientemente de si los resultados de busqueda precalculados se calculan por separado, junto con resultados de busqueda adyacentes (por ejemplo mismo origen, destino y fechas adyacentes) o cualquier otro resultado de busqueda no adyacente. En la practica, sin embargo, esta suposicion no puede hacerse en general puesto que, por ejemplo, ciertos resultados de busqueda precalculados y/o sus datos de calculo subyacentes correspondientes estan interrelacionados entre st Recalcular tales resultados de busqueda precalculados interrelacionados juntos (es decir, en el mismo ciclo de recalculo) podna incluir efectos sinergicos y puede ser por lo tanto mas eficaz que recalcularlos por separado. Por lo tanto, cuando se recalculan resultados de busqueda precalculados interrelacionados junto con los costes de calculo por resultado de busqueda precalculado individual es en general menor que el coste de calculo por resultado de busqueda precalculado individual requerido si se recalculan por separado, es decir en diferentes ciclos de recalculo. La estrategia orientada a frecuencia de recalculo anterior se ha deducido sin tener en cuenta tales efectos sinergicos de recalcular ciertos resultados de busqueda precalculados interrelacionados como un paquete total en un unico ciclo de recalculo.
Para fomentar el entendimiento de los resultados de busqueda precalculados interrelacionados, se proporciona a continuacion un ejemplo particular. Este ejemplo se origina de una aplicacion particular del entorno de base de datos distribuido 1 en la industria de los viajes, es decir la base de datos 4 mantiene resultados de busqueda precalculados relacionados con viajes y los hace disponibles para usuarios finales. El siguiente ejemplo, sin embargo, no se asume para limitar el problema de resultados de busqueda precalculados interrelacionados tales como una aplicacion de datos de viaje. En su lugar, estan presentes condiciones similares o analogas que permiten un recalculo sinergico y por lo tanto mas eficaz de resultados de busqueda precalculados interrelacionados en sistemas de base de datos independientes del contenido de conjuntos de datos precalculados. En general, puede decirse que cualquier proceso de recalculo de resultados de busqueda precalculados tendra por objetivo una mutualizacion de subtareas de recalculo que se han de ejecutar comunmente para cualquier resultado de busqueda precalculado de un conjunto de resultados de busqueda precalculados. Por lo tanto, recalcular resultados de busqueda precalculados juntos que tienen tal tarea de recalculo en comun, es en general favorable sobre recalcular solicitudes de busqueda precalculadas juntas que no comparten tareas de recalculo similares.
En una realizacion particular, las solicitudes de busqueda precalculadas son registros de datos de vuelo de ida y vuelta, especificando cada uno un origen y destino de viaje y una fecha de salida y llegada (o, como alternativa a la fecha de llegada, una duracion de permanencia relacionada con la fecha de salida). En este ejemplo, la base de datos 4 contiene recomendaciones de viaje de ida y vuelta precalculadas para que se cubra cualquier par origen- destino y cualquier par fecha-salida-llegada. La Tabla 1 indica un pequeno fragmento a partir de las recomendaciones de viaje precalculadas mantenidas en la base de datos 4, siendo el fragmento recomendaciones de viaje para el par de ciudades Niza-Boston (“NCE-BOS”) y para fechas de salida del 1 de julio al 5 de julio con duracion de permanencia maxima de cinco dfas, la abreviatura “pc-frx” significa “numero de recomendacion de viaje precalculado x”.
Tabla 1
- NCE-BOS
- Salida 1 JUL Salida 2 JUL Salida 3 JUL Salida 4 JUL Salida 4 JUL
- Recuperado 2 JUL
- pc-fr 0 -- -- -- --
- Recuperado 3 JUL
- pc-fr 1 pc-fr 5 -- -- --
- Recuperado 4 JUL
- pc-fr 2 pc-fr 6 pc-fr 10 -- --
- Recuperado 5 JUL
- pc-fr 3 pc-fr 7 pc-fr 11 pc-fr 15 --
- Recuperado 6 JUL
- pc-fr 4 pc-fr 8 pc-fr 12 pc-fr 16 pc-fr 20
- Recuperado 7 JUL
- -- pc-fr 9 pc-fr 13 pc-fr 17 pc-fr 21
- Recuperado 8 JUL
- -- -- pc-fr 14 pc-fr 18 pc-fr 22
- Recuperado 9 JUL
- -- -- -- pc-fr 19 pc-fr 23
- Recuperado 10 JUL
- -- -- -- -- pc-fr 24
El recalculo de una recomendacion de viaje precalculada particular, por ejemplo pc-fr 9 con relacion a una fecha de salida del 2 de julio y una fecha de retorno del 7 de julio, se realiza de manera aproximada por la plataforma de calculo 3 mediante las siguientes subtareas:
1: recuperar las posibles rutas geograficas entre Niza y Boston que incluyen paradas/intercambios intermedios, por ejemplo: Niza-Pans-Boston, Niza-Londres-Boston, Niza-Nueva York-Boston, Niza-Pans-Nueva York-Boston, etc.
5
10
15
20
25
30
35
40
2: hallar todos los posibles vueltos en todas las rutas recuperadas por la actividad 1: por ejemplo Air France 123 y Emirates 7123 en el tramo Niza-Paris, Air France 456 y American Airlines 564 y United Airlines 125 en el tramo Pans-Nueva York, etc.
a. esta actividad se realiza para la parte de ida del viaje en la fecha de salida del 2 de julio (subtarea 2a) y
b. para la parte de retorno del viaje en la fecha de retorno del 7 de julio (subtarea 2b) puesto que los vuelos generalmente no estan disponibles todos los dfas.
3: comprobar la disponibilidad en todos los vuelos determinados por las actividades 2a y 2b, es decir el 2 de julio para la parte de salida del recorrido (= subtarea 3a) y el 7 de julio para la parte de retorno del recorrido (= subtarea 3b).
4: recuperar tarifas que pueden aplicarse a estos vuelos en estas fechas. Una tarifa tfpica es la regla que produce un precio para todo el recorrido. Sin embargo, las tarifas pueden ser tambien validas para la parte de salida y para la de entrada del recorrido en sus fechas respectivas caso en el que pueden recuperarse una vez para la parte de salida (= subtarea 4a) y una vez para la parte de retorno del recorrido (= subtarea 4b). Las tarifas tienen restricciones en las fechas de salida, en las fechas de retorno, en los en los que se aplican y muchas otras. Las tarifas pueden combinarse juntas, descontarse en algunos casos espedficos y asf sucesivamente.
5: la mejor solucion, es decir la relacion con el mejor precio, se mantiene, se devuelve por la plataforma de calculo 3 y se almacena por la base de datos 4 como pc-fr 9.
Estas subtareas se realizan de una forma similar para cualquier recomendacion de viaje precalculada. Cuando se realiza el recalculo para todo el conjunto de recomendaciones de viaje precalculadas (pc-fr 0 a pc-fr 24), pueden mutualizarse varias subtareas de recalculo. Ejecutar la subtarea 1 es necesario unicamente una vez para todo el conjunto de recomendaciones de viaje precalculadas pc-fr 0 a pc-fr 24 puesto que todas estas recomendaciones de viaje precalculadas pertenecen al mismo par de ciudades origen-destino Niza-Boston. Por lo tanto, la subtarea 1 no necesita rehacer para cada resultado de busqueda precalculado pc-fr 0 a pc-fr 24.
Las subtareas 2a, 3a y la subtarea 4 son, por otra parte, espedficas a una fecha de salida. Pueden por lo tanto reutilizarse para todas las recomendaciones de viaje precalculadas relacionadas con una y la misma fecha de salida. La Tabla 2 indica esto para las recomendaciones de viaje precalculadas pc-fr 5 a pc-fr 9 relacionadas con la fecha de salida del 2 de julio:
Tabla 2
- NCE-BOS
- Salida 1 JUL Salida 2 JUL Salida 3 JUL Salida 4 JUL Salida 4 JUL
- Recuperado 2 JUL
- pc-fr 0 -- -- -- --
- Recuperado 3 JUL
- pc-fr 1 Subtareas comunes: 2a, 3a, 4a -- -- --
- Recuperado 4 JUL
- pc-fr 2 pc-fr 10 -- --
- Recuperado 5 JUL
- pc-fr 3 pc-fr 11 pc-fr 15 --
- Recuperado 6 JUL
- pc-fr 4 pc-fr 12 pc-fr 16 pc-fr 20
- Recuperado 7 JUL
- -- pc-fr 13 pc-fr 17 pc-fr 21
- Recuperado 8 JUL
- -- -- pc-fr 14 pc-fr 18 pc-fr 22
- Recuperado 9 JUL
- -- -- -- pc-fr 19 pc-fr 23
- Recuperado 10 JUL
- -- -- -- -- pc-fr 24
Analogamente, las subtareas 2b, 3b y 4b son espedficas a una fecha de retorno, y por lo tanto, se realizan comunmente para recomendaciones de viaje precalculadas relacionadas con una y la misma fecha de retorno. Esto se ilustra mediante la tabla 3 para las recomendaciones de viaje precalculadas pc-fr 9, pc-fr 13, pc-fr 17 y pc-fr 21, todas las cuales hacen referencia a la fecha de retorno del 7 de julio:
Tabla 3
- NCE-BOS
- Salida 1 JUL Salida 2 JUL Salida 3 JUL Salida 4 JUL Salida 4 JUL
- Recuperado 2 JUL
- pc-fr 0 -- -- -- --
- Recuperado 3 JUL
- pc-fr 1 pc-fr 5 -- -- --
- Recuperado 4 JUL
- pc-fr 2 pc-fr 6 pc-fr 10 -- --
5
10
15
20
25
30
35
40
45
50
- NCE-BOS
- Salida 1 JUL Salida 2 JUL Salida 3 JUL Salida 4 JUL Salida 4 JUL
- Recuperado 5 JUL
- pc-fr 3 pc-fr 7 pc-fr 11 pc-fr 15 --
- Recuperado 6 JUL
- pc-fr 4 pc-fr 8 pc-fr 12 pc-fr 16 pc-fr 20
- Recuperado 7 JUL
- -- Subtareas comunes: 2b, 3b, 4b
- Recuperado 8 JUL
- -- -- pc-fr 14 pc-fr 18 pc-fr 22
- Recuperado 9 JUL
- -- -- -- pc-fr 19 pc-fr 23
- Recuperado 10 JUL
- -- -- -- -- pc-fr 24
Por lo tanto, en resumen, unicamente una parte de la subtarea 4, en concreto recuperar tales tarifas que no son validas para la parte de salida total del viaje y para la parte de retorno total del viaje, pero son espedficas para subconjuntos o recomendaciones de viaje particulares, tienen que realizarse por separado para cada recomendacion de viaje precalculada, aunque pueden realizarse otras subtareas en comun para todas las recomendaciones de viaje precalculadas relacionadas con el mismo par de ciudades origen-destino (se cumple para la subtarea 1) o al menos para las recomendaciones de viaje precalculadas relacionadas con la misma fecha de salida (subtareas 2a, 3a y 4a) o a la misma fecha de retorno (subtareas 2b, 3b y 4b). En consecuencia, cuantas mas recomendaciones de viaje precalculadas esten relacionadas con un par de ciudades origen-destino y cuantas mas recomendaciones de viaje precalculadas esten relacionadas a una fecha de salida y fecha de retorno, respectivamente, mas recursos de calculo pueden liberarse mutualizando estas subtareas a traves de las respectivas solicitudes de vuelo precalculadas.
Esta relacion entre aumentar los efectos sinergicos y aumentar el numero de recomendaciones de viaje precalculadas con relacion a un par de ciudades origen-destino y a una fecha de salida o de retorno se visualiza tambien mediante la Figura 5. La Figura 5 muestra seis graficos de conjuntos de recomendacion de viaje precalculados ejemplares, perteneciendo cada conjunto a un par de ciudades origen-destino. Estando asociadas en numero decreciente de recomendaciones de viaje precalculadas con un par de ciudades, el grafico 36 se refiere al par de ciudades Nueva York-Bufalo, el grafico 37 a Nueva York-Minsk, el grafico 38 a Nueva York-Hilo en Hawai, el grafico 39 a Nueva York-Bilbao, el grafico 40 a Nueva York-Male y, finalmente, el grafico 41 a Nueva York-Mauricio. El eje X del diagrama de la Figura 5 indica el numero de recomendaciones de viaje precalculadas, mientras que el eje Y representa una medida de recursos de recalculo necesarios para realizar un recalculo de recomendaciones de viaje precalculadas, en concreto tiempo de CPU.
Por otra parte, la Figura 5 muestra que el recalculo de algunos conjuntos de recomendaciones de viaje precalculadas requieren mas recursos de calculo que otros. Por ejemplo, recalcular recomendaciones de viaje precalculadas a partir del conjunto 41 que incluye recomendaciones de viaje precalculadas para vuelos entre Nueva York y Mauricio es en general mas costoso que recalcular recomendaciones de viaje precalculadas a partir del conjunto 36 que incluye recomendaciones de viaje precalculadas para vuelos entre Nueva York y Bufalo. Esta diferencia general de la cantidad de recursos de calculo necesaria para recalcular recomendaciones de viaje precalculadas se tiene en cuenta incluyendo los costes de recalculo C en el indicador de recalculo como ya se ha explicado en detalle anteriormente. Sin embargo, los graficos de la Figura 5 indican tambien que los costes de recalculo vanan con el numero de recomendaciones de viaje precalculadas de un conjunto que se esta recalculando. En general, cuantas mas recomendaciones de viaje precalculadas relacionadas con un conjunto se recalculan juntas, menos recursos de calculo son necesarios para recalcular cada recomendacion de viaje precalculada. Por ejemplo, el grafico 36 indica que recalcular 32 recomendaciones de viaje precalculadas del conjunto Nueva York- Bufalo requiere aproximadamente 1000 ms de CPU, es decir aproximadamente 31,25 ms de CPU por recomendacion de viaje precalculada, mientras que recalcular 170 recomendaciones de viaje precalculadas requiere aproximadamente 5000 ms de CPU, es decir unicamente aproximadamente 29,4 ms de CPU por recomendacion de viaje precalculada. Con respecto al grafico 38 relacionado con el par de ciudades Nueva York-Hilo, recalcular 35 recomendaciones de viaje precalculadas a partir de ese conjunto requiere aproximadamente 10.000 ms de CPU, es decir 286 ms de CPU por recomendacion de viaje precalculada, mientras que recalcular 140 recomendaciones de viaje precalculadas a partir de ese conjunto requiere aproximadamente 25.000 ms de CPU, es decir unicamente 178,5 ms de CPU por recomendacion de viaje precalculada. Por lo tanto, es evidente que las recomendaciones de viaje precalculadas que pertenecen a un par de ciudades origen-destino estan interrelacionadas en terminos de recursos informaticos requeridos para su recalculo como se ha explicado anteriormente.
En otras palabras, los recursos de calculo necesarios para recalcular un resultado de busqueda precalculado i generalmente dependen de si se recalculan o no otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i durante el mismo ciclo de calculo. Por lo tanto, los recursos de calculo para recalcular los resultados de busqueda precalculados no son estaticos, sino que vanan con la seleccion del conjunto de resultados de busqueda precalculados para que se recalculen durante el ciclo de calculo.
5
10
15
20
25
30
35
40
45
50
55
60
65
Estos recursos de calculo que vanan con el numero de resultados de busqueda precalculados interrelacionados que se recalculan juntos se tienen en cuenta por la estrategia de recalculo empleada por algunas realizaciones como sigue:
En general, los recursos de calculo necesarios para recalcular los resultados de busqueda precalculados a recalcular se estiman dinamicamente por el controlador de recalculo 2 mientras se seleccionan los resultados de busqueda precalculados a recalcular durante el siguiente ciclo de calculo. Esta estimacion depende de que otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se seleccionen para el recalculo durante el siguiente ciclo de recalculo. En algunas realizaciones, esto se consigue mediante una estimacion perfeccionada de manera iterativa de los recursos de calculo necesarios para recalcular los resultados de busqueda precalculados a recalcular mientras se determina el subconjunto de los resultados de busqueda precalculados a recalcular realmente. Esta estimacion iterativa de los recursos de calculo variables incluye las siguientes actividades:
a) para cualquier resultado de busqueda precalculado i, los recursos de calculo o necesarios para recalcular el resultado de busqueda precalculado i se inicializan con un primer valor aproximado. Este valor asume que el recalculo del resultado de busqueda precalculado i es independiente del calculo de otros resultados de busqueda precalculados seleccionados para recalculo durante el siguiente ciclo de recalculo.
b) una porcion de los resultados de busqueda precalculados para recalculo se selecciona a continuacion. Esta seleccion se hace, por ejemplo, de acuerdo con el indicador de recalculo como ya se ha explicado anteriormente. La porcion seleccionada, sin embargo, no ha agotado ya los recursos de calculo disponibles completos de la plataforma de calculo 3 al 100 %, sino que unicamente consume una parte de los recursos de calculo disponibles para el siguiente ciclo de recalculo. Por ejemplo, en algunas realizaciones, la porcion seleccionada unicamente requiere un porcentaje dado de los recursos de calculo disponibles de la plataforma de calculo 3 para recalculo en el siguiente ciclo de recalculo. En las realizaciones, se usan porcentajes espedficos como el porcentaje dado, tales como 1 %, 2 %, 5 %, 10 %, 20 %, 25 %, 30 %, 40 %, 50 % o 60 % o valores mas altos por debajo del 100 %. En cualquier caso, la seleccion de esta porcion de resultados de busqueda precalculados a recalcular en el siguiente ciclo de recalculo es basandose en los valores actuales para los recursos de calculo necesarios para recalcular la porcion de resultados de busqueda precalculados, es decir en la primera iteracion de seleccion basandose en los valores de la actividad de inicializacion a), es decir sin tener en cuenta ninguna interrelacion o dependencia entre los resultados de busqueda precalculados a recalcular.
c) para cualquier resultado de busqueda precalculado i (incluyendo tanto los resultados de busqueda precalculados seleccionados por la actividad b) anterior como los resultados de busqueda precalculados que no se han seleccionado por la actividad b)), el controlador de recalculo 2 vuelve a evaluar los recursos de calculo o necesarios para recalcular el resultado de busqueda precalculado i teniendo en cuenta que resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se han seleccionado para recalculo en la actividad c). Para los resultados de busqueda precalculados que ya se han seleccionado por la actividad b), esta reevaluacion proporciona valores perfeccionados de o y en total un valor perfeccionado del porcentaje de los recursos de calculo disponibles de la plataforma de calculo para recalculo en el siguiente ciclo de recalculo necesario para recalcular los resultados de busqueda precalculados seleccionados para recalculo en el siguiente ciclo de calculo hasta ahora. Hasta el punto que los resultados de busqueda precalculados interrelacionados se hayan seleccionado en la iteracion actual, el valor perfeccionado de Z o de los resultados de busqueda precalculados ya seleccionados es generalmente menor que el valor (teorico) de Z o de los resultados de busqueda precalculados ya seleccionados despreciando su interrelacion y asumiendo un recalculo del precalculo ya seleccionado sin recalcular ningun resultado de busqueda precalculado interrelacionado. La reevaluacion de los resultados de busqueda precalculados que no se han seleccionado (aun) para recalculo es detectable puesto que son todos candidatos para una seleccion en la siguiente iteracion o iteraciones. Si uno o mas resultados de busqueda precalculados interrelacionados a resultados de busqueda precalculados no seleccionados aun ha/han sido seleccionados en la actividad anterior b), los recursos de calculo necesarios para recalcular estos resultados de busqueda precalculados no seleccionados aun con resultado o resultados de busqueda precalculado interrelacionados son en general inferiores (y por lo tanto en general se han de reducir por esta actividad c)) que los recursos de calculo requeridos si no se selecciono resultado de busqueda precalculado interrelacionado para el precalculo.
d) el controlador de recalculo 2 hace referencia de vuelta a la actividad b) si se agota menos del 100 % de los recursos de calculo totales disponibles de la plataforma de calculo para recalculo en el siguiente ciclo de recalculo.
En general, este enfoque es independiente de la manera espedfica de como se calcula el indicador de recalculo o de que clase de estrategia de recalculo se emplee.
5
10
15
20
25
30
35
40
45
50
55
60
65
La Figura 6 muestra un ejemplo relacionado con viajes de un entorno de base de datos 1 que representa detalles adicionales en comparacion con la Figura 1. El controlador de recalculo 2 mantiene una representacion de los resultados de busqueda precalculados almacenados por la plataforma de busqueda 4, por ejemplo, en la base de datos 6. El controlador de recalculo 2 controla el recalculo de los resultados de busqueda precalculados empleando el indicador de recalculo como se ha descrito en detalle anteriormente. Los resultados de busqueda precalculados a recalcular se ordenan para recalcularse por ordenes de calculo que el controlador de recalculo 2 transmite a la plataforma de calculo 3. La plataforma de calculo recalcula los respectivos resultados de busqueda precalculados. Como se representa mediante el entorno ejemplar 1 de la Figura 6, el recalculo realizado por la re-plataforma de calculo 3 puede ser basandose en datos subyacentes tales como tarifas mantenidas en una base de datos de tarifas 7, horarios de transporte mantenidos en la base de datos de horarios 8 y datos de disponibilidad de transporte mantenidos en la base de datos de disponibilidad 9. La plataforma de recalculo 3 envfa los resultados de busqueda recalculados a la plataforma de busqueda 4 y los devuelve al controlador de recalculo 2. Como se ha senalado anteriormente, el controlador de recalculo 2 puede estar integrado con la plataforma de calculo 3 y/o la plataforma de busqueda 4. Los resultados de busqueda precalculados actualizados de esta manera se solicitan por una aplicacion de busqueda 5 desde la plataforma de busqueda 6 por ejemplo usando interfaces de servicio web.
Ahora haciendo referencia a la Figura 7, algunas realizaciones emplean una estructura modular del controlador de recalculo 2 para conseguir los metodos anteriormente descritos. Algunas de estas partes ya se han descrito en la solicitud internacional no publicada PCT/EP2013/002390 a la que se hace referencia para una explicacion mas detallada de la estructura del controlador de recalculo. Algunos detalles mas con respecto a la logica interna del controlador de recalculo y sus relaciones se elaboran en este punto. Como se muestra mediante la Figura 7, el controlador de recalculo 2 incluye de manera ejemplar los siguientes componentes:
- el componente de representacion de datos interno 10: este componente proporciona herramientas para crear, almacenar, actualizar y acceder a grandes matrices que representan los resultados de busqueda precalculados almacenados en la base de datos 4. La funcion principal del componente de representacion de datos interno 10 es proporcionar un “espejo” de los resultados de busqueda precalculados almacenados en la base de datos 4 que sirve como la base para analizar los resultados de busqueda precalculados para decidir cuales de ellos se han de recalcular en el siguiente ciclo de recalculo. Con mayor precision, el componente de representacion de datos interno 10 no mantiene una copia de uno a uno de los resultados de busqueda precalculados como se almacenan en la base de datos 4, sino una representacion apropiada que no tiene que incluir todos los detalles de los resultados de busqueda precalculados como se almacenan en la base de datos 4, pero, por otra parte, incluye datos de control adicionales asociados con los resultados de busqueda precalculados tal como los tiempos de su ultimo recalculo y, en particular, el indicador de recalculo.
- gestor de entrada 11: este componente introduce datos desde ongenes heterogeneos tales como una base de datos u origen de datos de tasa de validez, una base de datos u origen de datos de popularidad, una base de datos u origen de datos de precision inicial, una base de datos u origen de datos de costes y/u ongenes que indican eventos en tiempo real que potencialmente influyen la validez de los resultados de busqueda precalculados. Estos datos se usan, por ejemplo, para generar y actualizar los indicadores de recalculos asociados con los resultados de busqueda precalculados como se ha explicado en detalle anteriormente. El gestor de entrada 11 convierte los datos entrantes en los formatos de datos apropiados y actualiza matrices correspondientes que representan los resultados de busqueda precalculados como se almacenan por el componente de representacion de datos interno 10.
- Analizador 12: este componente calcula matrices de datos intermedias implicadas por el modelo probabilfstico (precision, criticidad) basandose en las matrices almacenadas por el componente de representacion de datos interno 10.
- Gestor de eventos 13: este componente agrega informacion sobre informacion de eventos en tiempo real y modifica las predicciones de validez proporcionadas por el modelo probabilfstico en consecuencia.
- Optimizador 14: este componente ejecuta la estrategia de recalculo, es decir el recalculo orientado a frecuencia de recalculo y la seleccion iterativa de resultados de busqueda precalculados teniendo en cuenta costes de calculo variables de resultados de busqueda precalculados interrelacionados como se ha descrito en detalle anteriormente. Despues de haber determinado los resultados de busqueda precalculados a recalcular, el optimizador 14 genera ordenes de recalculo y las emite a la plataforma de calculo 3. Adicionalmente, actualiza el tiempo de recalculo de estos resultados de busqueda precalculados almacenados en el componente de representacion de datos interno 10.
Los ultimos dos modulos, el gestor de eventos 13 y el optimizador 14, se agrupan bajo el nombre “consolidador” en el documento PCT/EP2013/002390.
Finalmente, la Figura 8 es una representacion esquematica de un sistema informatico que proporciona la funcionalidad del controlador de recalculo 2 como se muestra por las Figuras 2, 6 y 7. En el controlador de recalculo 2 pueden ejecutarse un conjunto de instrucciones, para provocar que el sistema informatico realice cualquiera de los
5
10
15
20
25
metodos analizados en el presente documento. El controlador de recalculo 2 incluye un procesador 101, una memoria principal 102 y un dispositivo de interfaz de red 103, que comunican entre sf mediante un bus 104. Opcionalmente, puede incluir adicionalmente una memoria estatica 105 y una unidad de disco 106. Una pantalla de video 107, un dispositivo de entrada alfanumerico 108 y un dispositivo de control de cursor 109 pueden formar una interfaz de usuario de navegador de lista de distribucion. El dispositivo de interfaz de red 103 conecta el controlador de recalculo de datos 2 a la plataforma de calculo 3, los ongenes de datos estadfsticos necesarios para rellenar el modelo predictivo tales como servidores de estadfsticas, una base de datos u origen de datos de volatilidad y una base de datos u origen de datos de precision inicial, los ongenes de eventos en tiempo real, internet y/o cualquier otra red. Un conjunto de instrucciones (es decir software) 110 que realizan uno o todos los metodos anteriormente descritos, residen completa, o al menos parcialmente, dentro o en un medio legible por maquina, por ejemplo la memoria principal 102 y/o el procesador 101. Un medio legible por maquina en el que reside el software 110 puede tambien ser un soporte de datos no volatil 111 (por ejemplo un disco duro magnetico no extrafble o un disco extrafble optico o magnetico) que es parte de la unidad de disco 106. El software 110 puede transmitirse o recibirse adicionalmente como una senal propagada 112 mediante internet a traves del dispositivo de interfaz de red 103.
La presente estrategia de recalculo proporciona un medio para generar automaticamente decisiones de recalculo que se dirigen a mejorar la validez de resultados de busqueda precalculados. Determina que resultados de busqueda precalculados se han de recalcular y controla el recalculo tambien por tiempo teniendo en cuenta los recursos de calculo disponibles en la plataforma de calculo. Por lo tanto, en general, la precision/validez de los resultados de busqueda se estima en el modelo probabilfstico que modela la actualizacion y desactualizacion, respectivamente, durante el tiempo y tiene en cuenta una frecuencia de recalculo de los resultados de busqueda precalculados. Los resultados de busqueda precalculados que se han de recalcular mas a menudo que otros se considera que son mas “caros” de mantener actualizados. De esta manera, se evita un enfoque ineficaz en recalcular constantemente resultados de busqueda precalculados muy volatiles.
Claims (15)
- 51015202530354045505560REIVINDICACIONES1. Un metodo para recalcular resultados de busqueda precalculados realizado en un entorno de base de datos (1), comprendiendo el entorno de base de datos una plataforma de busqueda (4) que mantiene resultados de busqueda precalculados, un controlador de recalculo (2) y una plataforma de calculo (3), comprendiendo el metodo:- asignar el controlador de recalculo (2) un indicador de recalculo a cualquiera de los resultados de busqueda precalculados, en el que el indicador de recalculo para un resultado de busqueda precalculado i indica una prioridad de recalculo del resultado de busqueda precalculado i y se basa en al menos los siguientes factores:o una probabilidad acci de que resultado de busqueda precalculado i sea aun valido;o una frecuencia de recalculo fi del resultado de busqueda precalculado i aproximada por la redproca de un tiempo desde el ultimo recalculo del resultado de busqueda precalculado i; y◦ una medida para recursos de calculo c necesarios para recalcular el resultado de busqueda precalculado i;1 - accj- en el que el indicador de recalculo esta definido por J7 ’JiCi- en un intervalo de tiempo dado, recalcular resultados de busqueda precalculados que tienen un indicador de recalculo que indica la prioridad mas alta para recalculo, estando el numero de resultados de busqueda precalculados recalculados por la plataforma de calculo limitado por los recursos de calculo disponibles de la plataforma de calculo para el recalculo en el intervalo de tiempo dado.
- 2. El metodo segun la reivindicacion 1, que comprende adicionalmente:- generar el controlador de recalculo (2) ordenes de recalculo para los resultados de busqueda precalculados que tienen un indicador de recalculo que indica la prioridad mas alta para recalculo, estando el numero de resultados de busqueda precalculados recalculados por la plataforma de calculo limitado por los recursos de calculo disponibles de la plataforma de calculo para el recalculo;- transmitir el controlador de recalculo (2) las ordenes de recalculo a la plataforma de calculo (3); y- recalcular la plataforma de calculo (3) los resultados de busqueda precalculados indicados por las ordenes de recalculo en respuesta a las ordenes de recalculo.
- 3. El metodo segun la reivindicacion 1 o la reivindicacion 2, en el que el indicador de recalculo se basa adicionalmente en una frecuencia de acceso pi del resultado de busqueda precalculado i a partir de la plataforma de1 — acCjbusqueda, en el que el indicador de recalculo esta definido por Pi •
- 4. El metodo segun cualquiera de las reivindicaciones anteriores, en el que la probabilidad de que el resultado de busqueda precalculado i sea aun valido esta definido por e'Xiti, indicando Xi una tasa de validez del resultado de busqueda precalculado i modelado por un modelo probabilfstico e indicando ti el tiempo desde el ultimo recalculo del resultado de busqueda precalculado i.
- 5. El metodo segun cualquiera de las reivindicaciones anteriores, en el que el indicador de recalculo se basa adicionalmente en un valor de precision inicial que indica la precision esperada del resultado de busqueda precalculado i en el tiempo de su recalculo.
- 6. El metodo segun cualquiera de las reivindicaciones anteriores, en el que los recursos de calculo para recalcular el resultado de busqueda precalculado i dependen de si se recalculan o no otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i durante el intervalo de tiempo dado y en el que los recursos de calculo necesarios para recalcular el resultado de busqueda precalculado i se estiman dinamicamente dependiendo de que otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se seleccionan para recalculo durante el intervalo de tiempo dado.
- 7. El metodo segun cualquiera de las reivindicaciones anteriores, comprendiendo adicionalmente el metodo- seleccionar iterativamente los resultados de busqueda precalculados para recalculo por la plataforma de calculo (3) en el intervalo de tiempo dado incluyendo estimar los recursos de recalculo para recalcular los resultados de busqueda precalculados, que comprende:a) inicializar los recursos de calculo ci necesarios para recalcular cada resultado de busqueda precalculado i con un valor que asume el calculo de i independiente del calculo de otros resultados de busqueda precalculados seleccionados para recalculo durante el intervalo de tiempo dado;b) seleccionar una porcion no seleccionada aun de los resultados de busqueda precalculados para recalculo51015202530354045505560de acuerdo con el indicador de recalculo, en el que - basandose en los valores actuales para los recursos de calculo necesarios para recalcular la porcion de resultados de busqueda precalculados - requiriendo unicamente la porcion seleccionada un porcentaje dado de los recursos de calculo totales disponibles de la plataforma de calculo para recalculo en el intervalo de tiempo dado;c) reevaluar los recursos de calculo ci necesarios para recalcular cada resultado de busqueda precalculado i teniendo en cuenta que resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se han seleccionado para recalculo;d) proceder con la etapa b) si se agota menos del 100 % de los recursos de calculo totales disponibles de la plataforma de calculo para recalculo en el intervalo de tiempo dado.
- 8. Un controlador de recalculo (2) para emplear en un entorno de base de datos (1), comprendiendo el entorno de base de datos una plataforma de busqueda (4) que mantiene resultados de busqueda precalculados y una plataforma de calculo (3), estando dispuesto el controlador de recalculo (2) para:- asignar un indicador de recalculo a cualquiera de los resultados de busqueda precalculados, en el que el indicador de recalculo para un resultado de busqueda precalculado i indica una prioridad de recalculo del resultado de busqueda precalculado i y se basa en al menos los siguientes factores:◦ una probabilidad acci de que el resultado de busqueda precalculado i sea aun valido;◦ una frecuencia de recalculo fi del resultado de busqueda precalculado i aproximada por la redproca de un tiempo desde el ultimo recalculo del resultado de busqueda precalculado i; y◦ una medida para recursos de calculo c necesarios para recalcular el resultado de busqueda precalculado i;1 - accien el que el indicador de recalculo esta definido por y ^ ’- generar ordenes de recalculo para resultados de busqueda precalculados que tienen un indicador de recalculo que indica la prioridad mas alta para recalculo, estando el numero de resultados de busqueda precalculados recalculados por la plataforma de calculo (3) limitado por los recursos de calculo disponibles de la plataforma de calculo para el recalculo;- transmitir las ordenes de recalculo a la plataforma de calculo (3) para hacer que la plataforma de calculo (3) recalcule los resultados de busqueda precalculados indicados por las ordenes de recalculo.
- 9. El controlador de recalculo segun la reivindicacion 8, en el que el indicador de recalculo se basa adicionalmente en una frecuencia de acceso pi del resultado de busqueda precalculado i a partir de la plataforma de busqueda, en elque el indicador de recalculo esta definido por
imagen1 - 10. El controlador de recalculo segun la reivindicacion 8 o la reivindicacion 9, en el que la probabilidad de que el resultado de busqueda precalculado i sea aun valido esta definido por e'Xiti, indicando Xi una tasa de validez del resultado de busqueda precalculado i modelado por un modelo probabilfstico e indicando ti el tiempo desde el ultimo recalculo del resultado de busqueda precalculado i.
- 11. El controlador de recalculo segun cualquiera de las reivindicaciones 8 a 10, en el que los recursos de calculo necesarios para recalcular el resultado de busqueda precalculado i dependen de si se recalculan o no otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i durante el intervalo de tiempo dado, estando dispuesto adicionalmente el controlador de recalculo (2) para seleccionar iterativamente los resultados de busqueda precalculados para recalculo por la plataforma de calculo (3) en el intervalo de tiempo dado, incluyendo la seleccion, una estimacion de los recursos de recalculo para recalcular los resultados de busqueda precalculados:a) inicializando los recursos de calculo o necesarios para recalcular cada resultado de busqueda precalculado i con un valor que asume el calculo de i independiente del calculo de otros resultados de busqueda precalculados seleccionados para recalculo durante el intervalo de tiempo dado;b) seleccionando de una porcion no seleccionada aun de los resultados de busqueda precalculados para recalculo de acuerdo con el indicador de recalculo, en el que - basandose en los valores actuales para los recursos de calculo necesarios para recalcular la porcion de resultados de busqueda precalculados - requiriendo unicamente la porcion seleccionada un porcentaje dado de los recursos de calculo totales disponibles de la plataforma de calculo para recalculo en el intervalo de tiempo dado;c) reevaluando de los recursos de calculo o necesarios para recalcular cada resultado de busqueda precalculado i teniendo en cuenta que resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se han seleccionado para recalculo;d) procediendo con la etapa b) si se agota menos del 100 % de los recursos de calculo globales disponibles de la5101520253035404550plataforma de calculo para recalculo en el intervalo de tiempo dado.
- 12. Medio de almacenamiento legible por ordenador no transitorio que tiene instrucciones de programa informatico almacenadas en el mismo, que cuando se ejecutan en un sistema informatico hacen que al sistema informatico:- asigne un indicador de recalculo a cualquiera de una pluralidad de resultados de busqueda precalculados, en el que el indicador de recalculo para un resultado de busqueda precalculado i indica una prioridad de recalculo del resultado de busqueda precalculado i y se basa en al menos los siguientes factores;◦ una probabilidad acci de que el resultado de busqueda precalculado i este desactualizado; y◦ una frecuencia de recalculo fi del resultado de busqueda precalculado i aproximada por la redproca de un tiempo desde el ultimo recalculo del resultado de busqueda precalculado i; y° una medida para recursos de calculo c necesarios para recalcular el resultado de busqueda precalculado i; en el que el indicador de recalculo esta definido por
imagen2 - generar ordenes de recalculo para estos resultados de busqueda precalculados que tienen un indicador de recalculo que indica la prioridad mas alta para recalculo, estando el numero de resultados de busqueda precalculados recalculados por una plataforma de calculo (3) limitado por los recursos de calculo disponibles de la plataforma de calculo para el recalculo;- transmitir las ordenes de recalculo a la plataforma de calculo (3) para hacer que la plataforma de calculo (3) recalcule los resultados de busqueda precalculados indicados por las ordenes de recalculo. - 13. El medio de almacenamiento legible por ordenador segun la reivindicacion 12, en el que el indicador de recalculo se basa adicionalmente en una frecuencia de acceso pi del resultado de busqueda precalculado i desde laplataforma de busqueda, en el que el indicador de recalculo esta definido porPi1 - accj fici
- 14. El medio de almacenamiento legible por ordenador segun la reivindicacion 12 o la reivindicacion 13, en el que la probabilidad de que el resultado de busqueda precalculado i sea aun valido esta definido por e_Xia, indicando Xi una tasa de validez del resultado de busqueda precalculado i modelado por un modelo probabilfstico e indicando ti el tiempo desde el ultimo recalculo del resultado de busqueda precalculado i.
- 15. El medio de almacenamiento legible por ordenador segun cualquiera de las reivindicaciones 12 a 14, en el que los recursos de calculo necesarios para recalcular el resultado de busqueda precalculado i dependen de si se recalculan o no otros resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i durante el intervalo de tiempo dado, en el que las instrucciones de programa informatico provocan que el sistema informatico seleccione iterativamente los resultados de busqueda precalculados para recalculo por la plataforma de calculo (3) en el intervalo de tiempo dado, incluyendo la seleccion una estimacion de los recursos de recalculo para recalcular los resultados de busqueda precalculados:a) inicializando los recursos de calculo ci necesarios para recalcular el resultado de busqueda precalculado i con un valor que asume el calculo de i independiente del calculo de otros resultados de busqueda precalculados seleccionados para recalculo durante el intervalo de tiempo dado;b) seleccionando una porcion no seleccionada aun de los resultados de busqueda precalculados para recalculo de acuerdo con el indicador de recalculo, en el que - basandose en los valores actuales para los recursos de calculo necesarios para recalcular la porcion de resultados de busqueda precalculados - la porcion seleccionada requiere unicamente un porcentaje dado de los recursos de calculo totales disponibles de la plataforma de calculo para recalculo en el tiempo dado;c) reevaluando los recursos de calculo c necesarios para recalcular el resultado de busqueda precalculado i teniendo en cuenta que resultados de busqueda precalculados relacionados con el resultado de busqueda precalculado i se han seleccionado para recalculo;d) procediendo con la etapa b) si se agota menos del 100 % de los recursos de calculo globales disponibles de la plataforma de calculo para recalculo dentro del tiempo dado.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14290040.6A EP2911070B1 (en) | 2014-02-19 | 2014-02-19 | Long-term validity of pre-computed request results |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2608392T3 true ES2608392T3 (es) | 2017-04-10 |
Family
ID=50280320
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES14003986.8T Active ES2662101T3 (es) | 2014-02-19 | 2014-02-19 | Re-calcular resultados de búsqueda pre-calculados |
ES14290040.6T Active ES2608392T3 (es) | 2014-02-19 | 2014-02-19 | Validez a largo plazo de resultados de solicitud pre-calculados |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES14003986.8T Active ES2662101T3 (es) | 2014-02-19 | 2014-02-19 | Re-calcular resultados de búsqueda pre-calculados |
Country Status (2)
Country | Link |
---|---|
EP (2) | EP2913764B1 (es) |
ES (2) | ES2662101T3 (es) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3084187A1 (en) * | 2017-12-08 | 2019-06-13 | Real Estate Equity Exchange Inc. | Systems and methods for performing automated feedback on potential real estate transactions |
US11593381B2 (en) | 2018-01-25 | 2023-02-28 | Amadeus S.A.S. | Re-computing pre-computed query results |
WO2019145480A1 (en) | 2018-01-25 | 2019-08-01 | Amadeus S.A.S. | Re-computing pre-computed query results |
FR3077146B1 (fr) * | 2018-01-25 | 2020-02-07 | Amadeus S.A.S. | Recalcul de resultats precalcules d'interrogation |
FR3081238A1 (fr) | 2018-05-17 | 2019-11-22 | Amadeus S.A.S. | Mise en memoire cache de base de donnees |
FR3086412B1 (fr) | 2018-09-20 | 2020-10-30 | Amadeus Sas | Recalcul des resultats de recherche precalcules |
FR3100630B1 (fr) | 2019-09-05 | 2021-10-29 | Amadeus | Validation de la mise en mémoire-cache étendue et du temps de requête |
AU2021393771A1 (en) | 2020-12-04 | 2023-06-22 | Amadeus S.A.S. | Processing search requests |
US11341137B1 (en) | 2020-12-04 | 2022-05-24 | Amadeus S.A.S. | Processing search requests |
EP4009188A1 (en) | 2020-12-04 | 2022-06-08 | Amadeus S.A.S. | Processing search requests |
US11836141B2 (en) | 2021-10-04 | 2023-12-05 | Red Hat, Inc. | Ranking database queries |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128701A (en) | 1997-10-28 | 2000-10-03 | Cache Flow, Inc. | Adaptive and predictive cache refresh policy |
WO2001033472A2 (en) | 1999-11-01 | 2001-05-10 | Ita Software, Inc. | Method and apparatus for providing availability of airline seats |
US7668740B1 (en) | 2000-09-22 | 2010-02-23 | Ita Software, Inc. | Method, system, and computer program product for interfacing with information sources |
US8478742B2 (en) * | 2004-04-14 | 2013-07-02 | Oracle Corporation | Using estimated cost to refresh a set of materialized views (MVS) |
US20090204753A1 (en) * | 2008-02-08 | 2009-08-13 | Yahoo! Inc. | System for refreshing cache results |
-
2014
- 2014-02-19 EP EP14003986.8A patent/EP2913764B1/en active Active
- 2014-02-19 ES ES14003986.8T patent/ES2662101T3/es active Active
- 2014-02-19 EP EP14290040.6A patent/EP2911070B1/en active Active
- 2014-02-19 ES ES14290040.6T patent/ES2608392T3/es active Active
Also Published As
Publication number | Publication date |
---|---|
EP2913764A1 (en) | 2015-09-02 |
ES2662101T3 (es) | 2018-04-05 |
EP2911070A1 (en) | 2015-08-26 |
EP2911070B1 (en) | 2016-10-19 |
EP2913764B1 (en) | 2017-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2608392T3 (es) | Validez a largo plazo de resultados de solicitud pre-calculados | |
ES2714676T3 (es) | Actualización de resultados de consulta de base de datos almacenados en memoria caché | |
US9235620B2 (en) | Updating cached database query results | |
KR101916837B1 (ko) | 일괄 지향 연산을 사용하는 데이터베이스 시스템 | |
Mathews et al. | A conceptual framework for improving critical care patient flow and bed use | |
ES2702654T3 (es) | Tratamiento de peticiones de datos | |
KR101636603B1 (ko) | 검색 효율이 증가된 예비-쇼핑 예약 시스템을 위한 방법 및 시스템 | |
US20160171008A1 (en) | Updating cached database query results | |
US10956955B2 (en) | Managing pre-computed search results | |
US20060149713A1 (en) | System, method, and computer program product for improving accuracy of cache-based searches | |
US20120054076A1 (en) | Systems And Methods For Multi-Echelon Inventory Planning With Lateral Transshipment | |
US9582536B2 (en) | Long-term validity of pre-computed request results | |
US20160048853A1 (en) | Generating work products using work product metrics and predicted constituent availability | |
US20170178221A1 (en) | Method and system for inventory availability prediction | |
ES2905843T3 (es) | Actualización de los resultados de la consulta de la base de datos en caché | |
WO2015124275A1 (en) | Long-term validity of pre-computed request results | |
WO2016070964A1 (en) | Managing pre-computed search results | |
JP2010182128A (ja) | 在庫引当システム |