ES2714676T3 - Actualización de resultados de consulta de base de datos almacenados en memoria caché - Google Patents
Actualización de resultados de consulta de base de datos almacenados en memoria caché Download PDFInfo
- Publication number
- ES2714676T3 ES2714676T3 ES13750848T ES13750848T ES2714676T3 ES 2714676 T3 ES2714676 T3 ES 2714676T3 ES 13750848 T ES13750848 T ES 13750848T ES 13750848 T ES13750848 T ES 13750848T ES 2714676 T3 ES2714676 T3 ES 2714676T3
- Authority
- ES
- Spain
- Prior art keywords
- results
- database query
- platform
- calculated
- cache memory
- 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/14—Travel agencies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Un método de actualización de unos resultados de consulta de base de datos precalculados en un sistema de base de datos distribuido (1), en donde el sistema de base de datos distribuido (1) comprende una plataforma de memoria caché de datos (2) que mantiene los resultados de consulta de base de datos precalculados y una plataforma de cálculo (3) para calcular los resultados de consulta de base de datos precalculados basándose en datos que se mantienen en la plataforma de cálculo (3), en donde la plataforma de memoria caché de datos (2) mantiene un modelo probabilístico que modela las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria caché de datos (2) y los resultados de consulta de base de datos reales supuestos, comprendiendo el método: - determinar, por la plataforma de memoria caché de datos (2), las probabilidades de estar obsoletos de los resultados de consulta de base de datos precalculados basándose en el modelo probabilístico; - detectar, por la plataforma de memoria caché de datos (2), un evento en tiempo real asíncrono que tiene una influencia probabilística sobre las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria caché de datos (2) y los resultados de consulta de base de datos reales supuestos; - analizar, en la plataforma de memoria caché de datos (2), si el evento en tiempo real asíncrono está representado en el modelo probabilístico; - aumentar, por la plataforma de memoria caché de datos (2), las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados si se determina que el evento en tiempo real asíncrono no está representado en el modelo probabilístico; - emitir de forma automática (15), por la plataforma de memoria caché de datos (2), unas órdenes recalculadas a la plataforma de cálculo (3) para actualizar unos resultados de consulta de base de datos precalculados en función de las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados, en donde se ordena que se recalculen los resultados de consulta de base de datos precalculados que tienen una probabilidad de estar obsoletos por encima de un umbral dado; y - recibir (17), en la plataforma de memoria caché de datos (2), los resultados de consulta de base de datos precalculados actualizados como resultados de las órdenes recalculadas.
Description
DESCRIPCION
Actualizacion de resultados de consulta de base de datos almacenados en memoria cache
Campo de la invencion
La presente invencion se dirige al campo de la tecnologfa de bases de datos. Mas en concreto, la misma se refiere al precalculo y el almacenamiento en memoria cache de los resultados de consulta de base de datos y a las estrategias de mantener actualizados estos resultados.
Antecedentes
Un problema comun en la tecnologfa de bases de datos es asegurar unos tiempos de respuesta cortos a las consultas de base de datos que requieren el procesamiento de unos volumenes de datos grandes. Por ejemplo, un procesamiento como este, que supone un consumo de potencia informatica, se ha de llevar a cabo en respuesta a las asf denominadas “consultas abiertas” que solo contienen una poca información de entrada (por ejemplo, solo se especifican uno o dos parametros de entre una docena de parametros posibles 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 mediante el aumento del rendimiento de soporte ffsico son limitadas. Por lo tanto, se pone el foco en la mejora de los mecanismos que subyacen al procesamiento de unos volumenes de datos grandes.
Un enfoque general para acortar los tiempos de consulta es precalcular las consultas esperadas y mantener los resultados de consulta correspondientes en un sistema de cache. Entonces, las consultas no se procesan en la practica en las bases de datos grandes, sino que se dirigen al sistema de memoria cache.
No obstante, otro problema que surge junto con tales enfoques de almacenamiento en memoria cache, es mantener los resultados de busqueda precalculados actualizados con el fin de asegurar que las consultas que son respondidas por los resultados almacenados en memoria cache reflejan correctamente el estado de las bases de datos grandes correspondientes. En el caso en el que cambian los datos subyacentes, los resultados de consulta almacenados en memoria cache quedan desactualizados y el sistema de memoria cache devolvena unos resultados incorrectos. Por lo tanto, se necesitan unas estrategias acerca de como se puede mantener actualizado el sistema de memoria cache.
En la tecnica anterior se conocen diversas estrategias de actualizacion relativamente sencillas como, por ejemplo, recalcular la totalidad del dominio de datos con frecuencia, establecer y mantener unas programaciones de recalculo de forma manual y recalcular los datos cuando los mismos se esten volviendo demasiado antiguos.
Se han desarrollado estrategias de actualizacion algo mas sofisticadas, tal como se describe, por ejemplo, por los documentos WO 01/33472 y WO 02/25557.
El documento WO 01/33472 se refiere a un sistema de disponibilidad que se usa en un sistema de planificacion de viajes. El sistema incluye una memoria cache que tiene unas entradas de una información de disponibilidad con respecto a los asientos de lmea aerea. Un gestor de memoria cache gestiona una información de entrada en la memoria cache con el fin de mantener la información en la memoria cache correcta, actual, completa o, por lo demas, tan util como sea posible. En respuesta a una consulta que esta dirigida a la memoria cache, el gestor de memoria cache determina si una respuesta almacenada es obsoleta y, si este es el caso, envfa una consulta de disponibilidad a una fuente de la información de disponibilidad. Las entradas de memoria cache que se van a modificar se obtienen por medio de unas notificaciones asmcronas a partir de sistemas externos y se determinan por medio de un modelo determinista, predictivo o estadfstico.
De forma similar, el documento WO 02/25557 se refiere a un sistema de recuperació dne información en el que una información que se recibe a partir de unas fuentes de información se almacena en memoria cache para su uso futuro, tal como para unas solicitudes de cliente futuras. Se pueden generar unas consultas proactivas para rellenar una memoria cache y /o para actualizar la información actualmente almacenada en memoria cache. En un sistema de información de lmea aerea, las consultas proactivas se ordenan en funcion de unas estadfsticas o indicaciones predictivas tales como una cercama de la hora de salida, la antiguedad de los datos almacenados en memoria cache, los asientos restantes en una aeronave, las vacaciones o eventos especiales o el tipo de equipo. Ademas, se reciben actualizaciones por medio de unas notificaciones externas procedentes de las lmeas aereas, tales como mensajes de AVS.
Ademas, el documento WO 99/22315 describe un mecanismo para refrescar de forma automatica los documentos en una memoria cache mediante el uso de un modelo probabilfstico basado en estadfsticas. Para cada documento, la memoria cache determina una probabilidad Psi (t) de que un objeto almacenado en memoria 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 sea solicitado por un usuario en el tiempo de solicitud h. La memoria cache refresca esos objetos con el producto
mas alto Pi = Psi (t) x Pri (h), es decir la probabilidad de que se devuelva un objeto desactualizado al usuario con la siguiente solicitud. Para mantener estos valores de probabilidad, la memoria cache mantiene y realiza un seguimiento de unas estadfsticas historicas para los objetos almacenados en memoria cache tales como un intervalo medio estimado entre las actualizaciones de servidor EUI. El EUI de un objeto se actualiza, por ejemplo, cuando el propio objeto es actualizado por el servidor o el objeto no se actualiza despues de que haya transcurrido su tiempo de refresco medio estimado.
El documento US 6.725.333 se refiere a la gestion de entidades, tales como un objeto, un archivo de imagen, o una pagina web, que estan almacenadas en una memoria cache, y /o entidades que se pueden almacenar en una memoria cache. Se analiza el código de programa para determinar si hay al menos una instruccion que afecte a la conveniencia de realizar al menos una transaccion de memoria cache y, si se desea, se lleva a cabo la al menos una transaccion de memoria cache. Ademas, una herramienta de analisis de programas analiza por medios estadfsticos el código de programa para ubicar unos puntos en los que tienen lugar cambios de estado de objetos, en los que se crean objetos y en los que se suprimen objetos, y entonces genera unas dependencias regularizadas en tales puntos para, y empleando, las dependencias para anular las consultas almacenadas en memoria cache dependientes. Mas en concreto, el programa se analiza para identificar una o mas instrucciones que puedan modificar un valor de una o mas entidades almacenables en memoria cache durante el tiempo de ejecucion del programa. Para cada una de las instrucciones detectadas, se determina una probabilidad que representa la verosimilitud de que se ejecuten las instrucciones detectadas, es decir, la verosimilitud de que una o mas entidades almacenables en memoria cache cambien debido a la ejecucion de las instrucciones. Para determinar si se llevara a cabo una transaccion de memoria cache, por ejemplo, insertando un objeto en una memoria cache o suprimiendo o actualizando un objeto almacenado en memoria cache, se realiza una determinacion en lo que respecta a si la probabilidad de cambio de una o mas entidades almacenables en memoria cache satisface un umbral previamente definido. Si esto es asf, el sistema se puede encontrar a favor de no almacenar en memoria cache una o mas entidades no almacenadas en memorias cache y /o encontrarse a favor de anular o actualizar una o mas entidades almacenadas en memorias cache. Si esto no es asf, el sistema se puede encontrar a favor de almacenar en memoria cache una o mas entidades no almacenadas en memorias cache y /o no encontrarse a favor de anular o actualizar una o mas entidades almacenadas en memorias cache.
Sumario de la invencion
De acuerdo con la presente invencion, se proporciona un metodo de actualizacion de unos resultados de consulta de base de datos precalculados en un sistema de base de datos distribuido tal como se define en la reivindicacion independiente 1.
De acuerdo con otro aspecto, se proporciona una plataforma de memoria cache de base de datos tal como se define en r laeivindicación independiente 13.
De acuerdo con otro aspecto, se proporciona un medio de almacenamiento legible por ordenador no transitorio tal como se define en la reivindicació inndependiente 15.
En las reivindicaciones dependientes se exponen algunos aspectos adicionales.
Breve descripción de las figuras
La presente invencion se describira con referencia a las figuras adjuntas. En general, unos numeros de referencia similares indican unos elementos identicos o funcionalmente similares.
La figura 1 ilustra una vision de conjunto general del sistema de base de datos distribuido;
la figura 2 muestra una vista mas detallada del sistema de base de datos distribuido de acuerdo con una forma de realizacion;
la figura 3 ilustra los componentes de la plataforma de memoria cache de acuerdo con una forma de realizacion; la figura 4a visualiza un efecto de volatilidad a lo largo del tiempo de acuerdo con un modelo probabilfstico; la figura 4b visualiza una rectificacion del modelo probabilfstico en respuesta a un evento en tiempo real;
la figura 5 ilustra un diagrama de flujo de acuerdo con una forma de realización del metodo;
la figura 6 muestra una disponibilidad de recursos a modo de ejemplo para el recalculo de acuerdo con una forma de realizacion;
la figura 7 muestra una representacion esquematica de un ordenador de plataforma de memoria cache de acuerdo con una forma de realizacion.
Descripcion general
Antes de pasar a la descripción detallada en funcion de las figuras, unos pocos aspectos mas generales se expondran en primer lugar con respecto a la figura 1.
Con el fin de ser capaz de manejar consultas de base de datos o solicitudes de calculos por lotes que requieren calculos en funcion de unos volumenes de los datos subyacentes, en general los resultados de consulta de base de datos que se corresponden con las consultas esperadas se precalculan y se almacenan en memoria cache (posteriormente, la expresion “consulta” se usa como una expresion general que incluye cualquier tipo de solicitud de recuperació dne información tal como consultas transaccionales, solicitudes de calculos por lotes y otras formas). Los resultados almacenados en memorias cache se almacenan y se devuelven a la entidad que realiza la consulta en respuesta a las consultas que tienen lugar en la practica. La figura 1 ilustra un sistema de base de datos 1 de ese tipo a un nivel abstracto. Los datos basicos se mantienen en una plataforma de calculo 3 que esta conectada con una plataforma de memoria cache 2. Esta ultima emite unas ordenes recalculadas a la plataforma de calculo 3 que, a su vez, transmite los resultados correspondientes de vuelta a la plataforma de memoria cache 2 en donde se almacenan los resultados de consulta precalculados.
El presente enfoque de almacenamiento en memoria cache de unos resultados de consulta precalculados conduce al problema general de que los datos del dominio de datos subyacente pueden cambiar a lo largo del tiempo y, por lo tanto, los resultados de consulta precalculados almacenados en memoria cache quedan obsoletos. Los resultados de consulta almacenados en memoria cache que siguen estando actualizados, es decir, que coinciden con los equivalentes de calculo en tiempo real correspondientes (unos resultados que se calculanan en la practica a peticion sin haber almacenado en memoria cache los resultados precalculados que se encuentran disponibles), se denominan resultados almacenados en memoria cache “precisos” en lo sucesivo en el presente documento. Por lo tanto, cuando la memoria cache representa correctamente el estado actual del dominio de datos que subyace a los resultados de consulta almacenados en memoria cache, la memoria cache es - en general - precisa.
En general, con el fin de devolver unos resultados correctos en funcion de la memoria cache, se desea mantener un alto grado de correlacion entre los resultados de consulta de base de datos almacenados en memoria cache que se proporcionan a la entidad que realiza la consulta en respuesta a las consultas de base de datos y sus equivalentes de calculo en tiempo real. Al mismo tiempo, no obstante, es deseable reducir al mmimo el consumo de recursos de calculo que es causado por los recalculos, es decir, evitar todo recalculo innecesario tal como el recalculo de unos resultados de consulta almacenados en memoria cache aun precisos. Los recursos de calculo son limitados y, en general, no hay suficientes recursos de calculo para recalcular todos los resultados de consulta almacenados en memoria cache en todo momento. Por lo tanto, es necesario hallar una compensacion redproca entre la precision de la memoria cache y la utilizacion de la potencia de calculo disponible.
Los enfoques sencillos de mantener actualizada una memoria cache de resultados de consulta precalculados presentan varios inconvenientes.
El recalculo de la totalidad del dominio de datos con frecuencia, dependiendo de la cantidad de datos y los recursos de calculo disponibles, por ejemplo, una vez al dfa, podna asegurar un equilibrio razonable entre la precision de la memoria cache y las respuestas en tiempo real. No obstante, el presente enfoque es tanto a duras penas ajustable a escala como ineficiente en terminos del consumo de recursos de soporte ffsico. En particular, tambien se recalculan aquellos resultados de consulta que siguen siendo validos debido a que los datos subyacentes correspondientes no han cambiado.
La confeccion de programaciones de recalculo para determinar que resultados de consulta se van a recalcular en que instante de forma manual, por parte de un administrador humano, se puede mostrar eficiente para fines espedficos, pero la misma es ngida y nada flexible. Es necesario volver a confeccionar la programacion de nuevo cuando las suposiciones y condiciones que subyacen al cambio de programacion. Asimismo, esto tampoco puede realizar, de forma dinamica, un seguimiento de un deterioro repentino de la calidad de la memoria cache que podna surgir en el evento de cambios masivos en el dominio de datos subyacente. Tambien es diffcil disenar una programacion de ese tipo de forma manual, por ejemplo, debido a la ausencia de unos criterios de calidad objetivos, y mantener la misma en terminos de costes de mano de obra.
Aun otro enfoque mas es recalcular los datos cuando los mismos se estan volviendo demasiado antiguos. Dependiendo de la naturaleza de los datos subyacentes y los resultados de consulta que se van a precalcular, puede ser diffcil, no obstante, evaluar unos umbrales buenos de “antiguedad”.
Con el fin de volver el recalculo mas eficiente, se debena definir una metrica para evaluar como de “innecesario” es un recalculo. Por ejemplo, no merece la pena relanzar la totalidad de un precalculo masivo cada dfa si sucede que menos de la mitad de los resultados de consulta calculados estan obsoletos. Por otro lado, si se sabe que unas clases particulares de resultados de consulta cambian con frecuencia, el recalculo de las mismas varias veces al dfa podna ser beneficioso para la precision. En consecuencia, es necesaria una forma eficaz de evaluar o estimar la precision de los resultados de consulta, teniendo en cuenta tanto la ganancia asociada sobre la precision como el
coste de recalculo. De acuerdo con la estrategia de actualizacion de memoria cache que se presenta en el presente documento, los recalculos de los resultados de consulta de base de datos se deciden basandose en las probabilidades de que las consultas de base de datos almacenadas en memoria cache esten obsoletas, es decir, difieren potencialmente de los resultados que se obtienen por medio de otro recalculo. Solo aquellos resultados de consulta almacenados en memoria cache que tienen al menos una cierta probabilidad previamente determinada de inexactitud se recalculan, mientras que otros resultados de consulta almacenados en memoria cache que, probablemente, sigue reflejando con precision los datos subyacentes, es decir, los mismos tienen una probabilidad menor de estar obsoletos, no se recalculan.
La estrategia de actualizacion de la memoria cache que se presenta en el presente documento se basa, como un primer aspecto, en unos medios para estimar la precision de la totalidad de la memoria cache de los resultados de consulta de base de datos precalculados en funcion de un modelo predictivo. Como un segundo aspecto, tambien se comprueba si esas estimaciones se encuentran, en general, en consonancia con la realidad, verificando que la estrategia de recalculo basado en modelos sigue siendo valida cuando tienen lugar eventos reales en tiempo real (y de la vida real) que pueden servir como indicaciones de que, por ejemplo, se ha cambiado una parte significativa de los datos que subyacen a las consultas almacenadas en memoria cache y-debido a estos cambios - tambien las consultas almacenadas en memoria cache correspondientes estan obsoletas.
El modelo predictivo, en el que se basan en general las estimaciones de la precision de la memoria cache, modela las discrepancias entre los resultados de consulta almacenados en memoria cache y los resultados de consulta de base de datos reales supuestos, es decir, el mismo aproxima la precision o inexactitud de cualquier resultado de consulta almacenado en memoria cache. El modelo modela, por ejemplo, la volatilidad probable de los resultados almacenados en memorias cache a lo largo del tiempo. Las suposiciones acerca de la volatilidad de los resultados almacenados en memorias cache se concluyen y se extrapolan a partir de las (pasadas) experiencias en el mundo real sobre la materia objeto del dominio de datos respectivo. Por lo tanto, el modelo predictivo es, en general, una representacion de la realidad en terminos de la volatilidad y / o la precision de los resultados de consulta de base de datos precalculados.
Se pueden emplear diversos tipos de modelos. Por ejemplo, el modelo predictivo puede ser un modelo conceptual que se ha generado por medio de un proceso de modelado estructurado que se conoce como modelado cientffico. El modelado requiere identificar y seleccionar aquellos aspectos y eventos del entorno en el mundo real (en el presente caso, por ejemplo: los aspectos y eventos que tienen influencia sobre la volatilidad y la disminucion de precision a lo largo del tiempo de los resultados de consulta precalculados y almacenados en memoria cache) y dejando a un lado otros aspectos que pueden no ser particularmente relevantes para el fin del modelo. Ademas, los aspectos identificados y seleccionados se pueden abstraer y formular/ poner en practica en una forma procesable tal como un programa informatico y /o unas ecuaciones matematicas. Un modelo conceptual de ese tipo tambien puede servir como un medio para una simulacion que simula el comportamiento (es decir, la volatilidad / precision) de los resultados de consulta de base de datos precalculados a lo largo del tiempo. Como alternativa, el modelo predictivo empleado puede ser un modelo historico - estadfstico que se basa en supervisar y evaluar, por ejemplo, la volatilidad / precision de los resultados de consulta precalculados en el periodo dado de tiempo en el pasado (por ejemplo, tres meses) y extrapola las tendencias determinadas al futuro. Un ejemplo particular de un modelo historico - estadfstico de ese tipo se da adicionalmente en lo sucesivo.
Por ejemplo, los datos subyacentes se pueden ubicar en el dominio de los viajes por aire y pueden contener una información acerca de vuelos tal como el aeropuerto de salida y de destino, la lmea aerea, las fechas de salida y de vuelta, las tarifas, las clases de reserva y similares. Estos datos relacionados con viajes por aire se mantienen en la plataforma de calculo y son consultados por los clientes con el fin de obtener un conocimiento de la disponibilidad y los precios de los vuelos aereos. El calculo de los precios en funcion de los datos de vuelo basicos consume una gran cantidad de recursos y de tiempo. Por lo tanto, los precios reales se precalculan y se almacenan en memoria cache en la presente plataforma de memoria cache. En el presente ejemplo, el modelo probabilfstico modela la volatilidad de los precios de vuelo a lo largo del tiempo.
El conocimiento requerido para construir un modelo como este se puede tomar a partir de las experiencias en el mundo real sobre el comportamiento y la evolucion de los precios de vuelo antes de la fecha de salida. Por ejemplo, se podna saber que los precios de vuelo permanecen relativamente estables a lo largo del periodo de tiempo antes de un mes antes de las fechas de salida respectivas, 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 y almacenados en memoria cache que pertenecen a los vuelos venideros en el mes siguiente se debenan recalcular mas a menudo que tales precios precalculados que estan asociados con los vuelos en un futuro mas distante.
Ademas de modelar la precision de la memoria cache usando el modelo probabilfstico, se evita una cafda acusada de la precision de la memoria cache al presentar reactividad frente a los eventos en tiempo real. Las decisiones de recalculo se refinan a la recepcion de unos eventos en tiempo real previamente determinados que podnan tener un impacto sobre la exactitud de los resultados de consulta almacenados en memoria cache. Los eventos en tiempo real son asmcronos, es decir, el instante en el tiempo de su aparicion no esta predeterminado - estos pueden tener lugar en cualquier momento. Con el fin de ser capaz de recibir y procesar los eventos en tiempo real entrantes, la
plataforma de datos de memoria cache 2 se equipa con unas interfaces externas a unas fuentes de comunicacion que notifican en consecuencia la información relevante a la plataforma de datos de memoria cache.
Tales eventos en tiempo real se pueden referir a situaciones particulares que no se consideran en el modelo predictivo. Por ejemplo, una porcion de los precios almacenados en memoria cache se puede ver afectada por una promocion, mientras que otros precios de pueden hacer mas volatiles en un instante particular del ano (tal como temporadas de vacaciones, Navidad, etc.). Tambien podnan cambiar las suposiciones que subyacen a las causalidades “normales” del modelo unas situaciones “excepcionales” como una exposicion industrial, un evento deportivo o similares, eventos aleatorios tales como golpes o desastres naturales. Se pueden considerar estas influencias particulares cuando se determinan las probabilidades de que los resultados de consulta almacenados en memoria cache esten obsoletos en respuesta a los eventos en tiempo real respectivos que representan tales situaciones excepcionales. Como alternativa, el impacto de los eventos programados tales como una exposicion industrial, temporadas de vacaciones, eventos deportivos y similares se puede introducir en el modelo probabilfstico en un buen momento antes de la fecha del evento.
Es importante observar que la estrategia de actualizacion que se presenta en el presente documento es capaz de tener en cuenta los eventos “inciertos”, es decir, aquellos eventos que no anulan uno o mas resultados de consulta almacenados en memoria cache precalculados con certeza, sino que solo indican que se podna aumentar la probabilidad de que esten obsoletos los resultados de consulta de base de datos almacenados en memoria cache. En otras palabras, estos eventos son indeterministas con respecto a la precision de los resultados de consulta almacenados en memoria cache y solo tienen una influencia probabilfstica sobre las discrepancias entre los resultados de consulta almacenados en memoria cache que se mantienen en la plataforma de memoria cache 2 y los resultados de consulta de base de datos reales supuestos que resultan de un recalculo hipotetico. Esto es diferente de las propuestas que se describen en los documentos WO 01/33472 y WO 02/25557 en donde los mensajes de AVS, por ejemplo, indican que se ha cancelado un vuelo particular. En consecuencia, a la recepcion de un mensaje de AVS de ese tipo, se conoce con certeza que los asientos de avion respectivos han dejado de encontrarse disponibles.
Por ejemplo, haciendo referencia al escenario de almacenamiento de datos relacionados con viajes tal como se ha mencionado en lo que antecede, un evento en tiempo real que tiene solo un impacto potencial sobre la precision de los resultados de consulta almacenados en memoria cache podna ser una actualizacion de tarifas. Una tarifa es un conjunto de datos que incluye parametros como la ciudad de salida y de destino, la clase de reserva, el tipo de vuelo (de ida o de ida y vuelta), una cantidad de dinero y reglas que definen las restricciones que se han de satisfacer para que la tarifa sea de aplicacion en la practica. Por lo tanto, las tarifas representan los datos basicos para el calculo de precios de un vuelo particular. Si las tarifas para un par de ciudades de origen - destino espedfico son actualizadas por la lmea aerea, se puede aumentar la verosimilitud de que un precio de vuelo precalculado y almacenado en memoria cache con respecto a este par de ciudades haya dejado de ser correcto. No obstante, desde la perspectiva de la plataforma de memoria cache de datos 2, esto no es seguro debido a que la tarifa que fue aplicada en la practica por la plataforma de precalculo 3 cuando se precalcula el precio almacenado en memoria cache no es conocida por la plataforma de memoria cache de datos 2. Por ejemplo, la tarifa que se aplica para el precalculo previo podna no haberse cambiado en la practica y los cambios de tarifas que son indicados por el evento de cambio de tarifas no cambian el hecho de que la tarifa previamente pertinente sigue siendo de aplicacion y, por lo tanto, el precio que se ha calculado en lo que antecede sigue siendo valido. O, la tarifa previamente aplicada se cambia en la practica, pero - debido al cambio - otra tarifa es de aplicacion ahora para el calculo del precio de vuelo en cuestion que, al final, tiene el efecto de que el precio almacenado en memoria cache sigue siendo valido en la practica.
Por lo tanto, al observar tales eventos en tiempo real, la plataforma de memoria cache de datos 2 solo puede conjeturar con una verosimilitud indeterminista que determinados resultados de consulta almacenados en memoria cache estan ahora obsoletos y sena ventajoso recalcular estos con el fin de mantener precisa la memoria cache. No obstante, esto no es un hecho cierto y bien puede ser que los resultados de consulta almacenados en memoria cache respectivos - a pesar de que ha aumentado su probabilidad de estar obsoletos - sigan siendo precisos en la practica.
La determinacion de las probabilidades de que esten obsoletos los resultados de consulta de base de datos almacenados en memoria cache se lleva a cabo en dos etapas logicas: En general, en el primer nivel logico, las probabilidades se identifican mediante el uso del modelo predictivo probabilfstico. Posteriormente, en el segundo nivel logico, estas probabilidades determinadas se pueden rectificar en respuesta a los eventos en tiempo real entrantes.
Basandose en las probabilidades que se determinan de esta forma, la plataforma de memoria cache de datos 2 genera y emite de forma automatica unas ordenes recalculadas a la plataforma de recalculo 3 por medio de una interfaz de red apropiada entre las dos entidades (consultese la figura 1). En general, se generan unas ordenes recalculadas con respecto a aquellos resultados de consulta almacenados en memoria cache que tienen una probabilidad mas alta de estar obsoletos que la de otros resultados de consulta almacenados en memoria cache que tienen una probabilidad menor de estar obsoletos. Esta regla practica general se puede poner en practica mediante
el uso de valores umbral de las probabilidades: Los resultados de consulta almacenados en memoria cache con una probabilidad determinada de estar obsoletos por encima de un valor umbral de ese tipo, necesitan ser recalculados. Por consiguiente, se emiten unas ordenes recalculadas respectivas. Los resultados de consulta almacenados en memoria cache con una probabilidad determinada de estar obsoletos a o por debajo de un valor umbral de ese tipo, se consideran como que es verosfmil que sigan siendo precisos y, en consecuencia, no es necesario que se recalculen los mismos. Por consiguiente, no se emite orden recalculada alguna con respecto a estos resultados de consulta almacenados en memoria cache.
Las capacidades de calculo disponibles en instantes particulares son tenidas en cuenta por la plataforma de memoria cache de datos 2 antes de emitir las ordenes recalculadas. Con el fin de ser capaz de considerar los recursos disponibles, es necesario que la plataforma de memoria cache de datos 2 tenga un cierto conocimiento acerca del grado y / o la programacion de la utilizacion de capacidad de la plataforma de calculo 3 y los recursos de calculo libres, de forma respectiva. La información relevante se rellena por medio del enlace de comunicacion entre las dos plataformas.
En respuesta a la recepcion de una orden recalculada, la plataforma de recalculo 3 recalcula los resultados de consulta respectivos y los devuelve a la plataforma de memoria cache de datos 2 en donde los mismos se almacenan y la supervision y la determinacion de las probabilidades reaparece.
Es preferible considerar la relacion entre el modelo probabilfstico y los eventos en tiempo real que tienen lugar antes de decidir si se debena rectificar o anular, o no, una decision de recalculo en respuesta a un evento en tiempo real particular. Basicamente, los eventos en tiempo real se debenan analizar para determinar si, y en que medida, se encuentran ya presentes los mismos en el modelo probabilfstico.
Esta determinacion de si, en el modelo probabilfstico, se encuentra presente, o no, y en que medida, un evento depende, en general, del tipo del modelo que se usa. Si, por ejemplo, el modelo es un modelo conceptual que es el resultado de un proceso de generacion de modelos cientfficos (tal como se ha bosquejado brevemente en lo que antecede), el experto que ha generado este modelo esta al tanto de que aspectos, eventos y suposiciones se han considerado como relevantes para y se han incorporado en el modelo y que otros aspectos, eventos y suposiciones se han considerado como de menor relevancia y, por lo tanto, no se han incluido en el modelo. En este caso, en general se conoce, por lo tanto, que eventos en tiempo real asmcronos estan representados en el modelo y cuales no lo estan.
Si, por otro lado, el modelo es uno de tipo historico - estadfstico que, principalmente, se basa en evoluciones y tendencias pasadas de la volatilidad, la precision y / o la popularidad de los resultados de consulta de base de datos precalculados, puede que no se sepa, desde el inicio, que eventos han conducido a este comportamiento particular de la volatilidad / precision / popularidad de los resultados de consulta precalculados en el pasado. No obstante, en este caso tambien es posible realizar una aproximacion de si se incluye, o no, uno asmcrono particular en el modelo probabilfstico. Un enfoque es, por ejemplo, determinar la precision real de los eventos de consulta de base de datos precalculados (por ejemplo, mediante el recalculo de una muestra representativa de los mismos y la comparacion de los resultados de recalculo con los resultados de consulta almacenados en memoria cache) y comparar la misma con la precision predicha que es indicada por el modelo probabilfstico. Si la precision (de muestra) real es sustancialmente menor que la precision predicha, por ejemplo, por debajo de un umbral dado, se puede suponer que el modelo probabilfstico no esta al tanto del evento en tiempo real asmcrono particular, es decir, el evento no esta representado en el modelo (de lo contrario, el modelo tambien habna indicado una precision menor). Si, por otro lado, la precision (de muestra) real se encuentra en la region de (es decir, solo apenas por debajo de, a o incluso superior a) la precision que se predice por medio del modelo probabilfstico, se puede suponer que el evento en tiempo real asmcrono se ha incluido en el modelo probabilfstico (o este solo es un evento despreciable que solo tiene una influencia limitada sobre la volatilidad o la precision de los resultados de consulta de base de datos precalculados). Un ejemplo mas detallado del presente enfoque se da adicionalmente en lo sucesivo.
Para tales eventos que estan suficientemente representados en el modelo, no es necesaria rectificacion alguna de las probabilidades debido a que su aparicion ya ha sido tenida en cuenta cuando se determinan las probabilidades de los resultados de consulta de base de datos almacenados en memoria cache respectivos en funcion del modelo probabilfstico. Si, por otro lado, se halla que un evento en tiempo real no esta representado en el modelo probabilfstico, este se tiene en cuenta inmediatamente y las probabilidades se rectifican (es decir, se aumentan) y, potencialmente, debido a las probabilidades rectificadas, se emiten unas ordenes recalculadas con respecto a los resultados de consulta de base de datos almacenados en memoria cache respectivos.
De forma opcional, los eventos en tiempo real que tienen lugar que se encuentran presentes en el modelo probabilfstico en cierta medida se acumulan con el fin de evaluar las tendencias. Si una acumulacion de los eventos en tiempo real que aparecen en la practica que se modela, en general, mediante el modelo probabilfstico indica una rafaga, la medida de la cual esta mas alla de lo que es considerado por las probabilidades del modelo se rectifica y, si es aplicable, las ordenes recalculadas se anulan en consecuencia.
De forma opcional, los eventos tambien se acumulan y se analizan en grupos con el fin de eliminar por filtrado los eventos que podnan desactualizar demasiado pocos resultados de consulta almacenados en memoria cache y /o que se podnan considerar irrelevantes. Tambien por esta razon, los eventos se registran, se recopilan a lo largo del tiempo y se manejan de una forma agregada. De esta forma, se evita la generacion de demasiadas ordenes recalculadas en respuesta a los eventos de bajo impacto y, por lo tanto, se evita un aumento desproporcionado en los costes de los recursos de calculo.
En resumen, tener en cuenta unos eventos en tiempo real que influyen potencialmente sobre la precision de los resultados de consulta de base de datos almacenados en memoria cache al menos por encima de una medida previamente determinada proporciona una reactividad alta frente al deterioro de la memoria cache.
La presente estrategia de actualizacion de memoria cache se puede usar, por ejemplo, junto con la Plataforma de calculo masivo (MCP, Massive Computation Platform) de Amadeus que es el objeto del documento EP 2521074 A1. Al emplear la presente plataforma de memoria cache de datos de forma que coexista con la MCP, se encuentra disponible un subsistema potenciado para desencadenar un recalculo de MCP. Los resultados de consulta de base de datos tales como las recomendaciones de viajes que son generadas por la MCP se duplican y se almacenan en la plataforma de memoria cache de datos para su analisis adicional. Las decisiones de recalculo se realizan en funcion de un modelo probabilfstico que se puede componer, el mismo, en funcion de unos datos de estadfsticas que se toman de otros servicios de Amadeus. Ademas, se tienen en cuenta eventos en tiempo real tales como cambios de tarifas de vuelo, cambios de disponibilidad de asientos de avion, anulaciones de clase de reserva, solicitudes de billetes de vuelo de clientes, eventos de realimentacion de calidad de usuario, cancelaciones de vuelos y /o similares.
Una la aplicacion a modo de ejemplo para el presente enfoque de actualizacion de memoria cache es la precompra. Antes de reservar en la practica un viaje, los usuarios finales de la industria del turismo normalmente desean informarse a sf mismos acerca de los vuelos disponibles, incluyendo los precios de vuelo actuales, sin compromiso alguno de reservar en la practica el vuelo. Muy a menudo, tales solicitudes no vinculantes de información de prerreserva adoptan la forma de unas consultas de base de datos abiertas y amplias que requenan una cantidad enorme de recursos de calculo cuando se calculan solo en el momento de la consulta. Ademas, los clientes esperan que la información solicitada se entregue de forma virtualmente instantanea en respuesta a sus consultas. Por lo tanto, los resultados de consulta de precompra tales como las recomendaciones de viajes por aire con precio habitualmente se precalculan y se almacenan en memoria cache. En consecuencia, la precompra en la industria del turismo forma una aplicacion conveniente para la estrategia de actualizacion de memoria cache que se propone en el presente documento.
Descripcion detallada
Pasando a continuacion a la descripción mas detallada, la figura 2 muestra una vision de conjunto del sistema de base de datos distribuido 1 de acuerdo con una forma de realización a modo de ejemplo. Las formas de realizacion que se describen posteriormente se refieren a las bases de datos en la industria del turismo. En concreto, se presenta una forma de realización en la que la plataforma de calculo 3 mantiene unos datos acerca de las ofertas de viajes por aire y la plataforma de datos de memoria cache 2 almacena precios en relacion con estas ofertas de viajes por aire que la plataforma de calculo 3 calcula en funcion de unas reglas de calculo, en particular las tarifas de vuelo y sus reglas de calculo asociadas. No obstante, se debena hacer notar que estas formas de realización son ejemplos solo para el fin de ilustrar la presente estrategia de actualizacion de memoria cache con mayor detalle. La estrategia de actualizacion de memoria cache que se presenta en el presente documento se puede aplicar a cualquier tipo de datos y resultados de consulta de base de datos independientes de la estructura y / o la semantica de los datos y los resultados almacenados en memorias cache.
Tal como se ha descrito en lo que antecede, las entidades principales del sistema de base de datos distribuido 1 son la plataforma de memoria cache de datos 2 (a la que se hace referencia brevemente en lo sucesivo en el presente documento como DCP) y la plataforma de calculo 3. En el ejemplo de la figura 2, la plataforma de calculo 3 es una plataforma de calculo masivo (MCP, Massive Computation Platform) tal como se divulga en la solicitud de patente europea 11305518. La DCP 2 y la MCP 3 se acoplan por medio de al menos un enlace de comunicacion que se utiliza / utilizan para transmitir unas ordenes recalculadas desde la DCP 2 a la MCP 3 y, en respuesta, las recomendaciones de viajes con precio precalculadas (a las que tambien se hace referencia brevemente en lo sucesivo en el presente documento como “precios”) de vuelta desde la MCP 3 a la DCP 2.
La DCP 2 se equipa con unas interfaces de comunicacion adicionales para incorporar datos que esta usa para la determinacion de las probabilidades de precision de los precios almacenados en memoria cache. Estas interfaces incluyen, por ejemplo, unos enlaces de comunicacion para incorporar unos datos estadfsticos que forman la base del modelo probabilfstico y para recibir eventos en tiempo real asmcronos tales como cambios de tarifas y anuncios de disponibilidad de vuelos que son rellenados por lmeas aereas o campanas de promocion orientadas a clientes. Ademas, el sistema de base de datos distribuido 1 puede comprender unas plataformas de aplicaciones 4 que organizan y mantienen datos que pueden ser consultados por usuarios finales o clientes externos tales como
agencias de viajes. Las plataformas de aplicaciones 4 se rellenan y se actualizan por medio de la MCP 3 por medio de unos enlaces de comunicacion respectivos entre la MCP 3 y las plataformas de aplicaciones 4. Este rellenado y actualizacion se desencadena por medio de las ordenes recalculadas que son emitidas por la DCP 2.
Tal como se ha descrito en general en lo que antecede y como se describe mas en concreto en lo sucesivo, en respuesta a las ordenes recalculadas que se reciben a partir de la DCP 2, la MCP 3 recalcula los precios de las recomendaciones de viajes y los devuelve a la DCP 2. De forma simultanea, no obstante, la MCP 3 tambien reenvfa las recomendaciones de viajes con precio recalculadas a las plataformas de aplicaciones 4 y que tambien las almacenan (tal como se indica mediante “integracion de recomendaciones de viajes” en la figura 2). En consecuencia, tambien las plataformas de aplicaciones 4 almacenan en memoria cache las recomendaciones de viajes con precio precalculadas que son consultadas por los usuarios, en funcion de la estrategia de actualizacion de memoria cache que es puesta en practica por la DCP 2. Por lo tanto, la presente estrategia de actualizacion de memoria cache se aprovecha para aplicaciones que proporcionan beneficios a los usuarios, por ejemplo, en forma de respuestas instantaneas a las consultas abiertas. En una disposicion de ese tipo, la plataforma de memoria cache de datos 2 actua como una plataforma de control que esta dispuesta para controlar y desencadenar las actualizaciones de las memorias cache de las plataformas de aplicaciones 4. Por lo tanto, ningun usuario o cliente accede a o consulta en la practica los resultados de consulta de base de datos almacenados en memoria cache que se almacenan en la plataforma de memoria cache de datos 2, sino que estos meramente forman la base de datos de control sobre la que se lleva a cabo la estrategia de actualizacion de memoria cache. No obstante, en otras disposiciones, la plataforma de memoria cache de datos 2 tambien puede ser consultada directamente por los usuarios o clientes, o - en otras palabras - la presente estrategia de actualizacion de memoria cache se puede poner en practica directamente en una plataforma o varias plataformas de aplicaciones 4 en contraposicion a una entidad de control independiente.
Las plataformas de aplicaciones 4 comprenden, por ejemplo, una plataforma de aplicaciones de precompra, una plataforma de aplicaciones de analisis de tarifas, y otras plataformas. La plataforma de aplicaciones de precompra es consultada por usuarios finales que desean información acerca de los precios y la disponibilidad de vuelos. Por ejemplo, un usuario final podna dirigir una consulta a la aplicacion de precompra con el fin de obtener una vision de conjunto de precios de ofertas de viajes durante la temporada de vacaciones que salen de Niza por debajo de 500 Euros. Debido a las recomendaciones de viajes con precio precalculadas que se almacenan en memoria cache en la aplicacion de precompra que se actualizan en consonancia con la presente estrategia de actualizacion de memoria cache, no es necesario que se calculen precios de los vuelos respectivos en el momento de la aparicion de la consulta. Mas bien, una lista de ofertas de viajes que cumplen estas restricciones un tanto indeterminadas se puede devolver muy rapido en funcion de las recomendaciones de viajes con precio que se almacenan en memoria cache en la plataforma de aplicaciones de precompra. El usuario puede seleccionar entonces un viaje de entre la lista devuelta que mejor le convenga y puede emitir entonces una solicitud adicional para reservar en la practica este viaje. La segunda solicitud se procesa entonces por medio de un motor de reserva (que no se muestra) el cual calcula el precio actual y real y sugiere una oferta vinculante al usuario.
Observando a continuacion mas de cerca la estructura de la plataforma de memoria cache de datos 2 que se ilustra por medio de la figura 3, la plataforma de memoria cache de datos 2 se compone de tres modulos:
- El gestor de entradas 5 es responsable de recibir entradas tales como unos resultados de consulta de base de datos precalculados a partir de la MCP 3, eventos en tiempo real asmcronos y otra información tal como datos estadfsticos para alimentar y actualizar el modelo probabilfstico.
- El analizador 6 utiliza el modelo probabilfstico en funcion del cual el mismo se dispone para determinar los resultados de consulta almacenados en memoria cache candidatos que se van a actualizar.
- Por ultimo, el consolidador 7 rectifica las probabilidades que se determinan por medio del analizador 6 y - cuando sea necesario - tambien el modelo probabilfstico en funcion de los eventos en tiempo real observados (esto ultimo no se muestra en la figura 3).
Ademas, la DCP 2 incluye una base de datos interna 8 que mantiene los datos de recomendaciones de viajes con precio almacenados en memoria cache. Esta representacion solo conserva los atributos de la información de precios que son relevantes para evaluar las probabilidades de obsolescencia y tomar una decision acerca de la decision recalculada, tal como, por ejemplo: par de ciudades, la fecha de salida, la duracion de la estancia y la fecha del ultimo calculo, siendo la totalidad de las cuales unas salidas de calculos que son devueltos por la MCP 3. Otros datos que son utilizados por la MCP 3 con el fin de llevar a cabo sus calculos tales como tarifas no se reflejan en la DCP 2 debido a que los mismos no son necesarios para llevar a cabo la estrategia de actualizacion de memoria cache. Por otro lado, no obstante, la DCP 2 enriquece sus datos con atributos de metadatos (que no son parte de los conjuntos de datos que son devueltos por la MCP 3), tal como una precision supuesta inicial (las probabilidades de que un precio que acaba de ser recalculado por la MCP 3 difiera del calculo para la reserva), una volatilidad (una indicacion de la probabilidad de que un precio difiera con respecto al calculo para la reserva desde su ultimo calculo) y una popularidad (con que frecuencia se busca y se reserva el vuelo). Los datos que son necesarios para establecer estos atributos se mantienen en unas bases de datos externas tales como una base de datos de
volatilidad 10, una base de datos de precisiones iniciales 11 y unos servidores de estad^sticas 9. Los atributos de metadatos representan el modelo probabiKstico (y, por lo tanto, dependen de las especificidades del modelo probabiKstico) en funcion del cual el analizador 6 determina las probabilidades de si los precios almacenados en memoria cache podnan estar obsoletos (tal como se explicara con mayor detalle en lo sucesivo).
El gestor de entradas 5 se dispone para convertir e integrar la totalidad de las fuentes heterogeneas de informacion en la base de datos de representaciones locales 8 de los precios que son devueltos por la MCP 3. Esta registra los eventos y las acciones que potencialmente inciden sobre unos precios modelados. Estos eventos incluyen una realimentacion de promociones orientadas a clientes y de discrepancias de clientes. Ademas, los eventos de disponibilidad de vuelos como cancelaciones de vuelos no solo anulan las recomendaciones de viajes almacenadas en memoria cache que se basan directamente en el vuelo cancelado, sino que tambien pueden influir sobre los datos almacenados en memoria cache en paralelo tales como vuelos del mismo par de ciudades que se programan en el mismo instante del vuelo cancelado. Estos eventos en tiempo real se reenvfan entonces al consolidador 7 que los procesa adicionalmente con el fin de rectificar las probabilidades de obsolescencia y las decisiones de recalculo.
Debido a la cantidad de información que esta involucrada en el almacenamiento en memoria cache de las recomendaciones de viajes con precio, el empleo de tecnicas de codificacion es beneficioso. Por medio de esto, los datos con precio que estan almacenados en memoria cache en la DCP 2 se correlacionan de forma global con el dominio de datos subyacente que se mantiene en la MCP 3 al tiempo que se reducen los costes para los recursos de almacenamiento de forma significativa. Una codificacion probabilfstica se pone en practica, por ejemplo, mediante el uso de filtros de Bloom. El efecto de tal codificacion es doble. En primer lugar, los filtros de Bloom son conservadores. Los mismos permiten realizar, positivamente, un seguimiento de, al menos y en cualquier caso, aquellos precios que probablemente se ven afectados, por ejemplo, por un evento en tiempo real que indica unos cambios de tarifas, pero estos no son erroneos a la inversa, aquellos precios que se consideran no afectados no se ven afectados en la practica. Por lo tanto, no hay riesgo alguno de no reconocer precios que se ven potencialmente influenciados por un evento de cambio de tarifas de ese tipo. En segundo lugar, la cantidad de indicaciones de falsos positivos depende, en un sentido estricto, del tamano asignado del filtro de Bloom, por lo tanto se puede limitar su apari sceiognún sea necesario.
El segundo modulo, el analizador 6, lleva a cabo el primer nivel general de determinacion de las probabilidades de si las recomendaciones de viajes con precio almacenadas en memoria cache estan obsoletas basandose en el modelo de deterioro probabilfstico de la precision de los precios precalculados que se mantienen en la DCP 2. Este examina y evalua los metadatos que son anadidos a los precios por el gestor de entradas 5, tal como se ha explicado en lo que antecede. Por lo tanto, el modelo probabilfstico que se representa por medio de estos metadatos incluye una metrica con respecto a la volatilidad de precios que se incluye por medio de la base de datos de volatilidad 10, la precision inicial de los precios que se incorporan a partir de la base de datos de precisiones iniciales 11 y la popularidad de las recomendaciones de vuelos tal como son devueltas por los informes de popularidad a partir de los servidores de estadfsticas 9. Esta emite una información de probabilidad y de prioridad con respecto a los precios almacenados en memoria cache al consolidador 7, es decir, unas indicaciones acerca de que precios necesitan ser recalculados con prioridad basandose solo en la información probabilfstica estatica (es decir, sin considerar evento alguno).
Mas en concreto, un modelo probabilfstico a modo de ejemplo se basa en los siguientes parametros para un resultado de consulta de base de datos precalculado x i:
- La antiguedad t i del resultado de consulta precalculado: el tiempo desde el ultimo calculo de este resultado de consulta precalculado por la MCP 3.
- La volatilidad Ai del resultado de consulta precalculado que se puede obtener a partir de la aparicion y los resultados de los calculos pasados.
- La volatilidad Ai se puede emplear para proporcionar una estimacion de la probabilidad de que un resultado de consulta precalculado permanezca sin cambios despues de un tiempo dado: P (sin cambios despues de t) = e" A|t. Tambien se hace referencia a esto como la probabilidad de que la precision esperada prec' = e _Ait o, mas en general, como la probabilidad de que un resultado de consulta de base de datos precalculado, este obsoleto. Dos funciones a modo de ejemplo de esta disminucion de precision probable a lo largo del tiempo se ilustran en la figura 4a.
- La precision inicial: puede que los resultados de consulta de base de datos precalculados que son generados por la MCP 3 no sean necesariamente precisos, incluso en tiempo de calculo si, por ejemplo, la propia MCP 3 basa sus calculos en unos datos almacenados en memoria cache (y, por lo tanto, obsoletos). Esto conduce a discrepancias adicionales entre los resultados de consulta de base de datos precalculados que son calculados por la MCP 3 y los resultados de calculo que hipoteticamente se han generado por medio de unos datos subyacentes precisos. Esta discrepancia se puede medir si se encuentra disponible una realimentacion respectiva. Se puede inferir, por ejemplo, a partir de los calculos previos, que el resultado de consulta de base de datos precalculado X i tiene una probabilidad a i de ser preciso en el momento del calculo por la MCP 3. Esto quiere decir que la probabilidad de que un resultado de consulta de base de datos precalculado sea preciso despues de un tiempo dado t es a e 'Ait.
- La precision de los resultados de consulta de base de datos precalculados globales que se mantienen en la DCP
2 de acuerdo con este modelo se puede considerar entonces como la precision media:
Precision Global = Promedio (a, e '
Ait
)
- La popularidad p i del resultado de consulta de base de datos precalculado: esta es la frecuencia de acceso promedio a este resultado de consulta de base de datos precalculado por los usuarios finales. Tal como tambien se presenta adicionalmente en lo sucesivo brevemente, puede ser deseable lograr una precision mejor para los resultados de consulta de base de datos precalculados que son solicitados a menudo por los usuarios. Por lo tanto, la precision de la totalidad de la memoria cache tal como es vista por los usuarios tambien se puede definir como que cada valor de precision se pondera con la popularidad. Por lo tanto, se incluye la proporcion de los accesos precisos a los resultados de consulta de base de datos precalculados en contraposicion a la proporcion esperada de los resultados de consulta de base de datos precalculados precisos:
Precision Usuario = V Lr~ P« a, e A|t|
Ptot
Estos parametros del modelo de precision probabilfstico se establecen, por ejemplo, de acuerdo con unos datos historicos estadfsticos que se obtienen a partir del servidor de estadfsticas 9 basandose en varios dfas, semanas o meses de historia. Cada uno de los resultados de consulta de base de datos precalculados se modela con estos parametros con el fin de predecir el estado de los resultados de consulta de base de datos precalculados y, por lo tanto, de predecir la calidad de la totalidad de la memoria cache.
Hay varias formas de utilizar la información del modelo probabilfstico con el fin de priorizar y de decidir que precios se van a recalcular a continuacion. El analizador 6 se puede configurar para aplicar esa estrategia o una mezcla de estrategias dependiendo de la situacion (por ejemplo, de acuerdo con un acuerdo con el cliente debido a los datos de viajes subyacentes en la MCP 3, dependiendo de la cantidad de datos, dependiendo de los recursos de calculo disponibles, dependiendo de la objecion en cuanto a la forma en la que se debena optimizar la memoria cache). Se pueden aplicar las siguientes estrategias:
• Precision de los precios: Esto tiene por objeto el aumento al maximo de la precision global del dominio de las fechas. En primer lugar se calculan los precios supuestamente inexactos.
• Precision de los precios, ponderada con la popularidad: Entre los precios que es verosfmil que sean inexactos, los precios mas populares se recalcularan con una prioridad mas alta que los precios menos populares.
• Precision de los precios, ponderada con la popularidad y por su antiguedad: Como la estrategia previa, pero tambien teniendo en cuenta el tiempo del ultimo recalculo. Esta estrategia evita la falta de recalculos que es causada por unos precios muy volatiles, en particular en el contexto en donde los recursos de recalculo son limitados en comparacion con la cantidad de precios que, en general, se debenan recalcular.
• Modular los pares de ciudades populares basandose en su ubicacion geografica y en la hora de recalculo: Esta estrategia tiene en cuenta adicionalmente unas estadfsticas de que vuelos de par de ciudades se consultan mas a menudo en instantes particulares de un dfa. Como un efecto, se evitan recalculos frecuentes en aquellos instantes en los que rara vez se accede a los vuelos de un par de ciudades espedfico (debido a que unos datos almacenados en memoria cache inexactos no tienen un efecto perjudicial siempre que las consultas respectivas no tengan lugar virtualmente en la practica).
Como un efecto secundario, el analizador 6 actualiza la base de datos de modelos de volatilidad 10 basandose en los valores de los precios recientemente recalculados que se reciben a partir de la MCP 3 y que se incorporan en la DCP 2. Debido a que el analizador no puede realizar un seguimiento de la volatilidad real de los precios almacenados en memoria cache basandose en la repeticion de recalculos, este puede realimentar esta informacion estadfstica de vuelta a la base de datos de modelos de volatilidad 10. Para actualizar el modelo de volatilidad, el analizador 6 cuenta el numero de diferencias entre los resultados de precios recien calculados y los valores de precios previamente recibidos. A partir de estas diferencias, este actualiza los parametros de volatilidad para las partes respectivas de los precios analizados.
De forma similar, el analizador 6 puede actualizar la base de datos de precisiones iniciales 11 de la misma forma. Este tambien puede pedir otros informes de popularidad, por ejemplo, si se han integrado por primera vez precios a partir de nuevos pares de ciudades en la DCP 2.
En el caso en el que no hay datos historicos y estadfsticos, de forma respectiva, para la volatilidad, la precision o la popularidad de los precios, el analizador 6 lleva a cabo su procesamiento con unos parametros por defecto para que sea tan conservador como sea posible.
Pasando a continuacion al tercer modulo, el consolidador 7, lleva a cabo el segundo nivel de la determinacion de probabilidad al tener en cuenta los eventos en tiempo real entrantes. Ademas, esta es la entidad que genera las ordenes recalculadas y las emite a la MCP 3. Esta toma las salidas del analizador 6 como algo en lo que basar su decision. Estas proporcionan una primera estimacion de las prioridades de recalculo para todos los precios del dominio de datos. Entonces, la misma superpone la totalidad de la información que se recopila a partir de las
diversas fuentes de eventos en tiempo real para rectificar las prioridades de recalculo. Esto da como resultado unas prioridades de recalculo potenciadas.
De forma opcional, este puede considerar cualquier acuerdo de nivel de servicio de cliente tal como, por ejemplo, “garantizar que todos los precios se recalcularan al menos una vez a la semana”, y rectificar las prioridades en consecuencia. El mismo selecciona aquellas entradas en la representacion de datos de precios interna 8 con las prioridades mas altas en primer lugar y las marca para su recalculo. Debido a que, preferiblemente, el consolidador tiene conocimiento de los recursos de calculo que se encuentran disponibles en la MCP 3, este es capaz de marcar tantos precios almacenados en memoria cache como puedan ser recalculados por la MCP 3 en un intervalo de tiempo particular. Entonces, la misma envfa la orden recalculada resultante a la MCP 3.
La información a partir de los eventos en tiempo real es un medio para mejorar la precision de los datos almacenados en memoria cache frente a un modelado estadfstico estricto. Estos se pueden usar para realizar un seguimiento de lo que esta teniendo lugar realmente en lugar de solo lo que se espera. Esto es un medio para controlar las predicciones del modelo estadfstico y rectificar las mismas / la misma cuando se muestra que las predicciones son erroneas o inapropiadas. Se pueden contemplar varias clases de eventos en tiempo real con respecto a la presente forma de realizacion:
Los eventos de los actores tienen lugar, en general, de forma selectiva (es decir, de vez en cuando), pero pueden tener una influencia drastica sobre las decisiones recalculadas. Los clientes externos pueden proporcionar una realimentacion acerca de las discrepancias entre la memoria cache y la compra que este esta experimentando en su propia plataforma. Esta realimentacion se puede usar para rectificar la precision que se predice por medio del modelo estadfstico y, por lo tanto, forzar recalculos antes cuando sea necesario. Cuando un proveedor de datos que se almacenan en la MCP 3 (por ejemplo, un proveedor de viajes que ofrece viajes) lleva a cabo una campana de promocion que promueve vuelos en determinados pares de ciudades, se puede suponer que estos precios son mas volatiles y quedan obsoletos mas a menudo. Por lo tanto, podna ser necesario que se aumentara la frecuencia de recalculo de estos precios durante la campana de promocion. Como otro ejemplo, de vez en cuando puede ser necesaria una operacion de mantenimiento para la MCP 3, o se pueden experimentar problemas operativos dentro del sistema 1. En tales casos, se puede ordenar a la DCP 2 que genere menos ordenes recalculadas, o ninguna, hasta que se ha realizado el mantenimiento y se ha subsanado el problema, de forma respectiva.
Los eventos de disponibilidad indican un estado en tiempo real acerca de la precision de los vuelos almacenados en memoria cache. Dependiendo de la instruccion del evento, se puede saber con certeza que un precio espedfico del dominio de datos subyacente en la MCP 3 ha cambiado y, por lo tanto, el precio que es almacenado en memoria cache por la DCP 2 se ha vuelto no valido. No obstante, tambien se pueden ver afectados otros precios, en donde el efecto es incierto y, por lo tanto, se puede aumentar la probabilidad de que estos precios esten obsoletos. Por ejemplo, un evento de “clase cerrada” indica que una clase de reserva particular ha quedado completa para un vuelo particular. Los asientos en este vuelo y clase ya no pueden reservarse y, por lo tanto, los precios respectivos que son almacenados en memoria cache por la DCP 2 se han vuelto no validos con certeza. No obstante, esto se podna considerar como una indicacion de que otras clases del mismo vuelo y / o los asientos en la misma clase en otros vuelos que salen poco antes o despues de este vuelo se podnan volver mas volatiles. Por lo tanto, sus probabilidades de quedar obsoletos podnan aumentar y el recalculo de estos precios podna ser beneficioso. Como otro ejemplo, se experimenta que las aerolmeas de bajo coste establecen el precio de sus asientos dependiendo de la ocupacion del vuelo. Tras las notificaciones de los cambios de ocupacion, los precios almacenados en memoria cache respectivos se pueden recalcular con rapidez y, por lo tanto, se mejora / recupera la precision de la memoria cache.
Las implicaciones de los eventos de cambios de tarifas son diffciles de estimar. Expuesto de una forma sencilla, las tarifas contienen una información y una logica tal como unas reglas que se usan para calcular un precio de un vuelo particular. Por lo tanto, cuando se calcula el precio real de un vuelo particular, se accede a un conjunto de tarifas, se decide que tarifa es relevante y se va a aplicar en la practica y, por ultimo, se calcula el precio. Por lo tanto, hay una relacion “vuelo ^ tarifa o tarifas” (que, no obstante, tambien puede cambiar a lo largo del tiempo, debido a que pueden cambiar las restricciones sobre que tarifa es de aplicacion a un vuelo particular). No obstante, en general no se realiza un seguimiento de las relaciones en el otro sentido “tarifa ^ vuelos”, es decir, no queda claro que tarifa se aplica, de hecho, a que vuelos. Ademas, un cambio en una tarifa incide potencialmente sobre una enorme cantidad de precios que se calculan a partir del dominio de datos subyacente.
Con el fin de determinar el impacto de los eventos de tarifas, la comunicacion entre la MCP 3 y la DCP 2 se puede utilizar para dotar a la DCP 2 de una correlacion con las tarifas que son aplicadas por la MCP 3 para calcular precios. Cuando se calculan precios en respuesta a las ordenes recalculadas, la MCP 3 registra todas las tarifas a las que se accede para calcular los precios solicitados. Esta información se almacena entonces de forma global en una correlacion tarifas ^ vuelos y se mantiene durante cada calculo por la MCP 3. En el momento en el que se recibe un evento de cambio de tarifas, el gestor de entradas 5 explora esta correlacion global con el fin de determinar los vuelos que se ven afectados por el evento de cambio de tarifas y los marca como “actualizados”. Observese que un cambio de tarifas no implica necesariamente un cambio de precios para una recomendacion de viajes, tal como se ha explicado brevemente en lo que antecede.
El consolidador 7 evalua en primer lugar la influencia potencial del evento en tiempo real sobre los precios almacenados en memoria cache en lugar de iniciar un recalculo de las recomendaciones de viajes almacenadas en memoria cache sin haber considerado la relacion del evento con el modelo probabiUstico basico. Tales eventos se analizan en primer lugar con respecto a su representacion en el modelo probabiUstico.
Tal como se ha bosquejado en lo que antecede, las especificidades de este analisis dependen del tipo de modelo probabilfstico que se usa. En el caso de un modelo conceptual, se conoce, a partir del proceso de generacion de modelos, que eventos se han considerado en el modelo probabilfstico. Por lo tanto, los eventos entrantes se comprueban frente a las caractensticas del modelo probabilfstico que se conocen a partir del proceso de generacion de modelos con el fin de determinar si, en el modelo, se encuentra presente, o no, un evento particular.
Por otro lado, se puede usar un modelo historico - estadfstico y, en consecuencia, puede que no se sepa a priori que eventos han conducido a una base de datos historica - estadfstica del modelo. En este caso, el siguiente enfoque se puede adoptar con el fin de determinar si un evento particular esta representado, o no, en el modelo probabilfstico (por razones de complecion: el siguiente enfoque no se limita a tipo particular alguno de modelo probabilfstico y tambien se puede emplear, por ejemplo, para los modelos conceptuales).
Dependiendo del tamano del dominio de datos que es formado por todos los resultados de consulta de base de datos precalculados almacenados en memoria cache, los resultados de consulta de base de datos almacenados en memoria cache se subdividen en unas porciones mas pequenas, a las que se hace referencia como “cuotas” en lo sucesivo en el presente documento. En el ejemplo de los resultados de consulta de base de datos precalculados que son unas recomendaciones de viajes con precio, las cuotas estan formadas, por ejemplo, por unos pares de origen -destino, es decir, una cuota incluye todas las recomendaciones de viajes con precio precalculadas que tienen la misma ubicacion de origen y de destino. Como alternativa, si el dominio de datos solo es de un tamano limitado, no se lleva a cabo subdivision alguna. En otras palabras, en este caso, solo hay una cuota que cubra todos los resultados de consulta de base de datos precalculados que se mantienen en la DCP 2.
Despues de que se haya detectado un evento en tiempo real asmcrono, se identifican una cuota o mas cuotas que potencialmente se ven afectadas por este evento, es decir, que contienen unos resultados de consulta de base de datos precalculados que pueden tener una probabilidad aumentada de estar obsoletos debido al evento detectado.
Una precision real de la al menos una cuota se determina, por ejemplo, mediante la estimacion de su precision mediante el recalculo de una muestra particular o aleatoria de los resultados de consulta de base de datos precalculados en la cuota. Por ejemplo, si la cuota contiene 10.000 resultados de consulta de base de datos precalculados, se recalcula una muestra de 20 resultados de consulta de base de datos precalculados. Este recalculo se lleva a cabo de forma similar a otros recalculos. La DCP 2 genera y emite unas ordenes recalculadas a la MCP 3. La MCP 3 lleva a cabo los recalculos y devuelve sus resultados, es decir, los resultados de consulta de base de datos precalculados de muestra actualizados a la DCP 2. La DCP 2 compara los resultados de los recalculos de muestra con los resultados de consulta de base de datos correspondientes que previamente se han almacenado en memoria cache y, por ejemplo, determina el porcentaje de los resultados de consulta de base de datos precalculados de muestra que han cambiado (es decir, que se han quedado obsoletos o que han sido inexactos) y /o el porcentaje de los resultados de consulta de base de datos precalculados de muestra que permanecen sin cambios (es decir, que no se han quedado obsoletos y segrnan siendo precisos). Estos porcentajes de los resultados de consulta de base de datos precalculados de muestra se podnan transferir a la cuota global como una estimacion de la precision de la cuota global, es decir, en general se podna concluir, a partir de estos porcentajes de muestra, que la cuota global presenta una inexactitud / precision similar a la de la muestra.
En una etapa siguiente, la precision real determinada de la cuota se compara con la precision de la cuota que se predice por medio del modelo probabilfstico. Dependiendo del resultado de esta comparacion, se concluye si el evento en tiempo real asmcrono particular esta representado, o no, en el modelo probabilfstico y, posiblemente, en que medida lo esta. Si la precision real determinada se encuentra por debajo de la precision que se predice por medio del modelo probabilfstico en una medida superior a una dada, es decir, la precision de muestra es sustancialmente menor que la precision que se predice por medio del modelo, no se considera que el evento este incluido en el modelo probabilfstico. Si, por otro lado, la precision real determinada se encuentra por debajo de la precision que se predice por medio del modelo probabilfstico menos que la medida dada, o ambas precisiones son identicas o la precision real determinada es incluso superior a la precision predicha, se considera que el evento esta representado en el modelo probabilfstico. La diferencia entre ambas precisiones tambien es un indicador de la medida en la que el evento se ha incorporado en el modelo.
Se hace notar que el propio muestreo se puede reconocer como una forma de detectar los eventos en tiempo real asmcronos que han tenido lugar en primer lugar. Ademas de o como alternativa a las indicaciones explfcitas de eventos en tiempo real asmcronos tales como una indicacion procedente de una lmea aerea de que se ha cancelado un vuelo particular o una indicacion de una campana de promocion, el muestreo se puede utilizar para detectar de forma implfcita los eventos en tiempo real asmcronos que no son indicadas de forma explfcita por una tercera parte.
Para este fin, se puede emplear un proceso de muestra continuo u ordinario a lo largo de todas las cuotas con el fin de estimar la precision real de todas las cuotas de los resultados de consulta de base de datos precalculados. Esto permite una deteccion implfcita de los eventos que no se reflejan en el modelo probabilfstico si, de la comparacion
de la precision real determinada y la precision que se predice por medio del modelo probabiKstico, resulta que la primera es sustancialmente mas baja que esta ultima.
Se hace notar adicionalmente que la identificacion de una cuota o mas cuotas que potencialmente se ven afectadas por un evento detectado depende de las caractensticas y el conocimiento acerca de los eventos. Si, por ejemplo, un evento se ha detectado de forma implfcita por medio de un proceso de muestreo dclico, las cuotas potencialmente afectadas se han determinado al mismo tiempo (en concreto, aquellas cuotas cuya precision real determinada es sustancialmente menor que la precision predicha). Por otro lado, una senalizacion explfcita de un evento tambien puede contener una indicacion de unos resultados de consulta de base de datos precalculados potencialmente afectados. Si, por ejemplo, una lmea aerea ha senalizado la cancelacion de un vuelo particular, se podna considerar que los precios de los vuelos entre el mismo origen y destino durante los instantes antes y despues de los vuelos cancelados se ven potencialmente afectados. Ademas, a partir de la experiencia pasada se puede saber que eventos (senalizados de forma explfcita) tienen un impacto potencial sobre la precision de que resultados de consulta de base de datos precalculados. Por ejemplo, es posible volver a realizar un seguimiento de que eventos en tiempo real y de la vida real han sido responsables de unas precisiones disminuidas de las cuotas que se detectan por medio de un proceso de muestreo continuo y volver a obtener un cierto conocimiento acerca del impacto habitual de determinados eventos en tiempo real asmcronos de esta forma.
El analisis anterior de estimacion de la precision real de las cuotas y de comparacion de esta con la precision que se predice por medio del modelo probabilfstico se describe a continuacion de una forma mas detallada y mas formal. Se hace referencia a la precision real de un resultado de consulta de base de datos precalculado X i como Prec i. El resultado de consulta de base de datos precalculado X i es, en un instante particular en el tiempo, o bien preciso (Prec i = 1), es decir, igual al resultado de su recalculo, o inexacto (Prec i = 0), es decir, diferente de los resultados de su recalculo. La recopilacion de todos los resultados de consulta de base de datos precalculados se puede dividir, desde un punto de vista logico, en las cuotas D j . Las siguientes consideraciones se refieren a una cuota D a modo de ejemplo espedfica. La precision promedio de los resultados de consulta de base de datos precalculados que estan contenidos en la cuota D tal como se predice por medio del modelo probabilfstico se denota como Prec modeio (D). Por otro lado, se hace referencia a la proporcion de los resultados de consulta de base de datos precalculados precisos en la practica en D como Prec (D).
Tal como se ha descrito en lo que antecede, con el fin de determinar o estimar Prec (D), se lleva a cabo un recalculo de muestra de N resultados de consulta de base de datos precalculados en D. Se hace referencia al numero de resultados precisos entre los N como AC n , es decir, despues de haber recalculado los N resultados de consulta de base de datos precalculados de muestra, AC n resultados de consulta de base de datos recalculados son identicos a sus contrapartidas previamente almacenadas en memoria cache mientras que (N - AC n ) resultados de consulta de base de datos recalculados difieren de sus contrapartidas previamente almacenadas en memoria cache y, por lo tanto, se ha hallado que son inexactos.
Tal como se ha indicado en lo que antecede, la probabilidad de precision para un resultado de consulta de base de datos precalculado X i dentro de la cuota D es Prec (D).
Esto se puede generalizar para los N resultados de consulta de base de datos precalculados de muestra dentro de D mediante el empleo de la ley binomial AC n ~ B (N, Prec (D)). Por lo tanto, la probabilidad de que K resultados de consulta de base de datos precalculados de entre las N muestras sean precisos es
La esperanza estadfstica de esta ley es E (AC n ) = N x Prec (D).
Por lo tanto, la relacion es una estimacion de la precision real de la cuota D, Prec (D), que es transmitida por el resultado del recalculo de muestra de los N resultados de consulta de base de datos precalculados de muestra. Por otro lado, Precmodeio (D) es la estimacion de precision de Prec (D) que se da por medio del modelo probabilfstico.
Con el fin de determinar si, en el modelo probabilistico, se encuentra presente, o no, un evento en tiempo real dado, es necesario que se decida si o si Prec modeio (D) es la aproximacion mas fidedigna de Prec (D) en el caso
verosfmil en el que ambos valores difieren entre sf, en particular si Para preparar Esta decision, se pueden especificar dos hipotesis Ho y Hi: Ho: La prediccion del modelo probabilistico indica de forma
apropiada la precision de la cuota D, es dedr, Prec (D) = Precmodeio (D). es menor que Precmodeio (D) debido
a las desviaciones estad^sticas que son causadas por el proceso de muestreo (es decir, de forma accidental, los N resultados de consulta de base de datos precalculados seleccionados son mas inexactos que el promedio de todos los resultados de consulta de base de datos precalculados en D y, por lo tanto, las N muestras no se reflejan de forma representativa Prec (D)).
Hi: Tuvo lugar algo que no era esperado por el modelo probabiKstico y, por lo tanto, Precmodeio (D) es una estimacion inapropiada de Prec (D). Mas bien, la estimacion de precision real que se logra por medio del recalculo
Tomar la decision Do de que Ho es cierta o la decision Di de que Hi es cierta se puede hacer de la siguiente forma: Si la precision real es menor que la precision predicha en una medida superior a una dada, hay una verosimilitud aumentada de que la precision que se predice por medio del modelo probabilistico sea inapropiada y de que sea necesario reducirla. Este es, por ejemplo, el caso si Precmodeio (D) indica una precision Prec (D) de un 85%, mientras que la precision real que es recibida por el recalculo de muestra solo indica unicamente un 20 % de resultados de consulta de base de datos precalculados precisos dentro de D. En este caso, Do es la decision correcta. Si, no obstante, la precision real que es recibida por el muestreo y la precision que se predice por medio del modelo son similares, es decir, la desviacion entre ambas indicaciones es relativamente pequena, la precision que se predice por medio del modelo probabilistico es probablemente apropiada. Por dar un ejemplo, este puede ser
el caso si Precmodeio (D) indica una precision Prec (D) de un 85 % y asciende a un 80 % de precision. En
este caso, Di es la decision correcta.
Con el fin de definir la frontera entre D o y D i , se introduce un umbral K m : Si AC n > K m , entonces la precision que se predice por medio del modelo probabilistico Prec modeio (D) se considera como una aproximacion apropiada de Prec (D), se elige D o. Si AC n ^ K m , entonces no se considera que la precision que se predice por medio del modelo probabilistico Prec modeio (D) sea una aproximacion apropiada de Prec (D), se elige D i .
Con el fin de ajustar Km a un valor apropiado, es ventajoso tener información acerca de la calidad del modelo probabilistico. Habitualmente, tal información se encuentra disponible a partir de un proceso de verificacion de modelos que se ha llevado a cabo antes de implantar el modelo y /o durante su uso continuado. Por ejemplo, se puede haber observado durante un ano de uso del modelo probabilistico que los eventos en tiempo real asmcronos que no son reflejados por el modelo probabilistico son bastante raros y tienen lugar, por ejemplo, en solo tres dfas de cada 365 dfas. En este caso, se puede suponer que Prec modeio (D) es apropiado (= H o) aproximadamente un 99% del tiempo e inapropiado solo aproximadamente un 1 % del tiempo (= H i ). En otro ejemplo, los eventos en tiempo real asmcronos que no se incluyen en el modelo probabilistico pueden tener lugar relativamente a menudo tal como en 180 dfas de un ano. Por lo tanto, se puede suponer que Prec modeio (D) es apropiado solo en uno de cada dos casos, es decir, hasta un 50 % del tiempo (= H o) e inapropiado de lo contrario (= H i ).
Una forma a modo de ejemplo de establecer Km al tener en cuenta la calidad / fiabilidad pasada del modelo probabilistico es considerar la probabilidad de una decision erronea D i , es decir, no se considera que Prec modeio (D) sea una estimacion apropiada de Prec (D) a pesar de que la misma lo es en la practica. La probabilidad de que la prediccion del modelo probabilistico sea correcta se puede expresar como:
La probabilidad a de que la hipotesis H o sea cierta y de que se tome una decision erronea D i es la probabilidad de que ACn sea menor que Km:
Esta formula permite elegir a y definir Km de acuerdo con la fiabilidad pasada del modelo probabilistico. Si, por ejemplo, el modelo probabilistico ha sido correcto un 99 % de es tiempo, a se establece a 0,01. El valor umbral de Km se puede calcular entonces usando la formula previa. Si el numero de K resultados de recalculo de muestra
precisos es menor que Km, es decir, se considera que la estimacion de precision rea que se determina por
medio de los recalculos de muestra es una estimacion mas fiable de Prec (D) que Prec modeio (D):
Por lo tanto, para resumir, si AC n es igual a o se encuentra por encima de Km, se considera que el evento en tiempo real asmcrono esta representado en el modelo probabiKstico y no es necesaria rectificacion alguna de las probabilidades de los resultados de consulta de base de datos precalculados respectivos. Si, no obstante, si AC n se encuentra por debajo de Km, se supone que el evento no esta representado en el modelo probabilfstico.
Para los eventos que no se pueden predecir y, por lo tanto, no se incluyen en el modelo probabilfstico en absoluto como, por ejemplo, campanas de promociones o eventos de mantenimiento, los eventos se procesan tan pronto como sea posible. En general, esto quiere decir que las probabilidades de aquellos resultados de consulta de base de datos precalculados que potencialmente se ven afectados por un evento en tiempo real particular se rectifican, en particular se disminuyen. Continuando con el ejemplo anterior de determinacion de si, en el modelo probabilfstico, se encuentra presente, o no, un evento, opcionalmente esta rectificacion se logra mediante la aplicacion de la
ejemplo, si ha resultado que es un 25 % menor que la Prec modeio (D), las predicciones de precision actuales
del modelo probabilfstico para los resultados de consulta de base de datos precalculados en la cuota D se disminuyen, por ejemplo, tambien en un 25 %. Esta rectificacion a modo de ejemplo se visualiza por medio de la figura 4b (los ejes x e y en la figura 4 tienen el mismo significado que en la figura 4a, es decir, el eje x ilustra el tiempo desde el ultimo recalculo (= la antiguedad t) en horas, el eje y muestra la probabilidad de precision / obsolescencia).
Despues de que se haya realizado esta rectificacion, la decision de que resultados de consulta de base de datos precalculados se van a recalcular se toma tal como es habitual, es decir, de la misma forma que si no hubiera tenido lugar rectificacion alguna de las probabilidades. Haciendo referencia de nuevo al modelo historico - estadfstico a modo de ejemplo que se ha bosquejado en lo que antecede, la probabilidad expuesta por el modelo probabilfstico para la precision / obsolescencia es e 'Aiti. No obstante, debido a que la misma se puede rectificar en respuesta a los eventos en tiempo real asmcronos reconocidos, por ejemplo, mediante la aplicacion de la estrategia que se ha descrito con detalle en lo que antecede, en la practica se puede recalcular paso a paso: en el instante T n la precision / obsolescencia probable PrecTn se recalcula a partir de su valor previo en el instante Tn-i: t
El siguiente calculo de precision por el analizador 6 comienza de nuevo a partir del valor previo (que se ha rectificado potencialmente en respuesta a los eventos en tiempo real).
La rectificacion de las probabilidades en respuesta a los eventos en tiempo real asmcronos entrantes, por ejemplo, la precision que se predice por medio del modelo probabilfstico, se restablece despues de que los resultados de consulta de base de datos precalculados respectivos hayan sido recalculados por la MCP 3 la siguiente vez.
Los eventos que estan representados en el modelo probabilfstico, al menos hasta un cierto punto, como tarifas o cambios de disponibilidad, se acumulan opcionalmente y su apariencia se compara habitualmente con las predicciones del modelo probabilfstico. Cuando los picos de evento no coinciden con el modelo a nivel local, es decir, una rafaga de eventos se encuentra significativamente fuera de la estadfstica que subyace al modelo probabilfstico, los precios afectados se marcan como potencialmente obsoletos con el fin de recalcular los mismos tan pronto como sea posible. Por medio de esto, se elimina por filtrado el “ruido” que es causado por los eventos que se encuentran ya presentes en el modelo probabilfstico y que, por lo tanto, ya han sido considerados por las determinaciones que son realizadas por el analizador 6 de antemano.
De forma opcional, el manejo de los eventos en tiempo real asmcronos entrantes se realiza por medio de un componente dedicado que es funcionalmente independiente de o un subcomponente del consolidador 7, un modulo de gestion de eventos. Los eventos son recibidos por el gestor de entradas 5 e inicialmente se almacenan sin
agregacion en el deposito de datos interno. El gestor de eventos recibe cualquier evento en tiempo real asmcrono entrante, procesa el evento, por ejemplo, mediante la aplicacion de la estrategia que se ha descrito con detalle en lo que antecede, y posiblemente lleva a cabo la rectificacion de las probabilidades de que los resultados de consulta de base de datos precalculados afectados esten obsoletos / sean inexactos. De forma opcional, la estrategia que se ha descrito en lo que antecede solo se aplica si un numero dado de eventos ha sido reconocido por el gestor de eventos aplica la estrategia que se ha descrito en lo que antecede y la precision probable de cada resultado de consulta de base de datos precalculado se rectifica en consecuencia solo entonces, si es necesario.
De forma opcional, para fines de optimizacion, el consolidador 7 trabaja sobre una vista de cuadncula de la representacion de datos interna 8, es decir, el mismo considera grupos de precios adyacentes de forma conjunta durante su algoritmo en lugar de trabajar sobre el conjunto de precios de una forma aislada. En el presente enfoque, los conjuntos de datos de precios adyacentes se ven como un unico conjunto de datos con unos valores de las propiedades agregadas. Trabajar sobre conjuntos de datos agregados limita la generacion de unas ordenes recalculadas dispersas, y, por lo tanto, aumenta las oportunidades de mutualizacion y de optimizacion en la MCP 3. Esto reduce los costes de calculo.
La figura 5 resume la descripción detallada anterior y da una vision de conjunto del metodo de actualizacion de memoria cache que se presenta en el presente documento.
El proceso de mantener actualizada la memoria cache de los resultados de consulta de base de datos precalculados comienza con la determinacion 14 de las probabilidades de inexactitud de los resultados de consulta almacenados en memoria cache. Esta determinacion se compone de dos actividades que estan ubicadas en dos niveles logicos: En primer lugar y en general, se emplea un modelo predictivo basandose en datos estadfsticos y probabilfsticos con el fin de estimar la verosimilitud de que un resultado de consulta almacenado en memoria cache particular no se corresponda con el resultado de consulta que (hipoteticamente) se ha recalculado. En segundo lugar y mas en concreto, se tienen en cuenta unos eventos en tiempo real que potencialmente inciden sobre y aumentan, de forma respectiva, la probabilidad de que los resultados de consulta almacenados en memoria cache esten obsoletos. Estos eventos en tiempo real se caracterizan por el hecho de que los mismos, en general, no indican una inexactitud de unos resultados de consulta almacenados en memoria cache particulares con certeza, sino que son indeterministas a este respecto. Por lo tanto, cuando tienen lugar los mismos, solo se pueden extraer unas conclusiones probabilfsticas acerca de la verosimilitud de precision e inexactitud, de forma respectiva.
En funcion de las probabilidades determinadas de que los resultados de consulta de base de datos almacenados en memoria cache esten obsoletos, las ordenes recalculadas de base de datos son emitidas de forma automatica 15 por la DCP 2. Estas ordenes son recibidas por la MCP 3 que entonces recalcula los resultados respectivos y devuelve estos 16 a la DCP 2. A su vez, la DCP 2 recibe los resultados y los almacena 17 en una representacion local 8. Esto concluye un ciclo de actualizacion y el siguiente ciclo vuelve a realizar una iteracion con la determinacion de probabilidad 14.
A continuacion, se describe con respecto a la figura 6 un ejemplo particular con respecto a la temporizacion del procedimiento de la presente estrategia de actualizacion de memoria cache. En el presente ejemplo, la DCP 2 esta configurada para generar ordenes recalculadas cada 20 minutos, es decir, una ronda o ciclo de determinacion de las probabilidades de si los datos almacenados en memoria cache estan obsoletos y de generacion y emision de las ordenes recalculadas lleva 20 minutos. Los recursos en la MCP 3 se conocen a priori durante todo un dfa y la DCP 2 esta al tanto de los recursos de calculo que se encuentran disponibles en la MCP 3 y, por lo tanto, es capaz de sincronizar la cantidad de recalculos con los recursos disponibles de la MCP 3.
Al principio de un ciclo de recalculo, la DCP 2 analiza la precision actual de los resultados de consulta de base de datos almacenados en memoria cache, es decir, las recomendaciones de viajes con precio que se almacenan en la base de datos interna 8. La ronda produce un conjunto de ordenes recalculadas que se procesaran por medio de la MCP 3 al final de la ronda de 20 minutos. Mientras tanto, en el lado de la MCP 3, las ordenes que proceden del ultimo ciclo se estan calculando y unas nuevas recomendaciones de precios se generan y se transmiten de vuelta a la DCP, en donde las mismas se almacenan y se encuentran disponibles para el analisis y la actualizacion de la información periodica en el siguiente ciclo.
La figura 6 muestra que la MCP tiene una cantidad significativa de recursos disponibles en el intervalo de tiempo entre las 04:00 y las 05:00 a. m., por lo tanto se puede llevar a cabo una gran cantidad de recalculos en esta hora. Despues de lo anterior, no obstante, no se encuentra disponible recurso alguno hasta las 9:00 a. m., por lo tanto no es posible recalculo alguno en ese instante. Mas tarde durante el dfa, de 09:00 a. m. a 7:00 p. m., algunos recursos se encuentran disponibles en la MCP 3.
Durante el ciclo que comienza a las 04:20 a. m., el analizador 6 analiza la precision de la memoria cache, mientras que el consolidador 7 genera unas ordenes recalculadas en consecuencia. Esas ordenes seran puestas en practica por la MCP 3 a las 04:40 a. m. El analizador 6 se centra en la recomendacion de precios de MCP que el mismo recibio al principio de la ronda. Este cuenta las diferencias entre los precios recibidos y los precios previos cuyos valores se han almacenado en un deposito interno. Basandose en las diferencias, el mismo rectifica la fuente,
periodica en cuanto a la “volatilidad”, de informacion. El gestor de entradas 5 guarda los precios de MCP recibidos para su inspeccion adicional.
En el ciclo de 4:40 a 5:00 a. m., la MCP 3 procesa las ordenes recalculadas que se reciben a partir de la DCP 2 durante el intervalo de 04:20 a 4:40 a. m. La DCP 2 esta al tanto de que la misma no puede generar orden recalculada alguna para el sector de tiempo por venir (05:00 a. m.) y sus sucesores hasta las 09:00 a. m. No obstante, esta sigue analizando el modelo de datos de forma continua para actualizar la precision actual de todas las recomendaciones de viajes con precio almacenadas en memoria cache. Esta realizara lo mismo para cada ciclo futuro hasta las 08:40 a. m.
A las 08:40 a. m., el analizador 6 determina que la precision de la memoria cache disminuyo durante las cuatro horas previas sin recalculo alguno. Este genera unas ordenes recalculadas en consecuencia a lo largo de los siguientes ciclos, pero solo hasta una medida menor debido a la cantidad limitada de recursos disponibles en la MCP 3 desde las 09:00 a. m. hasta las 7:00 p. m. Entonces, a las 09:00 a. m., la MCP 3 comienza a procesar las nuevas ordenes recalculadas que la misma recibio en el intervalo anterior (es decir, de 08:40 a 09:00 a. m.) y se detendra despues del final de la ronda que dura de 6:40 a 7:00 p. m.
Despues de eso, no se encuentra disponible recurso adicional alguno en la MCP 3 de principio a fin de la noche. Por lo tanto, la DCP 2 no generara orden recalculada adicional alguna, sino que continuara analizando la precision de la memoria cache en funcion del modelo probabiffstico y posiblemente los eventos en tiempo real entrantes.
Por ultimo, la figura 7 es una representacion esquematica de un sistema informatico que proporciona la funcionalidad de la plataforma de memoria cache 2 de la figura 2. Dentro de la plataforma de memoria cache 2 se puede ejecutar un conjunto de instrucciones, para dar lugar a que el sistema informatico lleve a cabo cualquiera de las metodologfas que se analizan en el presente documento. La plataforma de memoria cache 2 incluye un procesador 101, una memoria principal 102 y un dispositivo de interfaz de red 103, que se comunican entre sf por medio de un bus 104. De forma opcional, esta 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 la plataforma de memoria cache de datos 2 con la plataforma de calculo 3, las fuentes de los datos estadfsticos que son necesarios para rellenar el modelo predictivo tales como los servidores de estadfsticas 9, la base de datos de volatilidad 10 y la base de datos de precision inicial 11, las fuentes de los eventos en tiempo real, Internet y /o cualquier otra red. Un conjunto de instrucciones (es decir, un soporte ffsico) 110 que materializa una cualquiera, o la totalidad, de las metodologfas que se han descrito en lo que antecede, residen completa, o al menos parcialmente, dentro de, 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 soporte ffsico 110 tambien puede ser un soporte de datos no volatil 111 (por ejemplo, un disco duro magnetico no extrafble o un disco extrafble optico o magnetico) que sea parte de la unidad de disco 106. El soporte ffsico 110 se puede transmitir o recibirse adicionalmente como una serial propagada 112 por medio de Internet a traves del dispositivo de interfaz de red 103.
La presente estrategia de actualizacion de memoria cache proporciona un medio para generar de forma automatica unas decisiones de recalculo. Esta determina que resultados de consulta almacenados en memoria cache se han de recalcular y controla el recalculo tambien según el tiempo, al tener en cuenta los recursos de calculo disponibles en la plataforma de calculo. Por lo tanto, en general, la precision de los resultados de consulta almacenados en memoria cache se estima en el modelo probabiffstico que modela la actualizacion y desactualizacion, respectivamente, a lo largo del tiempo. Estos analisis de desactualizacion posibilitan el procesamiento de varios miles de millones de conjuntos de datos por hora, que subyacen al recalculo de los resultados de consulta de base de datos almacenados en memoria cache.
Claims (15)
1. Un metodo de actualizacion de unos resultados de consulta de base de datos precalculados en un sistema de base de datos distribuido (1), en donde el sistema de base de datos distribuido (1) comprende una plataforma de memoria cache de datos (2) que mantiene los resultados de consulta de base de datos precalculados y una plataforma de calculo (3) para calcular los resultados de consulta de base de datos precalculados basandose en datos que se mantienen en la plataforma de calculo (3), en donde la plataforma de memoria cache de datos (2) mantiene un modelo probabilfstico que modela las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria cache de datos (2) y los resultados de consulta de base de datos reales supuestos, comprendiendo el metodo:
- determinar, por la plataforma de memoria cache de datos (2), las probabilidades de estar obsoletos de los resultados de consulta de base de datos precalculados basandose en el modelo probabilfstico;
- detectar, por la plataforma de memoria cache de datos (2), un evento en tiempo real asmcrono que tiene una influencia probabilfstica sobre las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria cache de datos (2) y los resultados de consulta de base de datos reales supuestos;
- analizar, en la plataforma de memoria cache de datos (2), si el evento en tiempo real asmcrono esta representado en el modelo probabilfstico;
- aumentar, por la plataforma de memoria cache de datos (2), las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados si se determina que el evento en tiempo real asmcrono no esta representado en el modelo probabilfstico;
- emitir de forma automatica (15), por la plataforma de memoria cache de datos (2), unas ordenes recalculadas a la plataforma de calculo (3) para actualizar unos resultados de consulta de base de datos precalculados en funcion de las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados, en donde se ordena que se recalculen los resultados de consulta de base de datos precalculados que tienen una probabilidad de estar obsoletos por encima de un umbral dado; y
- recibir (17), en la plataforma de memoria cache de datos (2), los resultados de consulta de base de datos precalculados actualizados como resultados de las ordenes recalculadas.
2. Metodo de acuerdo con la 1 r,e einvi dnodnidceac dieótnectar el evento en tiempo real asmcrono y /o analizar si el evento en tiempo real asmcrono esta representado en el modelo probabilfstico comprende:
- determinar una precision de una cuota de los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria cache de datos, viendose potencialmente afectada la cuota de los resultados de consulta de base de datos precalculados por el evento en tiempo real asmcrono;
- comparar la precision determinada con una prediccion de la precision de la cuota de los resultados de consulta de base de datos precalculados por el modelo probabilfstico; y
- determinar que el evento en tiempo real asmcrono no esta representado en el modelo probabilfstico si la precision determinada se encuentra por debajo de la precision predicha hasta una medida dada.
3. Metodo de acuerdo con la r 2e,iv enind doicnadceió dneterminar la precision de la cuota de los resultados de consulta de base de datos precalculados comprende emitir unas ordenes recalculadas de muestra a la plataforma de calculo y comparar los resultados de las ordenes recalculadas de muestra con los resultados de consulta de base de datos precalculados respectivos previamente mantenidos en la plataforma de memoria cache de datos.
4. Metodo de acuerdo con la 2 r oei 3v,in ednic doancdióen la medida dada se define por medio de un valor umbral que se define de acuerdo con la fiabilidad pasada del modelo probabilfstico.
5. Metodo de acuerdo con cualquiera de las reivindicaciones 2 a 4, en donde aumentar las probabilidades determinadas de los resultados de consulta de base de datos precalculados comprende aumentar las probabilidades de los resultados de consulta de base de datos precalculados en la cuota a la precision determinada de la cuota.
6. Metodo de acuerdo con cualquiera de las reivindicaciones 1 a 5, que comprende adicionalmente:
- para los eventos en tiempo real que se determinan como que no estan representados en el modelo probabilfstico, emitir unas ordenes recalculadas con respecto a los resultados de consulta de base de datos precalculados potencialmente afectados tan pronto como sea posible.
7. Metodo de acuerdo con cualquiera de las reivindicaciones 1 a 6, que comprende adicionalmente:
- para los eventos en tiempo real que se determinan como que estan representados en el modelo probabilfstico, acumular tales eventos en tiempo real a lo largo de un determinado periodo de tiempo, comparar los eventos en tiempo real que han tenido lugar y que se han acumulado en la practica con su representacion en el modelo probabilfstico y, si los eventos en tiempo real que han tenido lugar y que se han acumulado en la practica se desvfan con respecto a su representacion en el modelo probabilfstico hasta una medida previamente
determinada, emitir unas ordenes recalculadas con respecto a los resultados de consulta de base de datos precalculados potencialmente afectados tan pronto como sea posible.
8. Metodo de acuerdo con cualquiera de las reivindicaciones anteriores, en donde la plataforma de memoria cache de datos (2), cuando se determinan las probabilidades de estar obsoletos de los resultados de consulta de base de datos precalculados y se emite el recalculo, considera unas cuadnculas de los resultados de consulta de base de datos precalculados que se corresponden con grupos de conjuntos adyacentes de datos que se mantienen en la plataforma de calculo (3).
9. Metodo de acuerdo con cualquiera de las reivindicaciones anteriores, en donde la plataforma de memoria cache de datos (2) emite las ordenes recalculadas basandose en la cantidad de recursos de calculo disponibles en la plataforma de calculo (3).
10. Metodo de acuerdo con cualquiera de las reivindicaciones anteriores, en donde el sistema de base de datos distribuido (1) es un sistema de reservas de viajes, en donde la plataforma de calculo (3) mantiene una informacion acerca de la disponibilidad de viajes y las tarifas y la plataforma de memoria cache de datos (2) mantiene unas recomendaciones de viajes con precio que se calculan a partir de la informacion de disponibilidad de viajes y las tarifas.
11. Metodo de acuerdo con la 10 r,e einvi dnodnidceac loisón eventos en tiempo real comprenden cambios de tarifas de vuelo, cambios de disponibilidad de asientos de avion, solicitudes de billetes de vuelo de clientes y /o cancelaciones de vuelos.
12. Metodo de acuerdo con cualquiera de las reivindicaciones anteriores, en donde el sistema de base de datos distribuido (1) comprende al menos una plataforma de aplicaciones (4) que esta conectada con la plataforma de calculo (3), manteniendo y organizando la al menos una plataforma de aplicaciones (4) los resultados de consulta de base de datos precalculados, siendo rellenados y /o actualizados los resultados de consulta de base de datos que estan almacenados en la al menos una plataforma de aplicaciones (4) por la plataforma de calculo (3) como un resultado de las ordenes recalculadas que son emitidas por la plataforma de memoria cache de datos (2).
13. Plataforma de memoria cache de datos (2) que mantiene unos resultados de consulta de base de datos precalculados que son calculados por una plataforma de calculo (3) basandose en datos que se mantienen en la plataforma de calculo (3), estando configurada la plataforma de memoria cache de datos (2) para:
- mantener un modelo probabilistic que modela las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria cache de datos (2) y los resultados de consulta de base de datos reales supuestos,
- determinar las probabilidades de estar obsoletos de los resultados de consulta de base de datos precalculados basandose en el modelo probabilistic,
- detectar un evento en tiempo real asmcrono que tiene una influencia probabilfstica sobre las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en la plataforma de memoria cache de datos (2) y los resultados de consulta de base de datos reales supuestos;
- analizar si el evento en tiempo real asmcrono esta representado en el modelo probabilistic;
- aumentar las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados si se determina que el evento en tiempo real asmcrono no esta representado en el modelo probabilistic;
- emitir de forma automatica unas ordenes recalculadas a la plataforma de calculo (3) para actualizar unos resultados de consulta de base de datos precalculados en funcion de las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados, en donde se ordena que se recalculen los resultados de consulta de base de datos precalculados que tienen una probabilidad de estar obsoletos por encima de un umbral dado; y
- recibir los resultados de consulta de base de datos precalculados actualizados como resultados de las ordenes recalculadas.
14. Plataforma de memoria cache de datos (2) de acuerdo con la reivindicacion 13, que esta configurada adicionalmente para
- para los eventos en tiempo real que no estan representados en el modelo probabilistic, emitir unas ordenes recalculadas con respecto a los resultados de consulta de base de datos precalculados particulares respectivos tan pronto como sea posible;
- para los eventos en tiempo real que estan representados en el modelo probabilistic, acumular tales eventos en tiempo real a lo largo de un determinado periodo de tiempo, comparar los eventos en tiempo real que han tenido lugar y que se han acumulado en la practica con su representacion en el modelo probabilistic y, si los eventos en tiempo real que han tenido lugar y que se han acumulado en la practica se desvfan con respecto a su representacion en el modelo probabilistic hasta una medida previamente determinada, emitir unas ordenes recalculadas con respecto a los resultados de consulta de base de datos precalculados potencialmente afectados
tan pronto como sea posible.
15. Un programa informatico que, cuando se ejecuta en un sistema informatico, da lugar a que el sistema informatico (2):
- mantenga un modelo probabiKstico que modela las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en el sistema informatico (2) y los resultados de consulta de base de datos reales supuestos;
- determine las probabilidades de estar obsoletos de los resultados de consulta de base de datos precalculados basandose en el modelo probabilfstico;
- detecte un evento en tiempo real asmcrono que tiene una influencia probabilfstica sobre las discrepancias entre los resultados de consulta de base de datos precalculados que se mantienen en el sistema informatico (2) y los resultados de consulta de base de datos reales supuestos;
- analice si el evento en tiempo real asmcrono esta representado en el modelo probabilfstico;
- aumente las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados si se determina que el evento en tiempo real asmcrono no esta representado en el modelo probabilfstico;
- emita de forma automatica unas ordenes recalculadas para actualizar unos resultados de consulta de base de datos precalculados en funcion de las probabilidades determinadas de estar obsoletos de los resultados de consulta de base de datos precalculados, en donde se ordena que se recalculen los resultados de consulta de base de datos precalculados que tienen una probabilidad de estar obsoletos por encima de un umbral dado; y - reciba los resultados de consulta de base de datos precalculados actualizados como resultados de las ordenes recalculadas.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP12368020.9A EP2698729B1 (en) | 2012-08-14 | 2012-08-14 | Updating cached database query results |
| US13/585,286 US9235620B2 (en) | 2012-08-14 | 2012-08-14 | Updating cached database query results |
| PCT/EP2013/002390 WO2014026753A1 (en) | 2012-08-14 | 2013-08-09 | Updating cached database query results |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2714676T3 true ES2714676T3 (es) | 2019-05-29 |
Family
ID=49003740
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13750848T Active ES2714676T3 (es) | 2012-08-14 | 2013-08-09 | Actualización de resultados de consulta de base de datos almacenados en memoria caché |
Country Status (11)
| Country | Link |
|---|---|
| EP (1) | EP2885725B1 (es) |
| JP (1) | JP6162240B2 (es) |
| KR (1) | KR101972199B1 (es) |
| CN (1) | CN104471573B (es) |
| AU (1) | AU2013304366B2 (es) |
| BR (1) | BR112014031390A2 (es) |
| CA (1) | CA2875735C (es) |
| ES (1) | ES2714676T3 (es) |
| IN (1) | IN2014DN10461A (es) |
| SG (1) | SG11201408814XA (es) |
| WO (1) | WO2014026753A1 (es) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015120968A1 (en) * | 2014-02-13 | 2015-08-20 | Amadeus S.A.S. | Increasing search result validity |
| US9984165B2 (en) | 2014-02-13 | 2018-05-29 | Amadeus S.A.S. | Increasing search result validity |
| EP2908255B1 (en) * | 2014-02-13 | 2018-07-25 | Amadeus S.A.S. | Increasing search result validity |
| US9582536B2 (en) | 2014-02-19 | 2017-02-28 | Amadeus S.A.S. | Long-term validity of pre-computed request results |
| CN107004026B (zh) * | 2014-11-03 | 2020-09-22 | 艾玛迪斯简易股份公司 | 管理预先计算的搜索结果 |
| ES2990104T3 (es) | 2014-11-03 | 2024-11-28 | Amadeus Sas | Gestión de resultados de búsqueda precalculados |
| US10395294B2 (en) | 2014-11-03 | 2019-08-27 | Amadeus S.A.S. | Managing pre-computed search results |
| ES2991404T3 (es) | 2015-08-03 | 2024-12-03 | Amadeus Sas | Manejo de peticiones de datos |
| US12169806B2 (en) | 2016-09-15 | 2024-12-17 | U.S. Bank National Association | Network-based real-time enterprise travel management apparatus, methods, and systems |
| CA3045810A1 (en) | 2016-12-01 | 2018-06-07 | Ab Initio Technology Llc | Generating, accessing, and displaying lineage metadata |
| CA3038199A1 (en) * | 2018-04-03 | 2019-10-03 | Amadeus S.A.S. | Updating cache data |
| CN110858204B (zh) * | 2018-08-16 | 2023-09-19 | 中国移动通信集团重庆有限公司 | 查询请求的处理方法、设备和介质 |
| FR3086412B1 (fr) | 2018-09-20 | 2020-10-30 | Amadeus Sas | Recalcul des resultats de recherche precalcules |
| CN109788305B (zh) * | 2018-12-10 | 2021-03-02 | 北京爱奇艺科技有限公司 | 一种缓存数据的刷新方法及装置 |
| FR3092920B1 (fr) * | 2019-02-14 | 2022-04-01 | Amadeus | Traitement d’interrogations de base de données complexes |
| FR3093575B1 (fr) | 2019-03-04 | 2021-12-03 | Amadeus | Traitement de données distribuées |
| FR3093574B1 (fr) * | 2019-03-04 | 2021-10-01 | Amadeus | Traitement de données distribuées |
| CN110795457B (zh) * | 2019-09-24 | 2023-05-05 | 苏宁云计算有限公司 | 数据缓存处理方法、装置、计算机设备和存储介质 |
| US20210182214A1 (en) * | 2019-12-17 | 2021-06-17 | Advanced Micro Devices, Inc. | Prefetch level demotion |
| US11409740B2 (en) * | 2020-08-10 | 2022-08-09 | Google Llc | Anticipatory pre-execution of data queries |
| US11593356B2 (en) * | 2020-09-11 | 2023-02-28 | ForgeRock, Inc. | Never stale caching of effective properties |
| CA3200431A1 (en) | 2020-12-04 | 2022-06-09 | Guillaume Lecourt | Processing search requests |
| EP4009188A1 (en) | 2020-12-04 | 2022-06-08 | Amadeus S.A.S. | Processing search requests |
| US11341137B1 (en) | 2020-12-04 | 2022-05-24 | Amadeus S.A.S. | Processing search requests |
| US12405820B2 (en) | 2022-03-30 | 2025-09-02 | International Business Machines Corporation | Central randomized scheduler for hypothesis-based workloads |
| CN120448525B (zh) * | 2025-07-14 | 2025-09-09 | 深圳市信润富联数字科技有限公司 | 数据的检索方法及装置、终端 |
Family Cites Families (7)
| 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 |
| US6725333B1 (en) * | 1999-04-22 | 2004-04-20 | International Business Machines Corporation | System and method for managing cachable entities |
| EP1234268A2 (en) * | 1999-11-01 | 2002-08-28 | ITA Software, Inc. | Method and apparatus for providing availability of airline seats |
| EP1311957A2 (en) * | 2000-07-17 | 2003-05-21 | Eplication Networks Ltd | BANDWIDTH SAVINGS AND QoS IMPROVEMENT FOR WWW SITES BY CATCHING STATIC AND DYNAMIC CONTENT ON A DISTRIBUTED NETWORK OF CACHES |
| US7085747B2 (en) * | 2001-09-26 | 2006-08-01 | J Koninklijke Philips Electronics, Nv. | Real-time event recommender for media programming using “Fuzzy-Now” and “Personal Scheduler” |
| JP5040311B2 (ja) * | 2004-10-27 | 2012-10-03 | 日本電気株式会社 | 資源管理システム、資源情報提供方法、及び、プログラム |
| JP5387457B2 (ja) * | 2010-03-10 | 2014-01-15 | 富士電機株式会社 | 遠隔監視装置および該装置におけるデータアクセス方法 |
-
2013
- 2013-08-09 ES ES13750848T patent/ES2714676T3/es active Active
- 2013-08-09 KR KR1020157004168A patent/KR101972199B1/ko not_active Expired - Fee Related
- 2013-08-09 IN IN10461DEN2014 patent/IN2014DN10461A/en unknown
- 2013-08-09 BR BR112014031390A patent/BR112014031390A2/pt not_active IP Right Cessation
- 2013-08-09 CA CA2875735A patent/CA2875735C/en active Active
- 2013-08-09 EP EP13750848.7A patent/EP2885725B1/en active Active
- 2013-08-09 SG SG11201408814XA patent/SG11201408814XA/en unknown
- 2013-08-09 CN CN201380037889.4A patent/CN104471573B/zh active Active
- 2013-08-09 JP JP2015526899A patent/JP6162240B2/ja not_active Expired - Fee Related
- 2013-08-09 WO PCT/EP2013/002390 patent/WO2014026753A1/en not_active Ceased
- 2013-08-09 AU AU2013304366A patent/AU2013304366B2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| SG11201408814XA (en) | 2015-01-29 |
| BR112014031390A2 (pt) | 2017-06-27 |
| KR20150043338A (ko) | 2015-04-22 |
| WO2014026753A1 (en) | 2014-02-20 |
| AU2013304366B2 (en) | 2016-05-12 |
| EP2885725B1 (en) | 2018-12-12 |
| AU2013304366A1 (en) | 2015-02-26 |
| CA2875735C (en) | 2020-09-15 |
| JP6162240B2 (ja) | 2017-07-12 |
| JP2015531129A (ja) | 2015-10-29 |
| IN2014DN10461A (es) | 2015-08-21 |
| CN104471573B (zh) | 2017-07-18 |
| EP2885725A1 (en) | 2015-06-24 |
| CN104471573A (zh) | 2015-03-25 |
| KR101972199B1 (ko) | 2019-04-24 |
| CA2875735A1 (en) | 2014-02-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2714676T3 (es) | Actualización de resultados de consulta de base de datos almacenados en memoria caché | |
| US9235620B2 (en) | Updating cached database query results | |
| US20160171008A1 (en) | Updating cached database query results | |
| EP2842085B1 (en) | Database system using batch-oriented computation | |
| CN112074845B (zh) | 用于优化拼车策略的深度强化学习 | |
| US7085726B1 (en) | Robustness and notifications in travel planning system | |
| US8874492B2 (en) | Flight caching methods and apparatus | |
| ES2608392T3 (es) | Validez a largo plazo de resultados de solicitud pre-calculados | |
| KR101699918B1 (ko) | 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 | |
| US20130073586A1 (en) | Database system using batch-oriented computation | |
| Yu et al. | Robust team orienteering problem with decreasing profits | |
| BR112021007670A2 (pt) | mecanismo de predição para um serviço baseado em rede | |
| ES2905843T3 (es) | Actualización de los resultados de la consulta de la base de datos en caché | |
| CN120179893A (zh) | 一种基于知识图谱的个性化旅游景区推荐方法及系统 | |
| Ma et al. | QA-Share: Toward an efficient QoS-aware dispatching approach for urban taxi-sharing | |
| Jagtenberg | Efficiency and fairness in ambulance planning | |
| CN115309999B (zh) | 兴趣点状态预测方法、装置、电子设备及计算机存储介质 | |
| Pan et al. | Evaluating ridesharing algorithms using the jargo real-time stochastic simulator | |
| Lin et al. | Optimizing Ride-Sharing Routing: A Demand-Aware Approach | |
| EP3016000A1 (en) | Managing pre-computed search results | |
| Migliorini | Adaptive Trip Recommendation System |













