ES2958718T3 - Actualización de datos almacenados en caché - Google Patents

Actualización de datos almacenados en caché Download PDF

Info

Publication number
ES2958718T3
ES2958718T3 ES19166525T ES19166525T ES2958718T3 ES 2958718 T3 ES2958718 T3 ES 2958718T3 ES 19166525 T ES19166525 T ES 19166525T ES 19166525 T ES19166525 T ES 19166525T ES 2958718 T3 ES2958718 T3 ES 2958718T3
Authority
ES
Spain
Prior art keywords
data
cache
database
update
query
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
Application number
ES19166525T
Other languages
English (en)
Inventor
Laure Canis
Sarah Muguerza
Victor Alonso
Celine Pradin
Antoine Menard
Jean-Baptiste Rey
Geoffrey Claude
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US15/944,572 external-priority patent/US11636112B2/en
Priority claimed from FR1852866A external-priority patent/FR3079635B1/fr
Application filed by Amadeus SAS filed Critical Amadeus SAS
Application granted granted Critical
Publication of ES2958718T3 publication Critical patent/ES2958718T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Los datos almacenados en caché se actualizan mediante una máquina informática acoplada a una base de datos primaria que mantiene los datos originales y a una caché que mantiene los datos correspondientes a los datos de la base de datos primaria. En respuesta a recibir una primera consulta de base de datos relacionada con unos primeros datos, la máquina informática determina si procesar la primera consulta de base de datos utilizando la memoria caché o basándose en la base de datos primaria. En respuesta a concluir el procesamiento de la primera consulta de la base de datos, la máquina informática determina si se deben actualizar los primeros datos en la memoria caché y, basándose en el resultado de la determinación, actualiza los primeros datos en la memoria caché basándose en los primeros datos originales de la base de datos primaria. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Actualización de datos almacenados en caché
El presente tema se refiere en general a la tecnología de bases de datos. Más específicamente, se dirige a la actualización de datos almacenados en caché después de que se concluye un procesamiento de una consulta sobre los datos almacenados en caché o los datos originales.
Antecedentes
Un problema común en la tecnología de bases de datos es asegurar tiempos de respuesta cortos a consultas o solicitudes de bases de datos que requieren un procesamiento complejo, largo y que requiere muchos recursos, por ejemplo, debido a grandes volúmenes de datos. Por ejemplo, tal procesamiento que consume potencia informática tiene que ser realizado en respuesta a las llamadas "consultas abiertas" que contienen solo poca información de entrada (por ejemplo, solo se especifican uno o dos parámetros de una docena de parámetros posibles y/o los intervalos de valores especificados de los parámetros son amplios) y, en consecuencia, conducen a un gran número de resultados en general. Las posibilidades de acelerar el procesamiento de datos aumentando el rendimiento del hardware son limitadas. Por tanto, se llama la atención sobre la mejora de los mecanismos subyacentes al procesamiento complejo, largo y que requiere muchos recursos con el fin de responder a tales consultas.
Un enfoque general para acortar los tiempos de respuesta es preparar los resultados para que se devuelvan en respuesta a las solicitudes esperadas (por ejemplo, calculando previamente o recopilando previamente tales resultados en base a los datos originales) y mantener los resultados de la consulta correspondiente en un conjunto de resultados de consulta calculados previamente. Entonces, las solicitudes no se procesan ni se responde sobre la base de los datos originales, sino que se dirigen al conjunto de resultados de consulta calculados previamente. Recalcular un número grande de resultados de consulta calculados previamente es una tarea que consume una cantidad sustancial de recursos de cálculo. Por tanto, se buscan mecanismos de recálculo para realizar eficientemente el recálculo de los resultados de consulta calculados previamente.
El documento EP 2908255 A1 describe un nodo de red (al que se hace referencia como conmutador) que utiliza un factor de confianza que indica la probabilidad de que el resultado de búsqueda asociado sea válido para controlar si se responde a una consulta de búsqueda en base a los resultados de búsqueda recopilados previamente o una base de datos primaria.
El documento US2009/234682A1 describe un sistema de disponibilidad utilizado para un sistema de planificación de viajes. El sistema incluye una memoria caché que tiene entradas de información de disponibilidad de asientos para un modo de transporte. El sistema incluye además un gestor de memoria caché que gestiona la información de entrada en la memoria caché de modo que la información en la memoria caché sea correcta, actual, completa o de otro modo lo más útil posible. El gestor memoria de caché determina cuándo una respuesta almacenada está obsoleta y, si una respuesta almacenada está obsoleta, envía una consulta de disponibilidad a una fuente de información de disponibilidad.
El documento EP 3128441 A1 está dirigido a manejar solicitudes de datos dirigidas a un entorno de base de datos que incluye una primera plataforma, una segunda plataforma y una unidad de control. La unidad de control recibe una solicitud, determina un resultado preparado correspondiente a la solicitud de datos y compara un indicador de actualización del resultado preparado determinado con un valor umbral. En respuesta a la comparación, la unidad de control o bien recupera el resultado preparado de la segunda plataforma y lo devuelve o bien recupera una versión actualizada del al menos un resultado preparado de la primera plataforma, actualiza el resultado preparado en la segunda plataforma y el indicador de actualización asociado, y devuelve la versión actualizada del resultado preparado.
El documento WO 2015/124274 A1 está dirigido a una estrategia para mantener actualizados los resultados de búsqueda calculados previamente almacenados como registros de base de datos en una base de datos. Los resultados de búsqueda calculados previamente se recalculan dentro de un intervalo de tiempo dado mediante una plataforma de cálculo. El número de resultados de búsqueda calculados previamente y recalculados por la plataforma de cálculo está limitado por los recursos de cálculo de la plataforma de cálculo disponibles para el recálculo dentro del intervalo de tiempo dado. Los recursos de cálculo para recalcular un resultado de búsqueda i calculado previamente dependen de si se recalculan o no otros resultados de búsqueda calculados previamente relacionados con el resultado de búsqueda i calculado previamente durante el intervalo de tiempo dado. Un controlador de recálculo estima dinámicamente los recursos de cálculo necesarios para recalcular el resultado de la búsqueda calculado previamente i dependiendo de qué otros resultados de búsqueda calculados previamente relacionados con el resultado de búsqueda calculado previamente i se seleccionan para el recálculo durante el intervalo de tiempo dado.
Compendio
Según un primer aspecto, se proporciona un método ejecutado por una máquina informática para actualizar datos en una memoria caché. La máquina informática está acoplada a una base de datos primaria que mantiene los datos originales y a la memoria caché que mantiene los datos correspondientes a los datos de la base de datos primaria. En respuesta a la recepción de una primera consulta de base de datos con relación a los primeros datos, la máquina informática determina si procesar la primera consulta de base de datos utilizando la memoria caché o en base a la base de datos primaria. En respuesta a la determinación, basada en al menos un factor de sondeo dado, para procesar la primera consulta de base de datos utilizando la memoria caché, la máquina informática procesa la primera consulta de la base de datos utilizando la memoria caché, incluyendo la recuperación de los primeros datos de la memoria caché y la devolución de los primeros datos recuperados. En respuesta a la finalización del procesamiento de la primera consulta de base de datos, la máquina informática determina si actualizar los primeros datos en la memoria caché. Si la determinación de si actualizar los primeros datos indica actualizar los primeros datos, la máquina informática actualiza los primeros datos en la memoria caché en base a los primeros datos originales en la base de datos primaria. La determinación de si actualizar los primeros datos en la memoria caché comprende, en respuesta a la determinación de que no se recibió ninguna segunda solicitud de base de datos anterior con relación a los primeros datos dentro de un período de tiempo dado, actualizar los primeros datos en la memoria caché y en respuesta a la determinación de que al menos se recibió una segunda consulta de base de datos anterior con relación a los primeros datos dentro del período de tiempo dado, inhibir la actualización de los primeros datos en la memoria caché con el fin de limitar el número de actualizaciones de memoria caché que ocurren dentro del período de tiempo dado. El al menos un factor de sondeo dado comprende al menos uno de: un tipo de la primera solicitud de consulta de base de datos; una existencia de los primeros datos en la memoria caché; una tasa de error de sondeo que es una relación entre un número de fallos de acceso a la base de datos primaria y un número de intentos de acceso a la base de datos primaria; un número de accesos de escritura en los primeros datos originales en un período de tiempo dado; una edad de los primeros datos en la memoria caché; una tasa de validez que indica una probabilidad de que los primeros datos en la memoria caché sean válidos a una cierta edad; una frecuencia de acceso de los primeros datos en la memoria caché; un recurso de actualización que es una medida de los costes de cálculo y/o la carga de la red requerida para actualizar los primeros datos en la memoria caché. Si, por otro lado, la determinación de si actualizar los primeros datos indica no actualizar los primeros datos, la máquina informática no actualiza los primeros datos en la memoria caché.
Según un segundo aspecto, se proporciona una máquina informática correspondiente que está dispuesta para ejecutar el método.
Según un tercer aspecto, se proporciona un programa informático almacenado en un medio de almacenamiento que, cuando se ejecuta por una máquina informática, dota a la máquina informática con la funcionalidad correspondiente. Se exponen en la descripción detallada aspectos opcionales adicionales.
Breve descripción de las figuras
Los presentes mecanismos se describirán con referencia a las figuras adjuntas. Los números de referencia similares generalmente indican elementos idénticos o funcionalmente similares.
La FIG. 1 visualiza un efecto de disminución de la probabilidad de validez de los resultados de consulta calculados previamente a lo largo del tiempo.
La FIG. 2 representa esquemáticamente un ejemplo de un sistema de base de datos distribuida.
La FIG. 3 es un gráfico de secuencia de mensajes de alto nivel para actualizar los datos almacenados en caché. La FIG. 4 muestra una secuencia de mensajes de alto nivel para una consulta de lectura.
La FIG. 5 muestra una secuencia de mensajes de alto nivel para una consulta de escritura.
La FIG. 6 es un gráfico de secuencia de mensajes de alto nivel para actualizar datos almacenados en caché relacionados.
La FIG. 7 relaciona un ejemplo adicional de una actualización de datos almacenados en caché.
La FIG. 8 visualiza series ejemplares de actualizaciones de datos almacenados en caché a lo largo del tiempo. La FIG. 9 muestra una disposición para desduplicar solicitudes de actualización de memoria caché.
La FIG. 10 es una vista esquemática ejemplar de la arquitectura interna de la máquina informática.
Descripción detallada
Con el fin de manejar consultas de base de datos o solicitudes de cálculo por lotes que requieren cálculos sobre la base de grandes volúmenes de datos subyacentes, los datos sujetos a consultas de base de datos esperadas se pueden almacenar en caché (recopilar previamente, calcular previamente) y almacenar como datos almacenados en caché en una memoria caché o base de datos de memoria caché, mientras que los datos originales se mantienen en una base de datos primaria. La memoria caché se consulta por entidades solicitantes (tales como clientes, aplicaciones, navegadores instalados en terminales de usuario, etc.) en el curso de una búsqueda y cualquier dato almacenado en caché que cumpla con los criterios de búsqueda indicados por la consulta se devuelve al cliente en respuesta a la consulta. Posteriormente, el término "consulta de base de datos" se utiliza en la presente memoria como un término general que incluye cualquier tipo de solicitud de recuperación de información, tales como consultas transaccionales, solicitudes de cálculos por lotes y otras formas.
El enfoque de almacenar en caché datos y almacenar los datos almacenados en caché en la memoria caché accesible para los clientes que consultan conduce a la situación general de que los datos almacenados en caché pueden llegar a ser obsoletos o ser inválidos (ambos términos se usan como sinónimos en la presente memoria) con el tiempo debido a cambios en los datos originales de los que se derivan los datos almacenados en caché. Los datos almacenados en caché que todavía están actualizados, es decir, que coinciden con los equivalentes de datos originales correspondientes, se denominan en lo sucesivo datos almacenados en caché "válidos".
En general, para permitir que una plataforma de búsqueda (es decir, una plataforma dispuesta para recibir consultas de base de datos y devolver respuestas a las consultas de base de datos) devuelva resultados correctos, se desea mantener un grado significativo de correlación entre los datos almacenados en caché que se proporcionan a la entidad que consulta en respuesta a las consultas de base de datos y sus equivalentes de datos originales. Al mismo tiempo, sin embargo, es deseable minimizar el consumo de recursos de cálculo causado por recálculos o actualizaciones de memoria caché, es decir, evitar cualquier recálculo innecesario tal como un recálculo/actualización de datos almacenados en caché todavía válidos. Los recursos informáticos son limitados y, por lo general, no hay suficientes recursos informáticos para recalcular/actualizar todos los datos almacenados en caché en todo momento. Por tanto, se busca un compromiso entre la validez de los datos almacenados en caché y la utilización de los recursos informáticos disponibles.
Con el fin de hacer más eficientes el recálculo/actualizaciones de memoria caché, se definen métricas para evaluar lo "necesario" o "innecesario" que es un recálculo. Por ejemplo, es ineficiente en términos de recursos de cálculo o actualización para realizar un cálculo previo masivo completo periódicamente (por ejemplo, todos los días) si menos de la mitad de los datos almacenados en caché resultan estar desactualizados. Por otra parte, si se sabe que clases de datos originales particulares cambian con frecuencia, la actualización de los datos almacenados en caché correspondientes varias veces al día pudiera ser beneficiosa para la validez de la memoria caché. En consecuencia, se busca una forma eficaz de evaluar o estimar la validez de los datos almacenados en caché, generalmente teniendo en cuenta tanto la ganancia asociada con la validez como los costes de recursos técnicos del recálculo/actualizaciones de memoria caché.
Con este fin, algunos mecanismos modelan la validez decreciente de los datos almacenados en caché a lo largo del tiempo. Dos funciones ejemplares de esta precisión probable que disminuye con el tiempo se representan mediante la FIG. 1. La función 10 representa datos almacenados en caché que potencialmente siguen siendo más precisos (o, más correctamente, tienen una probabilidad más alta de ser válidos con el tiempo) que otros datos almacenados en caché asociados con la función 11. Por ejemplo, los datos almacenados en caché representados por la función 10 tienen un 70% de probabilidad de seguir siendo válidos a las 35 horas después de su última actualización, mientras que los otros datos almacenados en caché caracterizados por la función 11 solo son válidos hasta alrededor del 50% a las 35 horas después de su último recálculo. Las funciones 10 y 11 también pueden representar partes completas de datos almacenados en caché plurales y luego indicar proporciones de las partes de datos almacenados en caché que probablemente sean válidas en un tiempo transcurrido desde la última actualización de la parte.
La FIG. 2 ilustra un sistema de base de datos distribuido 1 como se utiliza en la presente memoria de una manera esquemática. Los datos originales se mantienen en una base de datos primaria 3. El término "datos originales" se refiere a datos que son generalmente válidos y forman la base para todo el procesamiento de datos dentro del sistema de base de datos 1, en particular los datos a los que se dirigen las consultas de base de datos. Los datos originales pueden referirse a cualquier tipo de información en un dominio particular. Por ejemplo, los datos originales pueden estar ubicados en el dominio de las simulaciones de circuitos electrónicos basados en ordenador (tales como las simulaciones de circuitos sujetas a la decisión T 1227/05 de las Salas de Apelación de la EPO) y contener información sobre los valores de entrada para las simulaciones de circuito electrónico basado en ordenador, parámetros de un modelo utilizado por las simulaciones de circuitos electrónicos basados en ordenador, resultados de simulación intermedios y/o finales, y similares.
Los datos almacenados en caché correspondientes a los datos originales se almacenan en una memoria caché 4. Los datos almacenados en caché pueden ser idénticos a los datos originales correspondientes (como, por ejemplo, en el ejemplo de los rastreadores web que rastrean y almacenan en caché los contenidos de sitios web de Internet) y/o calculados o procesados previamente en base a los datos originales (por ejemplo, indexando adicionalmente los datos en la memoria caché 4) con el fin de disminuir los tiempos de respuesta para responder a las consultas de la base de datos en comparación con los tiempos requeridos para recuperar los datos originales correspondientes de la base de datos primaria 3. En este sentido, el término "almacenado en caché" también cubre cualquier tipo de transformación de los datos originales en los datos almacenados en caché almacenados en la memoria caché 4 mediante cualquier tipo de cálculo y procesamiento. Por ejemplo, en el dominio de las simulaciones de circuitos electrónicos basados en ordenador, el cálculo previo puede implicar la realización de simulaciones con un conjunto reducido de parámetros (en comparación con todos los parámetros del sistema del mundo real), pero con valores variables de dicho conjunto de parámetros con el fin de obtener resultados a ser utilizados como valores de entrada en las simulaciones adicionales con conjuntos de parámetros adicionales o de otro tipo.
La memoria caché 4 es una base de datos que es significativamente más rápida que la base de datos primaria 3, por ejemplo, debido al cálculo previo de datos, su ubicación de red central, conexión de red de banda ancha, hardware especial adaptado a la recuperación rápida de datos y/o protocolos e índices de bases de datos que aumentan el rendimiento de la recuperación de datos. El término "base de datos" aquí abarca cualquier número y tipo de sistema de almacenamiento de información estructurada, como bases de datos estándar autónomas como el Lenguaje de Consulta Estándar (SQL) o bases de datos no SQL, así como bases de datos complejas, distribuidas y/o propietarias, bases de datos relacionales o bases de datos orientadas a objetos. Los datos originales y los datos almacenados en caché se pueden almacenar en la base de datos primaria 3 y en la memoria caché 4, respectivamente, utilizando cualquier tipo de información estructurada, tal como registros, matrices, partes de tablas de bases de datos (por ejemplo, columnas, líneas o entradas), o similares.
Los clientes 5, tales como las aplicaciones en los terminales de usuario, acceden a los datos del sistema 1 por medio de consultas de base de datos a través de la interfaz 6. La entidad de procesamiento y recepción de consultas de base de datos del sistema 1 se denomina en la presente memoria máquina informática 2. La máquina informática 2 está acoplada comunicativamente la memoria caché 4 por una interfaz 7 adicional y a la base de datos primaria 3 por otra interfaz 8 más. Las entidades funcionales del sistema 1, es decir, la máquina informática 2, la base de datos primaria 3 y la memoria caché 4 pueden estar constituidas por una o varias máquinas de hardware dependiendo sobre los requisitos de rendimiento. Por ejemplo, la máquina informática 2 puede estar compuesta por una pluralidad de máquinas de hardware coubicadas y/o deslocalizadas que constituyen varios puntos de contacto. Se puede utilizar una pluralidad de bases de datos primarias 3 y/o memorias caché 4 para reflejar los mismos datos, por ejemplo, por motivos de redundancia. Cada una de las interfaces 6, 7, 8 utiliza una Red de Área Local (LAN), una Red de Área Metropolitana (MAN) y/o una Red de Área Extensa (WAN) tal como Internet y se implementa mediante cualquier protocolo o protocolos de comunicación y red adecuados.
Con referencia a la FIG. 3, con el fin de mejorar el procesamiento eficiente y los recursos informáticos para actualizar los datos almacenados en caché mantenidos en la memoria caché 4, se proporciona en la presente memoria el siguiente mecanismo empleado en la máquina informática 2.
Una primera consulta de base de datos 12 se transmite por un cliente 5 y se recibe por la máquina informática 2. El término “consulta de base de datos” incluye todo los tipos de solicitudes de base de datos incluyendo, por ejemplo, solicitudes de lectura para recuperar datos y solicitudes de escritura para insertar, cambiar o eliminar datos.
La primera consulta de base de datos 12 se relaciona con los primeros datos mantenidos por el sistema 1, ya sea en la memoria caché 4 y/o en la base de datos primaria 3. Solo como ejemplo no limitativo, la consulta 12 mostrada en la FIG. 3 incluye uno o más criterios de consulta tales como un primer criterio A y opcionalmente unos criterios B adicionales. Estos criterios de consulta especifican los datos a los que se refiere la primera consulta de base de datos 12, en el ejemplo de la FIG. 3 todos los datos que cumplan los criterios de consulta, por ejemplo, el primer criterio A y, opcionalmente, los criterios B adicionales. Los primeros datos pueden estar compuestos por tanto por uno o varios registros de datos, matrices, líneas de tablas de bases de datos, etc. Lo mismo también es aplicable a otras consultas de base de datos tales como los ejemplos más específicos de las FIGS. 4 y 5, así como a los segundos datos relacionados con los primeros datos como por ejemplo, se describen a continuación con referencia a la FIG. 6.
En respuesta a la recepción de la primera consulta de base de datos 12, la máquina informática 2 determina 14, en base a al menos un factor de sondeo dado, si procesar la primera consulta de base de datos 12 utilizando la memoria caché 4 o en base a la base de datos primaria 3. Responder a las consultas de base de datos mediante la implicación de la base de datos primaria 3 también se denomina "sondeo". En algunos ejemplos, el al menos un factor de sondeo incluye una indicación de la probabilidad de si los datos almacenados en caché son válidos o no.
Con este fin, los datos almacenados en caché mantenidos en la memoria caché 4, por ejemplo, están asociados con las respectivas métricas de validez que pueden ser similares a los factores de confianza como se describe por el documento EP 2908255 A1. Por ejemplo, cada dato almacenado en caché o cada parte de una pluralidad de datos almacenados en caché almacenados por la memoria caché 4 tiene una métrica de validez correspondiente. Cada métrica de validez indica una probabilidad de que los datos almacenados en caché asociados o la parte de datos almacenados en caché sigan siendo válidos, es decir, una probabilidad de que los datos almacenados en caché coincidan con sus datos originales correspondientes de los que se derivaron los datos almacenados en caché. En algunos ejemplos, las métricas de validez se dan por una edad t<¡>de un dato almacenado en caché i (o parte de una pluralidad de datos almacenados en caché) que se refiere al tiempo transcurrido desde la última actualización o recálculo de estos datos almacenados en caché y una tasa de validez á¡ de los datos almacenados en caché i que es una medida de cuánto tiempo los datos almacenados en caché i pueden permanecer válidos o lo rápido que los datos almacenados en caché i llegan a ser inválidos debido a cambios en los datos originales subyacentes. En algunos ejemplos, la métrica de validez acc de un dato en caché i se da por acc<i>= e<'>A<iti>.
En algunos ejemplos, las métricas de validez de los datos almacenados en caché se almacenan en la memoria caché 4. Por lo tanto, la determinación 14 puede incluir una recuperación 13 opcional (como se indica por la flecha de puntos) de los datos almacenados en caché con los que se relaciona la primera consulta de base de datos 12 y la métrica de validez asociada y la máquina informática 2 evalúa las métricas de validez de la memoria caché 4. Con este fin, la máquina informática 2 busca los datos almacenados en caché a los que se refiere la primera consulta de base de datos 12 (por ejemplo, que cumplen el criterio A) en la memoria caché 4 y recupera estos datos almacenados en caché de la memoria caché 4. Más en detalle, en la operación 13, la máquina informática 2 puede enviar una solicitud de recuperación a la memoria caché 4. La solicitud de recuperación 13 incluye al menos parte de uno o más de los criterios de la primera consulta de base de datos 12. La memoria caché 4 ejecuta la búsqueda en la memoria caché 4 en base a la solicitud de recuperación 13, es decir, identifica los datos almacenados en caché entre todos los datos en la memoria caché 3 que coinciden con los criterios de la primera consulta de base de datos 12 y devuelve los datos almacenados en caché identificados, incluyendo las métricas de validez asociadas a la máquina informática 2. Por lo tanto, los datos almacenados en caché devueltos tienen valores o parámetros que coinciden (es decir, encajan) con los criterios de la primera consulta de base de datos 12.
La determinación 14 puede incluir entonces comparar las métricas de validez de los datos almacenados en caché recuperados con un umbral dado. La máquina informática 2 determina la probabilidad de que los datos almacenados en caché sean válidos, por ejemplo, calculando acc<i>= e<'>A<iti>para cada dato almacenado en caché recuperado i. En la medida en que las métricas de validez estén por encima del umbral dado, la máquina informática determina procesar la consulta de base de datos 12 utilizando la memoria caché 4 y, en consecuencia, devuelve estos datos almacenados en caché mediante la respuesta 16. De lo contrario, para los datos almacenados en caché con métricas de validez no por encima del umbral dado, la máquina informática 2 determina procesar la consulta de base de datos en base a la base de datos primaria 3 y, en consecuencia, opcionalmente recupera 15 datos originales correspondientes de la base de datos primaria 3. Con este fin, la máquina informática 2 envía una solicitud de recuperación respectiva a la base de datos primaria 3. La base de datos primaria 3 ejecuta la solicitud de recuperación mediante la identificación de los datos originales que cumplen los criterios de la primera consulta de base de datos 12 y devuelve los datos originales identificados a la máquina informática 2. En respuesta a la recepción de los datos originales de la base de datos primaria 3, la máquina informática 2 devuelve 16 los datos originales recuperados al cliente 5. Esto concluye el procesamiento de la primera consulta de base de datos 12.
En algunas realizaciones, la máquina informática 2 emplea uno o más de otros factores de sondeo o adicionales además de o en lugar de la métrica de validez (tasa de validez que indica una probabilidad de que los primeros datos en la memoria caché 4 sean válidos a una cierta edad) descrita anteriormente. Por ejemplo, la decisión de si sondear o no la base de datos primaria 3 en la operación 12 se basa en el tipo de la primera solicitud de consulta de base de datos (lectura o escritura, preferiblemente sondeo de solicitudes de escritura), la existencia de los primeros datos en la memoria caché (si la memoria caché 4 no mantiene los primeros datos, se sondea la base de datos primaria 3), siendo la tasa de error de sondeo una relación entre un número de fallos de acceso a la base de datos primaria y un número de intentos de acceso a la base de datos primaria, un número de accesos de escritura en los primeros datos originales en un período de tiempo dado, una edad de los primeros datos en la memoria caché (es decir, la probabilidad de validez de los primeros datos en la memoria caché se basa en la edad sin ninguna diferenciación de una tasa de validez<á>¡), una frecuencia de acceso de los primeros datos en la memoria caché (un número histórico de consultas de base de datos con relación a los primeros datos a lo largo del tiempo), y/o un recurso de actualización que es una medida de los costes de cálculo y/o la carga de red requerida para actualizar los primeros datos en la memoria caché (por ejemplo, abstenerse de sondear si los recursos de actualización son limitados). La máquina informática 2 puede emplear cualquier combinación de cualquier número de estos factores de sondeo
Además, la máquina informática 2, en respuesta a la finalización del procesamiento de la primera consulta de base de datos, determina 17 si actualizar los primeros datos en la memoria caché 4, también denominados brevemente como los primeros datos almacenados en caché en la presente memoria. Se ha reconocido que puede existir una correlación entre una pluralidad de consultas de base de datos. Por lo tanto, la primera consulta de base de datos 12 puede ser un indicador de que los mismos datos se pueden solicitar del sistema de base de datos 1 también por las consultas de base de datos posteriores. Por lo tanto, la primera consulta de base de datos 12 se trata como un desencadenante para actualizar posiblemente los datos en la memoria caché 4 con los que se relaciona la primera consulta de base de datos 12, es decir, los primeros datos.
Generalmente, esto es diferente de otros procedimientos de gestión de actualización de memoria caché conocidos en la técnica, tales como la actualización de memoria caché según los documentos EP 2911070 A1 y EP 3016000 A1 que se relacionan con actualizaciones en segundo plano basadas en modelos independientes de las consultas individuales al sistema. Esto también es generalmente diferente de los mecanismos de sondeo conocidos, tales como los documentos EP 2908 255 A1 y EP 3128441 A1 que deciden en el momento del procesamiento de la consulta si responder a una consulta mediante datos almacenados en caché o mediante datos originales recuperados de una fuente de datos original.
Un efecto técnico del mecanismo propuesto en comparación con estos procedimientos conocidos es que una consulta inicial de la base de datos con relación a los primeros datos se puede responder rápidamente en base a los datos almacenados en caché sin retrasar la respuesta recuperando los datos originales de la base de datos primaria más lenta 3 (en comparación con la memoria caché 4), mientras que los primeros datos almacenados en caché se actualizan después de la conclusión del procesamiento de consulta de base de datos con el fin de aumentar la validez de los primeros datos almacenados en caché para consultas de base de datos posteriores nuevamente con relación a los primeros datos. Por ejemplo, el umbral de la métrica de validez para la consulta de base de datos inicial se puede establecer en un valor más bajo en comparación con los valores del factor de confianza de los documentos EP 2908255 A1 y EP 3128441 A1, de modo que la consulta de base de datos inicial se responda en base a la memoria caché 4 también si la probabilidad de validez de los primeros datos almacenados en caché es menor, pero la actualización de los primeros datos almacenados en caché después de finalizar el procesamiento de consulta aumenta la probabilidad de validez de los primeros datos almacenados en caché para consultas de base de datos posteriores de nuevo con relación a los primeros datos. Como se explica con más detalle a continuación, el término "inicial" puede referirse a una consulta de base de datos que se relaciona con datos particulares la primera vez después de que haya transcurrido un cierto período de tiempo.
De esta forma, se aumenta la validez de los datos almacenados en caché de una manera eficiente en términos de tiempos de respuesta y se puede responder a las consultas de recursos informáticos y de base de datos de una manera más rápida, en comparación con las referencias mencionadas anteriormente.
En base al resultado de la determinación 17, la máquina informática 2 actualiza los primeros datos en la memoria caché 4 en base a los primeros datos originales en la base de datos primaria 3. Si la determinación 17 indica actualizar los primeros datos, los primeros datos en la memoria caché 4 se actualizan opcionalmente 18, por ejemplo, recuperando los datos originales correspondientes de la base de datos primaria 3 y/o recalcular los primeros datos almacenados en caché en base a los datos originales correspondientes de la base de datos primaria 3. Si la determinación 17 no indica ninguna necesidad de actualizar los primeros datos almacenados en caché, el procedimiento finaliza sin ninguna actualización 18.
Determinar 17 actualizar los primeros datos almacenados en caché incluye comprobar una o más propiedades o características de o con relación a los primeros datos almacenados en caché con el fin de desduplicar múltiples solicitudes de actualización y, por tanto, evitar demasiadas solicitudes de actualización relacionadas con los primeros datos almacenados en caché. Los primeros datos almacenados en caché se actualizan si no se recibió ni procesó ninguna segunda solicitud de base de datos anterior con relación a los primeros datos dentro de un período de tiempo dado, también denominado período de tiempo de actualización. Tales consultas de base de datos se consideran consultas "iniciales" de una serie de consultas relacionadas, como ya se mencionó anteriormente.
Observar el período del temporizador de actualización, por ejemplo, se implementa mediante el uso de un temporizador de inhibición de actualización para cada primer dato almacenado en caché. El temporizador de inhibición de actualización de los primeros datos almacenados en caché se inicia cada vez que se actualizan los primeros datos almacenados en caché y se permiten actualizaciones adicionales de los primeros datos almacenados en caché después de que expira el temporizador de inhibición de actualización. Por lo tanto, en estas realizaciones, los primeros datos almacenados en caché se actualizan (inmediatamente) si la operación de determinación 17 produce que no se esté ejecutando ningún temporizador de inhibición de actualización para los primeros datos almacenados en caché.
Por otro lado, se inhibe la actualización de los primeros datos en la memoria caché en respuesta a la determinación de que se recibió al menos una segunda consulta de base de datos anterior con relación a los primeros datos dentro del período de tiempo de actualización dado, es decir, la consulta de base de datos no fue una consulta inicial. Inhibir se refiere a no actualizar los primeros datos en la memoria caché en el punto de tiempo actual, sino más bien a retrasar la actualización de los primeros datos almacenados en caché hasta que expire el temporizador de inhibición de actualización o, alternativamente, descartar la actualización de los primeros datos almacenados en caché.
Además o alternativamente, en algunas realizaciones, el período de tiempo de actualización comienza con cualquier evento (más allá de las consultas de base de datos) con relación a los datos en cuestión, por ejemplo, incluyendo la determinación de que es probable que los datos no sean válidos y/o una actualización de memoria caché de los datos por cualquier otro motivo, tal como una actualización de memoria caché regular, planificada o periódica. En todos los casos, el valor específico del período de tiempo de actualización dado se establece dependiendo de la implementación del sistema. La inhibición de actualizaciones para las siguientes consultas de base de datos y eventos en una serie de consultas de base de datos y eventos también se puede considerar como una desduplicación local de las consultas de base de datos y los eventos con relación a los mismos datos en la máquina informática 2 con el fin de limitar el número de actualizaciones de memoria caché, como también se visualiza y se hace referencia por la FIG. 9 más a continuación.
Las FIGS. 4 y 5 son ejemplos adicionales del mecanismo de la FIG. 3, en donde la primera consulta de base de datos 12 se especifica además como una solicitud de lectura (FIG. 4) y una solicitud de escritura (FIG. 5), respectivamente.
Como se mencionó anteriormente, la primera consulta de base de datos 12 puede ser una consulta de lectura 12a que constituye una solicitud de lectura para recuperar los primeros datos (FIG. 4). Dependiendo de uno o más factores de sondeo, en respuesta a la recepción de la primera consulta de base de datos 12, la máquina informática 2 determina 14a, por ejemplo, procesar la primera consulta de base de datos 12, 12a utilizando la memoria caché. En algunas realizaciones, la determinación 14a incluye determinar que las métricas de validez de los primeros datos almacenados en caché (recuperados de la memoria caché 4 mediante la operación 13) están por encima del umbral de métrica de validez dado (que se puede reducir en comparación con los mecanismos de sondeo conocidos, tales como los documentos EP 2 908 255 A1 y EP 3128441 A1). La máquina informática 2 luego devuelve 16a los primeros datos almacenados en caché al cliente 5.
En estas situaciones, la determinación 17 de actualizar los primeros datos en la memoria caché se realiza en consecuencia en respuesta a la finalización del procesamiento de la primera consulta de base de datos utilizando la memoria caché. Los primeros datos en la memoria caché se actualizan 18, por ejemplo, en respuesta a la determinación de que no hubo una segunda consulta de base de datos anterior con relación a los primeros datos dentro del período de tiempo de actualización dado, como ya se explicó anteriormente.
La determinación 14 también puede indicar que la consulta de lectura 12a se ha de procesar en base a la base de datos primaria 3, por ejemplo, determinando que las métricas de validez de los primeros datos almacenados en caché (recuperados de la memoria caché 4 mediante la operación 13) no están por encima del umbral de métrica de validez dado. En estas situaciones, como se explicó anteriormente con referencia a la FIG. 3, los primeros datos originales correspondientes se recuperan 15 de la base de datos primaria 3 y se devuelven 16 al cliente 5. En estas situaciones, la operación de determinación 17 probablemente indicará que los primeros datos almacenados en caché se han de actualizar (ya que sus métricas de validez se han determinado para ser bajas en la operación 14) y la operación de actualización 18 puede utilizar directamente los primeros datos originales como se recuperaron de la base de datos primaria 3 en la operación 15 (FIG. 3), sin ningún acceso adicional a la base de datos primaria 3. En otras ocasiones, la primera consulta de base de datos 12 puede ser una consulta de escritura 12b que constituye una solicitud de cambio, sustitución, inserción o eliminación de los primeros datos (FIG. 5). En algunas realizaciones, el tipo de consulta de escritura indica a la máquina informática 2 que la consulta se ha de procesar en base a la base de datos primaria 3 por motivos de coherencia de los datos. Por lo tanto, la operación de recuperación de caché 13 se puede omitir y la máquina informática 2 determina 14b en base al tipo de escritura de la primera consulta de base de datos 12 que la consulta se ha de procesar en base a la base de datos primaria 3. En consecuencia, la máquina informática 2 procesa 15 la primera consulta de base de datos 12b en base a los primeros datos originales en la base de datos primaria 3 que da como resultado un cambio de los primeros datos originales en la base de datos primaria 3. La máquina informática 2 responde 16b al cliente 5, por ejemplo, reconociendo que la consulta de escritura 12b se ha ejecutado con éxito y/o el valor cambiado de los primeros datos como ahora presente en la base de datos primaria 3.
En estas situaciones, la determinación 17 de actualizar los primeros datos en la memoria caché en base a los primeros datos originales modificados en la base de datos primaria 3 se realiza en respuesta a la finalización del procesamiento de la primera consulta de base de datos 12 en base a los primeros datos originales en la base de datos primaria 3, es decir, después de que se haya enviado al cliente 5 la respuesta 16b a la primera consulta de base de datos. Como se perfiló anteriormente, la máquina informática 2, por ejemplo, determina en la operación 17 si se recibió una segunda consulta de base de datos 12 anterior con relación a los primeros datos en un período de tiempo de actualización dado. Si este no es el caso, los primeros datos en la memoria caché 4 se actualizan 18. La actualización 18 puede utilizar directamente el valor cambiado de los primeros datos originales que pueden ser ya conocidos por la máquina informática 2 debido a la operación 15, de modo que una comunicación adicional con la base de datos primaria 3 pueda no ocurrir en la operación 18.
En algunas realizaciones, la operación de determinación 17 también puede tener en cuenta el tipo de escritura de la consulta de base de datos 12b que probablemente haya desactualizado los primeros datos almacenados en caché en la memoria caché 4. En estas realizaciones, la operación de determinación 17 determina que la consulta de base de datos 12b era una consulta de escritura. y por lo tanto, por ejemplo, fuerza una actualización de los primeros datos en la memoria caché 4 independientemente de si se recibió o no una segunda consulta de base de datos 12 anterior con relación a los primeros datos dentro del período de tiempo de actualización dado.
En algunas realizaciones, en respuesta a la finalización del procesamiento de la primera consulta de base de datos 12, la máquina informática 2 determina 19 adicionalmente si actualizar al menos un segundo dato en la memoria caché 4 que está correlacionado con el primer dato. Como ya se mencionó anteriormente, se ha reconocido que puede existir una correlación entre una pluralidad de consultas de base de datos. Por lo tanto, la primera consulta de base de datos 12 con relación a los primeros datos no solo puede ser un indicador de que los mismos primeros datos se pueden solicitar del sistema de base de datos 1 también mediante consultas de base de datos posteriores, sino que también puede ser un indicador de que las consultas de base de datos posteriores pueden solicitar otros datos distintos de los primeros datos que se correlacionan con los primeros datos. Por lo tanto, en estas realizaciones, la primera consulta de base de datos 12 se trata como un desencadenante para actualizar posiblemente los segundos datos en la memoria caché que se correlacionan con los primeros datos que fueron objeto de la primera consulta de base de datos 12.
Una actualización 20 de los segundos datos en la memoria caché 4 se basa en los segundos datos originales en la base de datos primaria 3 correspondientes a los segundos datos en la memoria caché 4. En el ejemplo de la FIG. 6, la primera consulta de base de datos 12 se refería a los primeros datos definidos por el criterio A. La operación de determinación 17 determina por tanto si actualizar o no 18 los primeros datos almacenados en caché definidos por el criterio A. Además, la operación de determinación 19 determina si los datos almacenados en caché relacionados definidos por el criterio A' también son para ser actualizados 20.
La correlación entre los primeros datos y los segundos datos, por ejemplo, se relaciona con métricas de validez idénticas o similares. Por ejemplo, los primeros datos y los segundos datos pueden tener funciones de cierre 10, 11 como se muestra en la FIG. 1. Los primeros datos y los segundos datos también pueden estar correlacionados de otras formas, por ejemplo, teniendo parámetros relacionados. Por ejemplo, los primeros datos pueden constituir los resultados de simulación de una ejecución de simulación número X, mientras que los segundos datos pueden constituir los resultados de la simulación de la siguiente ejecución de simulación número X+1. La correlación entre los datos puede existir en el nivel de datos individuales y acciones de datos plurales. Además, pueden existir varios grados de correlación, y se puede considerar que los primeros datos y los segundos datos se correlacionan en la presente memoria si el grado de correlación cumple un umbral dado.
Los principios de correlación entre datos son generalmente conocidos, por ejemplo, a partir del documento EP 3016000 A1, cuyos párrafos [0029] a [0032] y [0057] relacionados específicamente con la correlación se incorporan en la presente memoria como referencia.
La operación de determinación 19 puede emplear la misma lógica que la operación de determinación 17, es decir, por ejemplo, incluir una determinación de si una consulta de base de datos anterior con relación a los segundos datos se recibió o no por la máquina informática 2 dentro del período de tiempo de actualización dado. La operación de determinación 19 también puede tener en cuenta factores adicionales tales como los recursos de actualización disponibles (capacidad de red en la interfaz 8, recursos de cálculo/recuperación en la base de datos primaria 3). Por lo tanto, aunque se puede indicar una actualización de los segundos datos almacenados en caché por los factores básicos, la falta de recursos de actualización puede producir un resultado de la operación de determinación 19 para inhibir una actualización de los segundos datos almacenados en caché.
Además, la operación de determinación 19 puede ser independiente del resultado de la operación de determinación 17. Por lo tanto, incluso si por ejemplo, la operación de determinación 17 indicó que los primeros datos almacenados en caché no se han de actualizar (por ejemplo, porque se recibió una segunda solicitud anterior con relación a los primeros datos dentro del período de tiempo de actualización dado), la operación de determinación 19 puede indicar que los segundos datos almacenados en caché se han de actualizar. En otras implementaciones, la operación de determinación 19 puede ser dependiente de la operación de determinación 17 en el sentido de que el resultado de la operación de determinación 17 también se transfiere a la operación de determinación 19, es decir, una decisión de actualizar los primeros datos almacenados en caché es también una decisión de actualizar los segundos datos almacenados en caché. En estas realizaciones, las operaciones de determinación 17 y 19 pueden formar una operación combinada (es decir, un recuadro combinado 17, 19 en la FIG. 6).
Cabe señalar que la máquina informática 2 no determina 17 necesariamente si actualizar o no los primeros datos en la memoria caché 4 y, opcionalmente, determinar 19 si actualizar o no los segundos datos en la memoria caché inmediatamente después de que finaliza el procesamiento de la primera consulta de base de datos 12. Como se explicó anteriormente, haber procesado la primera solicitud de base de datos 12 es un desencadenante para actualizar posiblemente los primeros datos y los segundos datos en la memoria caché y puede trascurrir una cierta cantidad de tiempo entre la finalización del procesamiento de la primera consulta de base de datos 12 y las operaciones de determinación 17 y 19. Por ejemplo, en algunas realizaciones, la máquina informática 2 mantiene un registro y añade una entrada de la primera consulta de base de datos 12 al registro. Otras consultas de base de datos también se añaden al registro después de que se hayan procesado. La máquina informática 2 puede entonces, por ejemplo, procesar periódicamente las consultas de base de datos registradas y realizar operaciones de determinación 17 y opcionalmente 19 para todas las consultas de base de datos registradas.
Algunas realizaciones incluyen desencadenadores adicionales para determinar si actualizar los primeros datos almacenados en caché, más allá de las consultas de base de datos entrantes y procesadas. Por ejemplo, en estas realizaciones, la máquina informática 2 (o cualquier otra entidad acoplada comunicativamente a la máquina informática 2 y que forma parte lógica de la máquina informática 2) determina 21, empleando un algoritmo de aprendizaje automático, una disminución de una probabilidad que los primeros datos en la memoria caché 4 sigan siendo válidos, es decir, que los primeros datos almacenados en memoria caché sigan siendo idénticos o correspondan a los primeros datos originales en la base de datos primaria 3 (FIG. 7). Por ejemplo, la operación de determinación 21 puede determinar que la métrica de validez de los primeros datos (por ejemplo, la función 10 de la FIG. 1) ha caído por debajo de un umbral de validez dado.
En respuesta a la operación de determinación 21 que indica una disminución de la probabilidad de que los primeros datos en la memoria caché 4 sigan siendo válidos, la máquina informática 2 determina 17, en base al menos a la disminución de la probabilidad de que los primeros datos en la memoria caché 4 sigan siendo válidos, para actualizar los primeros datos en la memoria caché 4 en base a los primeros datos originales en la base de datos primaria 3. La operación de determinación 17 de la FIG. 7 es similar a la operación de determinación 17 en las FIGS.
3 a 6, es decir, se puede basar en la misma lógica, tal como verificar si se recibió o no una consulta de base de datos anterior con relación a los primeros datos dentro del período de tiempo de actualización dado, pero además tiene en cuenta la métrica de validez de los primeros datos.
Del mismo modo que en la FIG. 6, la máquina informática 2 puede determinar además 19 si actualizar también los segundos datos almacenados en caché correlacionados con los primeros datos almacenados en caché.
La FIG. 8 visualiza un ejemplo de múltiples iteraciones de las funcionalidades descritas anteriormente con referencia a las FIGS. 3 a 7 con el tiempo. La línea de tiempo superior 22 muestra las consultas de base de datos y los eventos con relación a los primeros datos a los que se hace referencia como "datos M", mientras que la línea de tiempo inferior 23 muestra las consultas de base de datos y los eventos con relación a los segundos datos a los que se hace referencia como "datos N" que están relacionados con los datos M. Como se mencionó anteriormente, los primeros datos M y los segundos datos N, respectivamente, pueden ser uno o más registros de datos, matrices, etc. que están sujetos a una solicitud de base de datos o que forman cualquier parte adicional de datos interrelacionados dentro de la base de datos primaria 3 tal como una tabla de base de datos.
En un primer punto de tiempo t<1>, los datos N se insertan en la base de datos primaria 3 mediante una consulta de inserción. La operación de determinación 17 determina que los datos N se han de actualizar 18 en la memoria caché 4 como ninguna consulta de base de datos anterior dentro del período de tiempo de actualización dado (al que se hace referencia como "t<min>" en la FIG. 8 que, por ejemplo, se observa por un temporizador de inhibición de actualización respectivo como se explicó anteriormente) se ha registrado y la consulta de inserción es una consulta de escritura. En un segundo punto de tiempo t<2>, los datos M se añaden a la base de datos primaria 3. Del mismo modo, la operación de determinación 17 determina que los datos M se han de actualizar 18 en la memoria caché 4 ya que no se ha registrado ninguna consulta de base de datos anterior dentro del período de tiempo de actualización dado (por ejemplo, el temporizador de inhibición de actualización para los datos M no se está ejecutando) y la consulta de inserción es una consulta de escritura. Se inicia el temporizador de inhibición de actualización para los datos M.
En un tercer punto de tiempo t<3>, una consulta de lectura se recibe por la máquina informática 2 que se relaciona con los datos M. La operación de determinación 14 determina procesar la consulta de lectura en base a la memoria caché 4. Después de haber devuelto 16 los datos M al cliente solicitante 5, la máquina informática 2 determina 17 inhibir una actualización de memoria caché en la medida que t<3>todavía está dentro del período de tiempo de actualización dado t<min>inicializado por t<2>(el temporizador de inhibición de actualización para los datos M todavía está funcionando) y, por tanto, la consulta de inserción se considera que es una consulta de base de datos anterior recibida dentro del período de tiempo de actualización dado. Como se mencionó anteriormente, inhibir con el fin de desduplicar múltiples actualizaciones que ocurren dentro de un cierto período de tiempo se refiere a no actualizar en el punto de tiempo actual, y o bien descartar o bien retrasar la actualización de memoria caché de los datos en cuestión. La FIG. 8 visualiza la variante de descarte. En las variantes con retraso, cualquier actualización inhibida se realiza de hecho al final de un t<min>período de tiempo, es decir, en respuesta a una expiración del temporizador de inhibición de actualización.
Continuando con la referencia a la FIG. 8, después de que ha pasado una cierta cantidad de tiempo, otra consulta de lectura con relación a los datos M se recibe por la máquina informática 2 en el punto de tiempo t<4>. Esta vez, la máquina informática 2 nuevamente determina 14 procesar la consulta de lectura en base a la memoria caché 4 y devuelve 16 los datos M al cliente solicitante 5. Sin embargo, el período de tiempo de actualización dado reinicializado en t<3>ha pasado y, por tanto, la operación de determinación 17 determina realizar una actualización de memoria caché 18 ya que no se recibió ninguna consulta de base de datos anterior con relación a los datos M dentro del período de tiempo de actualización dado. De acuerdo con la FIG. 6, también se determina 19 una actualización de memoria caché 20 para datos relacionados N en la medida que, por ejemplo, no se ha recibido ninguna consulta de base de datos anterior con relación a los datos N dentro del período de tiempo de actualización dado.
Después de que ha pasado tiempo adicional, se reconoce una probable invalidez de los datos M y los datos N y ambos, los datos M y N, se actualizan 18 en el punto de tiempo t<5>. En el ejemplo de la FIG. 8, esta actualización de memoria caché reinicializa el período de tiempo de actualización dado respectivo tanto para los datos M como los datos N. Se recibe otra consulta de lectura con relación a los datos M en el punto de tiempo t<6>que todavía está dentro del período de tiempo de actualización dado para los datos M y, por tanto, no se determina 17 ninguna actualización de memoria caché después de concluir el procesamiento de esta consulta de lectura.
En el punto de tiempo t<7>, se recibe una consulta de lectura solicitando los datos N. Dado que el evento anterior (la probable invalidez determinada en t<5>) ocurrió antes del período de tiempo de actualización dado, se determina 17 una actualización de memoria caché 18 para los datos N en t<7>. Por motivos de exhaustividad, la máquina informática 2 también puede realizar una operación de determinación 19 para los datos M (visualizados por la flecha de puntos de N a M en el punto de tiempo t<7>) ya que los datos M están relacionados con los datos N y, desde la perspectiva de los datos N, constituyen los segundos datos en el sentido utilizado anteriormente. En el ejemplo de la FIG. 8, se supone que no se realiza ninguna actualización de memoria caché para los datos M en t<7>por ejemplo, debido a recursos de actualización insuficientes en t<7>. Como consecuencia, en el punto de tiempo t<s>, se realiza otra actualización de memoria caché de datos M almacenados en caché después de la consulta de lectura en t<8>se procesa porque la operación de determinación 17 determina que no ocurrió ninguna consulta de base de datos anterior u otro evento dentro del período de tiempo de actualización dado para los datos M.
Finalmente, en el punto de tiempo t<g>, se recibe una consulta de eliminación para eliminar los datos M de la base de datos primaria 3. La máquina informática 2 determina 14 procesar la consulta de eliminación utilizando la base de datos primaria 3 por motivos de coherencia de datos. Después de finalizar el procesamiento de la consulta de eliminación, la máquina informática 2 determina 17 realizar una actualización de memoria caché 18 para los datos M. Aunque se recibió una solicitud de base de datos anterior durante el período de tiempo de actualización dado (es decir, la consulta de lectura en t<s>), la actualización de memoria caché en t<g>se fuerza debido al tipo de escritura de la consulta de eliminación. También se determina 19 una actualización de memoria caché 20 para los datos N ya que no se recibió ninguna consulta de base de datos anterior para los datos N durante el período de tiempo de actualización dado.
En algunas realizaciones, se emplean mecanismos de desduplicación adicionales con el fin de limitar aún más las actualizaciones 18, 20 y las solicitudes correspondientes a la base de datos primaria 3 y aliviar la interfaz 9 y la base de datos primaria 3 de carga. En estas realizaciones (FIG. 9), el sistema 1 es un sistema de base de datos distribuido más complejo con una pluralidad de nodos locales 2a, 2b, 2c (es decir, máquinas informáticas 2) dispuestos para recibir solicitudes de bases de datos de máquinas cliente 5. La máquina informática 2 es uno de estos nodos locales plurales en el sistema de base de datos distribuida 1 con la pluralidad de nodos locales y al menos un nodo central, al que se hace referencia como máquina de desduplicación global 9 en la FIG. 9. El sistema de base de datos distribuida 1 también puede incluir una pluralidad de memorias caché 4. Por ejemplo, cada uno de la pluralidad de nodos locales puede estar equipado con una memoria caché local 4.
En las realizaciones que emplean desduplicación adicional, la máquina informática 2 monitoriza un historial de solicitudes de base de datos con relación a cualquier primer dato con el fin de realizar una desduplicación local como ya se mencionó anteriormente. En respuesta a la determinación de que no se recibió ninguna segunda consulta de base de datos anterior con relación a los primeros datos en la memoria caché 4 dentro del período de tiempo de actualización dado, la máquina informática 2 (por ejemplo, el nodo local 2a) envía una primera solicitud de actualización para actualizar al menos los primeros datos en la memoria caché 4 al nodo central 9 con el fin de efectuar una actualización de los primeros datos almacenados en caché. También se envían solicitudes de actualización respectivas relativas a cualquier primer dato y segundo dato por otras máquinas informáticas 2b, 2c al nodo central 9.
La máquina de desduplicación global 9 procesa todas las solicitudes de actualización entrantes desde las máquinas informáticas 2a, 2b, 2c. En respuesta a la recepción de la solicitud de actualización relativa a los primeros datos de uno de los nodos locales 2a, la máquina de desduplicación global 9 realiza la desduplicación de actualización de memoria caché a nivel global. Con este fin, en respuesta a la determinación de que al menos una segunda solicitud de actualización anterior para actualizar los primeros datos en la memoria caché 4 se recibió de otro nodo local 2b, 2c dentro de un período de tiempo dado adicional, al que también se hace referencia como período de tiempo de actualización central, el nodo central 9 inhibe la actualización de los primeros datos en la memoria caché 4. Por lo tanto, la máquina de desduplicación global 9 filtra la solicitud de actualización relativa a los primeros datos y alivia la base de datos primaria 3 de la carga correspondiente. Más bien, la máquina de desduplicación global devuelve un mensaje de rechazo a la máquina informática 2a solicitante que indica que la solicitud de actualización se rechaza. El período de tiempo de actualización central se establece en un valor apropiado según la implementación del sistema 1, por ejemplo, igual o mayor que el periodo o períodos de tiempo de actualización (locales) empleados por las máquinas informáticas 2, ya que la desduplicación que utiliza el periodo o períodos de tiempo de actualización (locales) ya se realiza a nivel local de las máquinas informáticas 2. El nodo central 9 puede emplear un temporizador de inhibición de actualización similar por datos almacenados en caché como ya se describió para la máquina informática 2 en detalle anteriormente.
En algunas realizaciones, en lugar de filtrar múltiples solicitudes de actualización, el nodo central 9 retrasa el envío de solicitudes de actualización hasta que expira el temporizador de inhibición de actualización central. El nodo central 9 puede informar a la máquina informática 2 solicitante que la solicitud de actualización se procesará con retraso.
Finalmente, la FIG. 10 es una representación esquemática del componente interno de una máquina informática 2. La máquina informática 2 incluye un conjunto de instrucciones para hacer que la máquina informática 2 realice cualquiera de las metodologías discutidas en la presente memoria cuando se ejecutan por la máquina informática 2. La máquina informática 2 incluye al menos un procesador 102, una memoria principal 104 y un dispositivo de interfaz de red 108 que se comunican unos con otros a través de un bus 101. Opcionalmente, la máquina informática 2 puede incluir además una memoria estática 106 y una unidad de disco. Se pueden proporcionar una pantalla de video, un dispositivo de entrada alfanumérico y un dispositivo de control del cursor como ejemplos de interfaz de usuario 103. El dispositivo de interfaz de red 108 conecta la máquina informática 2 al menos a los clientes 5 así como a la base de datos primaria 3 y opcionalmente también al nodo central 9.
En realizaciones en las que la máquina informática 2 también alberga la memoria caché 4, la memoria caché 4 se puede mantener en la memoria principal 104. Un conjunto de instrucciones ejecutables por ordenador (es decir, código de programa informático) que incorpora cualquiera o todas las metodologías descritas anteriormente, reside completamente, o al menos parcialmente, en o sobre un medio legible por máquina, por ejemplo, la memoria principal 104 (mostrada como procesamiento de solicitud de base de datos de entidades funcionales 110, incluyendo la funcionalidad para recibir y procesar solicitudes de base de datos, incluyendo la operación de determinación 14 y la funcionalidad de actualización de memoria caché 112 que incluye las operaciones de determinación 17 y 19, así como las operaciones de actualización 18 y 20) y/o el al menos un procesador 102 y/o en la memoria estática 106. Las instrucciones se pueden transmitir o recibir además como una señal propagada a través de Internet a través del dispositivo de interfaz de red 108. El funcionamiento básico de la máquina informática, incluyendo la interfaz de usuario y la comunicación de red, se controla por un sistema operativo que también se sitúa en la memoria principal 104, el al menos un procesador 102 y/o la memoria estática 106.
En general, se puede hacer referencia en la presente memoria a las rutinas ejecutadas para implementar las realizaciones de la invención, ya sea que se implementen como parte de un sistema operativo o una aplicación, componente, programa, objeto, módulo o secuencia de instrucciones específicos, o incluso un subconjunto de los mismos, como "código de programa informático " o simplemente "código de programa". El código de programa típicamente comprende instrucciones legibles por ordenador que son residentes en varios momentos en varios dispositivos de memoria y almacenamiento en un ordenador y que, cuando se lee y ejecuta por uno o más procesadores en un ordenador, hacen que el ordenador realice las operaciones necesarias para ejecutar operaciones y/o elementos que incorporan los diversos aspectos de las realizaciones de la invención. Las instrucciones de programa legibles por ordenador para llevar a cabo operaciones de las realizaciones de la invención pueden ser, por ejemplo, lenguaje ensamblador o bien código fuente o bien código objeto escrito en cualquier combinación de uno o más lenguajes de programación.
Varios códigos de programa descritos en la presente memoria se pueden identificar en base a la aplicación dentro de la que se implementa en realizaciones específicas de la invención. Sin embargo, se debería apreciar que cualquier nomenclatura de programa particular que sigue se usa meramente por conveniencia y, por tanto, la invención no se debería limitar al uso únicamente en cualquier aplicación específica identificada y/o implícita por tal nomenclatura. Además, dado el número de maneras generalmente infinita en que los programas informáticos se pueden organizar en rutinas, procedimientos, métodos, módulos, objetos y similares, así como las diversas maneras en que la funcionalidad del programa se puede asignar entre varias capas de software que son residentes dentro de un ordenador típico (por ejemplo, sistemas operativos, bibliotecas, API, aplicaciones, subprogramas, etc.), se debería apreciar que las realizaciones de la invención no se limitan a la organización y asignación específicas de la funcionalidad del programa descrita en la presente memoria.
El código de programa incorporado en cualquiera de las aplicaciones/módulos descritos en la presente memoria es capaz de ser distribuido individual o colectivamente como un producto de programa en una variedad de formas diferentes. En particular, el código de programa se puede distribuir usando un medio de almacenamiento legible por ordenador que tiene instrucciones de programa legibles por ordenador en el mismo para hacer que un procesador lleve a cabo aspectos de las realizaciones de la invención.
Los medios de almacenamiento legibles por ordenador, que son inherentemente no transitorios, pueden incluir medios tangibles volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para el almacenamiento de información, tal como instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento legibles por ordenador pueden incluir además memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), memoria de solo lectura programable y borrable (EPROM), memoria de solo lectura programable y borrable eléctricamente (EEPROM), memoria flash u otra tecnología de memoria de estado sólido, memoria de solo lectura de disco compacto portátil (CD-ROM), u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se pueda usar para almacenar la información deseada y que se pueda leer por un ordenador. Un medio de almacenamiento legible por ordenador no se debería interpretar como señales transitorias per se (por ejemplo, ondas de radio u otras ondas electromagnéticas que se propagan, ondas electromagnéticas que se propagan a través de un medio de transmisión, como una guía de ondas, o señales eléctricas transmitidas a través de un cable). Las instrucciones de programas legibles por ordenador se pueden descargar a un ordenador, otro tipo de aparato de procesamiento de datos programable u otro dispositivo desde un medio de almacenamiento legible por ordenador o a un ordenador externo o dispositivo de almacenamiento externo a través de una red.
Las instrucciones de programas legibles por ordenador almacenadas en un medio legible por ordenador se pueden usar para dirigir a un ordenador, otros tipos de aparatos de procesamiento de datos programables u otros dispositivos para funcionar de una manera particular, de manera que las instrucciones almacenadas en el medio legible por ordenador produzcan un artículo de manufactura que incluye instrucciones que implementan las funciones, actos y/u operaciones especificadas en los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques. Las instrucciones de programa informático se pueden proporcionar a uno o más procesadores de un ordenador de propósito general, un ordenador de propósito especial u otro aparato de procesamiento de datos programable para producir una máquina, de manera que las instrucciones, que se ejecutan a través de uno o más procesadores, hagan que un serie de cálculos se realicen para implementar las funciones, actos y/u operaciones especificadas en los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques.
La terminología utilizada en la presente memoria tiene el propósito de describir realizaciones particulares únicamente y no se pretende que sea limitativa de las realizaciones de la invención. Se entenderá además que los términos "comprende" y/o "que comprende", cuando se usan en esta especificación, especifican la presencia de características, números enteros, pasos, operaciones, elementos y/o componentes establecidos, pero no excluyen la presencia o adición de una o más características, números enteros, pasos, operaciones, elementos, componentes y/o grupos de los mismos. Además, en la medida en que los términos "incluye", "que tiene", "tiene", "con", "compuesto por" o variantes de los mismos se utilizan o bien en la descripción detallada o bien en las reivindicaciones, tales términos se pretende que sean inclusivos de manera similar al término "que comprende". Aunque toda la invención se ha ilustrado mediante una descripción de varias realizaciones y aunque estas realizaciones se han descrito con un detalle considerable, no es con la intención de restringir o limitar de ningún modo el alcance de las reivindicaciones adjuntas a tal detalle. Las ventajas y modificaciones adicionales aparecerán fácilmente a los expertos en la técnica. Por lo tanto, la invención en sus aspectos más amplios no se limita a los detalles específicos y ejemplos ilustrativos mostrados y descritos. En consecuencia, se pueden hacer desviaciones de dichos detalles sin apartarse del alcance del concepto inventivo general.

Claims (12)

REIVINDICACIONES
1. Un método para actualizar datos en una memoria caché (4) realizado por una máquina informática (2) que está acoplada a una base de datos primaria (3) que mantiene los datos originales y a la memoria caché (4) que mantiene los datos correspondientes a los datos originales en la base de datos primaria. (3), el método que comprende, en la máquina informática (2):
- en respuesta a la recepción de una primera consulta de base de datos (12) con relación a un primer dato, determinar (14, 14a, 14b), en base a al menos un factor de sondeo dado, si procesar la primera consulta de base de datos (12) utilizando la memoria caché (4) o en base a la base de datos primaria (3);
- en respuesta a la determinación, en base a al menos un factor de sondeo dado, procesar la primera consulta de base de datos (12) utilizando la memoria caché (4), procesar la primera consulta de base de datos utilizando la memoria caché (4) incluyendo la recuperación de los primeros datos de la memoria caché (4) y devolver los primeros datos recuperados;
- en respuesta a la finalización del procesamiento de la primera consulta de base de datos, determinar (17) si actualizar los primeros datos en la memoria caché (4);
- si la determinación (17) de si actualizar los primeros datos indica actualizar los primeros datos, actualizar (18) los primeros datos en la memoria caché (4) en base a los primeros datos originales en la base de datos primaria (3); y - en donde determinar (17) si actualizar los primeros datos en la memoria caché (3) comprende,
- en respuesta a la determinación (19) de que no se recibió ninguna segunda solicitud de base de datos anterior con relación a los primeros datos dentro de un período de tiempo dado, actualizar los primeros datos en la memoria caché (3);
- en respuesta a la determinación (19) de que se recibió al menos una segunda consulta de base de datos (12) anterior con relación a los primeros datos dentro del período de tiempo dado, inhibir la actualización de los primeros datos en la memoria caché (3) con el fin de limitar el número de actualizaciones de memoria caché que ocurren dentro del período de tiempo dado;
en donde el al menos un factor de sondeo dado comprende al menos uno de:
- un tipo de la primera solicitud de consulta de base de datos (12),
- una existencia de los primeros datos en la memoria caché (4),
- una tasa de error de sondeo que es una relación entre una cantidad de fallos de acceso a la base de datos primaria (3) y un número de intentos de acceso a la base de datos primaria (3),
- un número de accesos de escritura en los primeros datos originales en un período de tiempo dado,
- una edad de los primeros datos en la memoria caché (4),
- una tasa de validez que indica una probabilidad de que los primeros datos en la memoria caché (4) sean válidos a una cierta edad,
- una frecuencia de acceso de los primeros datos en la memoria caché (4),
- un recurso de actualización que es una medida de los costes de cálculo y/o la carga de red requerida para actualizar los primeros datos en la memoria caché (4).
2. El método de la reivindicación 1, que comprende, en la máquina informática (2):
- si la determinación (17) de si actualizar los primeros datos indica no actualizar los primeros datos, no actualizar los primeros datos en la memoria caché (4).
3. El método de la reivindicación 1 o la reivindicación 2, en donde la primera consulta de base de datos (12) es una consulta de lectura (12a), el método que comprende:
- procesar la primera consulta de base de datos (12) utilizando la memoria caché (4),
en donde la determinación (17) de actualizar los primeros datos en la memoria caché (4) se realiza en respuesta a la finalización del procesamiento de la primera consulta de base de datos (12) utilizando la memoria caché (4).
4. El método de la reivindicación 1 o la reivindicación 2, en donde la primera consulta de base de datos (12) es una consulta de escritura (12b), el método que comprende:
- procesar la primera consulta de base de datos (12) en base a los primeros datos originales en la base de datos primaria (3) dando como resultado un cambio de los primeros datos originales en la base de datos primaria (3), en donde la determinación (17) de actualizar los primeros datos en la memoria caché (4) en base a los primeros datos originales cambiados en la base de datos primaria (3) se realiza en respuesta a la finalización del procesamiento de la primera consulta de base de datos (12) en base a los primeros datos originales en la base de datos primaria (3).
5. El método de una cualquiera de las reivindicaciones 1 a 4, que comprende además:
- en respuesta a la finalización del procesamiento de la primera consulta de base de datos (12), determinar (17) si actualizar al menos un segundo dato en la memoria caché (4) correlacionado con el primer dato basado en el segundo dato original en la base de datos primaria (3).
6. El método de una cualquiera de las reivindicaciones 1 a 4, que comprende además:
- determinar (21) una disminución de la probabilidad de que los primeros datos en la memoria caché sigan siendo válidos, es decir, idénticos a los primeros datos originales en la base de datos primaria, determinando que una métrica de validez (10) de los primeros datos ha caído por debajo de un umbral dado;
- determinar (17), en base al menos a la disminución de la probabilidad de que los primeros datos en la memoria caché sigan siendo válidos, si actualizar los primeros datos en la memoria caché en base a los primeros datos originales en la base de datos primaria.
7. El método de la reivindicación 6, que comprende además:
- después de haber determinado la disminución de la probabilidad de que los primeros datos en la memoria caché sigan siendo válidos, determinar (19) si actualizar al menos un segundo dato en la memoria caché correlacionado con los primeros datos en base a los segundos datos originales en la base de datos primaria.
8. El método de una cualquiera de las reivindicaciones 1 a 7, en donde la máquina informática (2) es un nodo local en un sistema de base de datos distribuida (1) con una pluralidad de nodos locales (2a, 2b, 2c) y un nodo central (9), el método que comprende además:
- enviar una primera solicitud de actualización para actualizar al menos los primeros datos en la memoria caché (3) al nodo central (9),
- en respuesta a determinar, en el nodo central (9), que se recibió al menos una segunda solicitud de actualización anterior para actualizar los primeros datos en la memoria caché (4) de otro nodo local dentro de un segundo período de tiempo dado, inhibir la actualización de los primeros datos en la memoria caché (4).
9. Una máquina informática (2) acoplada a una base de datos primaria (3) que mantiene los datos originales y a una memoria caché (4) que mantiene los datos correspondientes a los datos originales en la base de datos primaria (4), la máquina informática (2) que está dispuesta para:
- en respuesta a la recepción de una primera consulta de base de datos (12) con relación a un primer dato, determinar (14, 14a, 14b), en base a al menos un factor de sondeo dado, si procesar la primera consulta de base de datos utilizando la memoria caché (4) o en base a la base de datos primaria (3);
- en respuesta a la determinación, en base a al menos un factor de sondeo dado, procesar la primera consulta de base de datos (12) utilizando la memoria caché (4), procesar la primera consulta de base de datos utilizando la memoria caché (4) incluyendo la recuperación de los primeros datos de la memoria caché (4) y devolver los primeros datos recuperados;
- en respuesta a la finalización del procesamiento de la primera consulta de base de datos, determinar (17) si actualizar los primeros datos en la memoria caché (4);
- si la determinación (17) de si actualizar los primeros datos indica actualizar los primeros datos, actualizar (18) los primeros datos en la memoria caché (4) en base a los primeros datos originales en la base de datos primaria (3); y en donde determinar (17) si actualizar los primeros datos en la memoria caché (3) comprende,
- en respuesta a la determinación (19) de que no se recibió ninguna segunda solicitud de base de datos anterior con relación a los primeros datos dentro de un período de tiempo dado, actualizar los primeros datos en la memoria caché (3);
- en respuesta a la determinación (19) de que se recibió al menos una segunda consulta de base de datos (12) anterior con relación a los primeros datos dentro del período de tiempo dado, inhibir la actualización de los primeros datos en la memoria caché (3) con el fin de limitar el número de actualizaciones de memoria caché que ocurren dentro del período de tiempo dado;
en donde el al menos un factor de sondeo dado comprende al menos uno de:
- un tipo de la primera solicitud de consulta de base de datos (12),
- una existencia de los primeros datos en la memoria caché (4),
- una tasa de error de sondeo que es una relación entre un número de fallos de acceso a la base de datos primaria (3) y un número de intentos de acceso a la base de datos primaria (3),
- un número de accesos de escritura en los primeros datos originales en un período de tiempo dado,
- una edad de los primeros datos en la memoria caché (4),
- una tasa de validez que indica una probabilidad de que los primeros datos en la memoria caché (4) sean válidos a una cierta edad,
- una frecuencia de acceso de los primeros datos en la memoria caché (4),
- un recurso de actualización que es una medida de los costes de cálculo y/o la carga de red requerida para actualizar los primeros datos en la memoria caché (4).
10. Una máquina informática (2) según la reivindicación 9, la máquina informática (2) que está dispuesta para realizar el método de actualización de datos de una cualquiera de las reivindicaciones 2 a 8.
11. Un producto de programa informático que comprende instrucciones de código de programa almacenadas en un medio legible por ordenador para ejecutar los siguientes pasos del método, cuando dicho programa se ejecuta en un ordenador:
- en respuesta a la recepción de una primera consulta de base de datos (12) con relación a un primer dato, determinar (14, 14a, 14b), en base a al menos un factor de sondeo dado, si procesar la primera consulta de base de datos (12) utilizando la memoria caché (4) o en base a la base de datos primaria (3);
- en respuesta a la determinación, en base a al menos un factor de sondeo dado, procesar la primera consulta de base de datos (12) utilizando la memoria caché (4), procesar la primera consulta de base de datos utilizando la memoria caché (4) incluyendo la recuperación de los primeros datos de la memoria caché (4) y devolver los primeros datos recuperados;
- en respuesta a la finalización del procesamiento de la primera consulta de base de datos, determinar (17) si actualizar los primeros datos en la memoria caché (4);
- si la determinación (17) de si actualizar los primeros datos indica actualizar los primeros datos, actualizar (18) los primeros datos en la memoria caché (4) en base a los primeros datos originales en la base de datos primaria (3); y en donde determinar (17) si actualizar los primeros datos en la memoria caché (3) comprende,
- en respuesta a la determinación (19) de que no se recibió ninguna segunda solicitud de base de datos anterior con relación a los primeros datos dentro de un período de tiempo dado, actualizar los primeros datos en la memoria caché (3);
- en respuesta a la determinación (19) de que se recibió al menos una segunda consulta de base de datos (12) anterior con relación a los primeros datos dentro del período de tiempo dado, inhibir la actualización de los primeros datos en la memoria caché (3) con el fin de limitar el número de actualizaciones de memoria caché que ocurren dentro del período de tiempo dado;
en donde el al menos un factor de sondeo dado comprende al menos uno de:
- un tipo de la primera solicitud de consulta de base de datos (12),
- una existencia de los primeros datos en la memoria caché (4),
- una tasa de error de sondeo que es una relación entre un número de fallos de acceso a la base de datos primaria (3) y un número de intentos de acceso a la base de datos primaria (3),
- un número de accesos de escritura en los primeros datos originales en un período de tiempo dado,
- una edad de los primeros datos en la memoria caché (4),
- una tasa de validez que indica una probabilidad de que los primeros datos en la memoria caché (4) sean válidos a una cierta edad,
- una frecuencia de acceso de los primeros datos en la memoria caché (4),
- un recurso de actualización que es una medida de los costes de cálculo y/o la carga de red requerida para actualizar los primeros datos en la memoria caché (4).
12. Un producto de programa informático de la reivindicación 11 para ejecutar los pasos del método según cualquiera de las reivindicaciones 2 a 8 cuando dicho programa se ejecuta en un ordenador.
ES19166525T 2018-04-03 2019-04-01 Actualización de datos almacenados en caché Active ES2958718T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/944,572 US11636112B2 (en) 2018-04-03 2018-04-03 Updating cache data
FR1852866A FR3079635B1 (fr) 2018-04-03 2018-04-03 Mise a jour de donnees en cache

Publications (1)

Publication Number Publication Date
ES2958718T3 true ES2958718T3 (es) 2024-02-13

Family

ID=65894945

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19166525T Active ES2958718T3 (es) 2018-04-03 2019-04-01 Actualización de datos almacenados en caché

Country Status (4)

Country Link
EP (1) EP3550446B1 (es)
CN (1) CN110347707B (es)
CA (1) CA3038199A1 (es)
ES (1) ES2958718T3 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593375B2 (en) 2020-01-15 2023-02-28 Sigma Computing, Inc. Dashboard loading from a cloud-based data warehouse cache
US11860873B2 (en) 2020-01-15 2024-01-02 Sigma Computing, Inc. Dashboard loading using a filtering query from a cloud-based data warehouse cache
JP7768972B2 (ja) * 2020-08-03 2025-11-12 ヒタチ ヴァンタラ エルエルシー 分散メッセージキューを介したキャッシュの更新
CN115687402B (zh) * 2022-06-10 2025-07-25 四川虹美智能科技有限公司 一种实现缓存数据和数据库数据一致的方法
US12260434B2 (en) * 2022-09-20 2025-03-25 Salesforce, Inc. System and method for a scalable pricing engine
CN116561080B (zh) * 2023-05-19 2026-04-21 济南浪潮数据技术有限公司 一种数据预缓存方法、装置、设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1234268A2 (en) * 1999-11-01 2002-08-28 ITA Software, Inc. Method and apparatus for providing availability of airline seats
GB0206810D0 (en) * 2002-03-22 2002-05-01 Isocra Ltd Database system
US7089228B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
US20040249682A1 (en) * 2003-06-06 2004-12-09 Demarcken Carl G. Filling a query cache for travel planning
ES2714676T3 (es) * 2012-08-14 2019-05-29 Amadeus Sas Actualización de resultados de consulta de base de datos almacenados en memoria caché
US20160171008A1 (en) * 2012-08-14 2016-06-16 Amadeus S.A.S. Updating cached database query results
ES2905843T3 (es) * 2012-08-14 2022-04-12 Amadeus Sas Actualización de los resultados de la consulta de la base de datos en caché
WO2015124275A1 (en) * 2014-02-19 2015-08-27 Amadeus S.A.S. Long-term validity of pre-computed request results
ES2991404T3 (es) * 2015-08-03 2024-12-03 Amadeus Sas Manejo de peticiones de datos
CN107644071A (zh) * 2017-09-18 2018-01-30 广州爱九游信息技术有限公司 缓存更新方法、装置及数据存储系统

Also Published As

Publication number Publication date
CA3038199A1 (en) 2019-10-03
CN110347707B (zh) 2024-06-28
EP3550446A1 (en) 2019-10-09
CN110347707A (zh) 2019-10-18
EP3550446B1 (en) 2023-07-19

Similar Documents

Publication Publication Date Title
ES2958718T3 (es) Actualización de datos almacenados en caché
JP6559215B2 (ja) システム、データベースクエリを実行するための方法及びコンピュータに読み取り可能な記録媒体
US11636112B2 (en) Updating cache data
US20130297613A1 (en) Indexing based on key ranges
CN110489405A (zh) 数据处理的方法、装置和服务器
ES2702654T3 (es) Tratamiento de peticiones de datos
US9779031B2 (en) Caching policies for selection and replacement of objects
ES2882923T3 (es) Almacenamiento de memoria caché de base de datos
US10360154B2 (en) Cache map with sequential tracking for invalidation
US20180060145A1 (en) Message cache management for message queues
TW201346932A (zh) 用於複合式非揮發性儲存裝置之資料遷移
US20120331019A1 (en) Replacement policy for resource container
EP4177767A1 (en) Scheduling of query pipeline execution
EP3871106A1 (en) Microservices data aggregation search engine updating
Subramanyam et al. Idempotent distributed counters using a forgetful bloom filter
WO2013086689A1 (zh) 替换缓存对象的方法和装置
US20180018359A1 (en) Datagram reassembly
CN113392143B (zh) 一种面向多关系图的可达性查询索引的构建与处理方法
ES2905613T3 (es) Aprendizaje automático distribuido para la validez de datos en la memoria caché
US11762776B2 (en) Cache access method and associated graph neural network system
ES2930440T3 (es) Indice de tabla de base de datos
US20230046354A1 (en) Method and apparatus to reduce cache stampeding
CN102682087A (zh) 一种缓存结果集的管理方法、装置及系统
Srinivasa et al. Quasi-consistency and caching with broadcast disks
Karapiperis et al. DynaHash: An efficient blocking structure for streaming record linkage