Brevet FR3079635A1 — publié le 20191004

MISE À JOUR DE DONNÉES EN CACHE [0001] La présente invention concerne de façon générale la technologie de base de données. Plus spécifiquement, elle porte sur la mise à jour de données en cache après la conclusion du traitement d'une interrogation sur les données en cache ou les données d'origine. CONTEXTE [0002] Un problème commun à la technologie de base de données est d'assurer des temps de réponse courts aux interrogations de bases de données ou aux requêtes qui nécessitent un traitement long, complexe et nécessitant des ressources importantes, p. ex. dû à de grandes quantités de données. Par exemple, un tel traitement qui consomme de la puissance de calcul doit être mis en oeuvre en réponse aux dites « interrogations ouvertes » qui ne contiennent que peu d'informations saisies (p. ex. seuls un ou deux paramètres parmi une douzaine de paramètres possibles sont spécifiés et/ou les fourchettes de valeurs spécifiées des paramètres sont larges) et, par conséquent, elles renvoient généralement un grand nombre de résultats. Les possibilités pour accélérer le traitement des données en augmentant la performance du matériel sont limitées. Par conséquent, l'attention est portée sur l'amélioration des mécanismes sous-jacents d'un traitement complexe, long qui nécessite des ressources intensives afin de répondre à ces interrogations. [0003] Une approche générale pour raccourcir les temps de réponse consiste à préparer les résultats devant être renvoyés en réponse aux demandes attendues (p. ex. en précalculant ou en précollectant ces résultats basés sur des données d'origine) et à conserver les résultats interrogation dans une réserve de résultats d'interrogations précollectés. Ensuite, les demandes ne sont pas soumises à un traitement et les réponses ne sont pas basées sur la base des données d'origine, mais elles sont orientées vers la réserve de résultats d'interrogation précalculés. [0004] Le recalcul d'un grand nombre de résultats d'interrogations précalculés est une tâche 30 qui consomme une quantité non négligeable de ressources de calcul. Par conséquent des mécanismes de recalcul sont recherchés pour effectuer de façon efficace le recalcul de résultats précalculés d'interrogation. 2 [0005] EP 2908255 Al décrit un noeud de réseau (dénommé commutateur) qui utilise un facteur de confiance indiquant une probabilité que le résultat de recherche associé soit valide pour contrôler si la réponse à une interrogation de recherche doit se baser sur des résultats de recherche précalculés, ou sur base de données principale. 5 RÉSUMÉ [0006] Selon un premier aspect, un procédé exécuté par une machine informatique est fourni pour mettre à jour des données dans une mémoire-cache. La machine informatique est couplée 10 à une base de données principale conservant des données d'origine, et à une mémoire-cache conservant les données correspondantes aux données dans la base de données principale. En réponse à la réception d'une première interrogation de base de données concernant une première donnée, la machine informatique détermine s'il est nécessaire de traiter la première interrogation de base de données en utilisant la mémoire-cache, ou en se basant sur la base de 15 données principale. En réponse à la conclusion du traitement de la première interrogation de base de données, la machine informatique détermine la nécessité de mettre à jour la première donnée dans la mémoire-cache et en fonction du résultat de la détermination, de la mise à jour de la première donnée dans la mémoire-cache basée sur la première donnée d'origine dans la base de données principale. 20 [0007] Selon un second aspect, une machine informatique correspondante est fournie, laquelle est agencée pour exécuter le procédé. [0008] Selon un troisième aspect, un programme informatique stocké sur un support de 25 stockage est fourni, lequel quand il est exécuté par une machine informatique fournit la fonctionnalité correspondante à la machine informatique. [0009] D'autres aspects optionnels sont définis par la description détaillée. 3 BRÈVE DESCRIPTION DES DESSINS [0010] Les présents mécanismes seront décrits en faisant référence aux dessins qui les 5 accompagnent. Des numéros de référence similaires indiquent généralement des éléments identiques ou similaires sur le plan fonctionnel. FIG. 1 est une visualisation d'un effet de la probabilité de validité décroissante des résultats d'interrogation précalculés dans le temps. FIG. 2 est une description schématique d'un exemple de système de base de données distribuée. FIG. 3 est un diagramme séquentiel de messages de haut niveau pour la mise à jour de données en cache. FIG. 4 illustre une séquence de messages de haut niveau pour une requête de lecture. FIG. 5 illustre une séquence de messages de haut niveau pour une requête d'écriture. 20 FIG. 6 est un diagramme séquentiel de messages de haut niveau pour la mise à jour des données en cache associées. FIG. 7 est un exemple supplémentaire de la mise à jour de données en cache. 25 FIG. 8 est une visualisation de séries exemplaires de mise à jour des données en cache dans le temps. FIG. 9 illustre un agencement pour dédupliquer des demandes de mise à jour de la mémoire-cache. 10 15 FIG. 10 est une vue schématique exemplaire de l'architecture interne d'une machine informatique. 4 DESCRIPTION DÉTAILLÉE [0011] Afin de gérer des interrogations de base de données ou des demandes de calculs en lots qui nécessitent des calculs sur la base de grandes quantités de données sous-jacentes, les 5 données attendues, soumises à des interrogations de base de données peuvent être mises en cache (précollectées, précalculées) et peuvent être stockées comme données en cache dans une mémoire-cache ou dans une base de données de mémoire-cache, alors que la donnée d'origine est conservée dans une base de données principale. La mémoire-cache est interrogée par des entités demandeuses (telles que des clients, des applications, des navigateurs installés sur des 10 terminaux d'utilisateurs, etc.) au cours d'une recherche et toute donnée en cache répondant aux critères de recherche indiqués par l'interrogation est renvoyée au client en réponse à l'interrogation. Par la suite, le terme « interrogation de base de données » est utilisé dans les présentes comme terme général incluant tous types de demandes de récupération d'information telles que des interrogations transactionnelles, des demandes de calcul en lots et d'autres 15 formes. [0012] L'approche de mise en cache des données et de stocker des données en cache dans la mémoire-cache, accessible aux clients qui interrogent, conduit à la situation générale que les données en cache puissent devenir obsolètes ou invalides (les deux termes sont utilisés comme 20 synonymes dans les présentes) dans le temps, dû à des changements des données d'origine à partir desquelles les données en cache sont dérivées. Les données en cache qui sont encore à jour, c.-à-d. qui correspondent à des équivalents de données d'origine correspondantes sont appelées données en cache « valides » ci-après dans les présentes. 25 [0013] De façon générale, pour permettre à une plateforme de recherche (c.-à-d. une plateforme agencée pour recevoir des interrogations de base de données et pour renvoyer des réponses aux interrogations de base de données) de renvoyer des résultats corrects, on veut conserver un degré substantiel de corrélation entre les données en cache qui sont fournies à l'entité demandeuse en réponse aux interrogations de base de données et leurs équivalents de 30 données d'origine. Cependant en même temps, il est souhaitable de minimiser la consommation de ressources de calcul causée par des recalculs ou des mises à jour de la mémoire-cache, c.-àd. pour éviter tout recalcul inutile tel que des recalculs/mises à jour de données en cache toujours valides. Les ressources de calcul sont limitées et, de façon générale, il n'y a pas assez de 5 ressources de calcul pour recalculer/actualiser toutes les données en cache à tout moment. Par conséquent, un compromis entre la validité des données en cache et l'utilisation des ressources de calcul disponibles est recherché. 5 [0014] Afin de rendre les recalculs/mises à jour de mémoire-cache plus efficaces, des métriques sont définies pour évaluer dans quelle mesure un recalcul est « nécessaire » ou « inutile ». Par exemple, il n'est pas efficace en termes de ressources de calcul ou de mise à jour d'effectuer un précalcul entier massif de façon périodique (p. ex. chaque jour) si moins de la moitié des données en cache s'avèrent être obsolètes. D'un autre côté, si des catégories 10 particulières de données d'origine sont connues pour changer fréquemment, la mise à jour, plusieurs fois par jour, des données en cache correspondantes peut s'avérer bénéfique pour la validité de la mémoire-cache. Par conséquent, une façon efficace d'évaluer ou d'estimer la validité des données en cache est recherchée, en tenant compte généralement à la fois des bénéfices associés à la validité et des coûts de ressources techniques du recalcul/mise à jour de 15 la mémoire-cache. [0015] Dans ce but, des mécanismes modélisent la validité décroissante des données en cache dans le temps.. Deux fonctions exemplaires de cette exactitude probable décroissante dans le temps sont décrites par la FIG. 1. La fonction 10 représente une donnée en cache qui reste 20 potentiellement plus exacte (ou plus exactement, reste à une probabilité plus élevée d'être valide dans le temps) qu'une autre donnée en cache associée à la fonction 11. Par exemple, la donnée en cache représentée par la fonction 10 a une probabilité de 70 % d'être encore valide 35 heures après sa dernière mise à jour, alors que l'autre donnée en cache caractérisée par la fonction 11 n'est seulement valide qu'à environ 50 % 35 heures après son dernier recalcul. Les fonctions 25 10 et 11 peuvent aussi représenter des parts entières de données multiples en cache et indique ensuite des proportions des parts de données en cache vraisemblablement valides à un moment passé depuis la dernière mise de la part. [0016] La FIG. 2 illustre un système de base de données distribuée 1 tel qu'il est utilisé dans 30 les présentes de façon schématique. La- donnée d'origine est conservée dans une base de données principale 3. Ici, le terme « donnée d'origine » fait référence à une donnée généralement valide qui forme la base de tout traitement de données dans le système de base de 6 données 1, en particulier la donnée vers laquelle les interrogations de recherche sont adressées. La donnée d'origine peut concerner tout type d'information dans un domaine particulier. Par exemple, la donnée d'origine peut être localisée dans le domaine des simulations de circuit électronique informatisées (telles que les simulations faisant l'objet de décision T 1227/05 par 5 la commission de recours OEB) et contenir des informations relatives aux valeurs entrées pour les simulations de circuit électronique informatisées, des paramètres d'un modèle utilisé par les simulations de circuit électronique informatisées, des résultats de simulation intermédiaires et/ou finaux, et d'autres de ce genre. 10 [0017] La donnée en cache correspondant à la donnée d'origine est stockée dans une mémoire-cache 4. La donnée en cache peut être identique à la donnée d'origine correspondante (comme p. ex. dans l'exemple des robots d'indexation Web qui explorent et mettent en cache les contenus de sites Web sur Internet) et/ou être précalculée ou prétraitée sur la base de la donnée d'origine (p. ex. en indexant en plus la donnée dans la mémoire-cache 4) afin de 15 diminuer les temps de réponse pour répondre aux interrogations de base de données, en comparaison aux temps nécessaires pour récupérer la donnée d'origine correspondante dans la base de données principale 3. À cet égard, le terme « en cache » couvre aussi toute sorte de transformation de la donnée d'origine en donnée en cache, stockée dans la mémoire-cache 4, par toute sorte de calcul et de traitement. Par exemple, dans le domaine des simulations de 20 circuit électronique informatisées, le précalcul peut impliquer la mise en oeuvre de simulations avec un ensemble réduit de paramètres (comparé à tous les paramètres du système dans le monde réel), mais avec des valeurs variables dudit ensemble de paramètres afin d'obtenir des résultats utilisables comme valeurs entrées dans d'autres simulations avec d'autres ensembles supplémentaires de paramètres. 25 [0018] La mémoire-cache 4 est une base de données qui est substantiellement plus rapide que la base de données principale 3, p. ex. en raison du précalcul des données, de sa localisation dans le réseau central, de la connexion au réseau à large bande, du matériel spécial adapté à la récupération rapide de données et/ou des protocoles de base de données et des index augmentant 30 la performance de récupération des données. Ici, le terme « base de données » englobe tout nombre et type de systèmes de stockage d'information structurée tels que les bases de données individuelles standardisées comme le langage d'interrogation standard (SQL) ou des bases de données non-SQL ainsi que des bases de données complexes distribuées et/ou propriétaires, des 7 bases de données relationnelles ou des bases de données orientées-objet. La donnée d'origine et la donnée en cache peuvent être stockées dans la base de données principale 3 et la mémoire-cache 4, respectivement, en utilisant tout type d'information structurée tel que des enregistrements, des groupements, des parties de tableau de base de données (p. ex., des 5 colonnes, des lignes ou des entrées), et autres de ce genre. [0019] Les clients 5 tels que des applications sur des terminaux d'utilisateurs accèdent aux données à partir du système 1 en interrogeant la base de données sur l'interface 6. L'entité du système 1 qui reçoit et traite une interrogation de base de données est désignée dans les 10 présentes comme une machine informatique 2. La machine informatique 2 est couplée de façon à communiquer avec la mémoire-cache 4 par une autre interface 7 et avec la base de données principale 3 par encore une autre interface 8. Les entités fonctionnelles du système 1, c.-à-d. la machine informatique 2, la base de données principale 3, et la mémoire-cache 4 peuvent être constituées d'une ou de plusieurs machines matérielles en fonction des obligations de 15 performance. Par exemple, la machine informatique 2 peut être composée d'une pluralité de machines matérielles colocalisées et/ou de machines matérielles délocalisées constituant plusieurs points de contact. Une pluralité de bases de données principales 3 et/ou de mémoires-cache 4 peut être utilisée pour refléter les mêmes données, par exemple, pour des raisons de redondance. Chacune des interfaces 6, 7, 8 utilise un réseau de zone locale (LAN), un réseau 20 de zone métropolitaine (MAN) et/ou un réseau de zone étendue (WAN) tel que l'Internet et est implémentée par tout protocole(s) approprié de réseau et de communication. [0020] En faisant référence à la FIG. 3, afin d'améliorer le traitement efficace et le calcul des ressources pour mettre à jour les données en cache conservées dans la mémoire-cache 4, le 25 mécanisme suivant, utilisé au niveau de la machine informatique 2, est fourni dans les présentes [0021] Une première interrogation de base de données 12 est transmise par un client 5 et est reçue par la machine informatique 2. Le terme « interrogation de recherche » inclut tout type de demande de base de données y compris, p. ex. des requêtes de lecture pour récupérer des 30 données et des requêtes d'écriture pour insérer, changer ou effacer des données. [0022] La première interrogation de base de données 12 est relative à une première donnée conservée par le système 1, dans la mémoire-cache 4, et/ou dans la base de données principale 8 3. À titre d'exemple non limitatif uniquement, l'interrogation 12 montrée par la FIG. 3 inclut un ou plusieurs critères d'interrogation tels qu'un premier critère A et en option un autre critère B. Ces critères d'interrogation spécifient les données auxquelles se rapporte la première interrogation de base de données 12, dans l'exemple de la FIG. 3 toutes les données remplissant 5 les critères de l'interrogation, p. ex. le premier critère A et, en option, l'autre critère B. La première donnée peut ainsi être composée d'un ou de multiples enregistrements de donnée, de groupements, de lignes de tableau de base de données, etc. Cela s'applique aussi aux autres interrogations de bases de données telles que les exemples plus spécifiques des FIGS 4 et 5 ainsi qu'à la seconde donnée liée à la première donnée, comme ceci est décrit, p. ex., ci-dessous 10 en référence à la FIG. 6. [00231 En réponse la réception de la première interrogation de base de données 12, la machine informatique 2 détermine au 14, sur la base d'au moins un facteur donné de sondage, s'il est nécessaire de traiter la première interrogation de base de données 12 en utilisant la mémoire- 15 cache 4 en se basant sur la base de données principale 3. Répondre aux interrogations de base de données en impliquant la base de données 3 est aussi dénommé un « sondage ». Dans certains exemples, le 10 au moins un facteur de sondage inclut une indication de la vraisemblance que la donnée en cache soit valide, ou non. 20 [0024] Dans ce but, les données en cache conservées dans la mémoire-cache 4 sont p. ex. associées à des métriques de validité respectives qui peuvent être similaires aux facteurs de confiance tels que décrits par EP 2 908 255 Al. Par exemple, chaque donnée en cache ou chaque part d'une pluralité de données en cache stockées par la mémoire-cache 4 a une métrique de validité correspondante. Chaque métrique de validité indique une probabilité que la donnée en 25 cache associée ou la partie de données en cache est toujours valide, c.-à-d. une probabilité que la donnée en cache coïncide avec sa donnée d'origine correspondante à partir de laquelle a été dérivée la donnée en cache. Dans certains exemples, les métriques de validité sont données par un âge ti de la donnée en cache i (ou une part de la pluralité de données en cache) faisant référence au temps écoulé depuis la dernière mise à jour ou le recalcul de cette donnée en cache 30 et un taux de validité X., de la donnée en cache i étant une mesure de la durée de validité possible de la donnée en cache i ou de la rapidité à laquelle la donnée en cache i devient obsolète dû à des changements de la donnée d'origine sous-jacente. Dans certains exemples, la métrique de validité acc d'une donnée en cache i est donnée par acc; 9 [0025] Dans certains exemples, les métriques de validité de la donnée en cache sont stockées dans la mémoire-cache 4. Par conséquent, la détermination 14 peut ainsi inclure une récupération optionnelle 13 (comme indiqué par la flèche en pointillé) de la donnée en cache à 5 laquelle se rapporte la première interrogation de base de données 12 ainsi que la métrique de validité associée, et la machine informatique 2 évalue les métriques de validité à partir de la mémoire-cache 4. Dans ce but, la machine informatique 2 recherche la donnée en cache à laquelle se rapporte la première interrogation de base de données 12 (p. ex. qui répond au critère A) dans la mémoire-cache 4 et récupère cette donnée en cache de la mémoire-cache 4. De façon 10 plus détaillée, au cours de l'opération 13, la machine informatique 2 envoie une demande de récupération à la mémoire-cache 4. La demande de récupération 13 inclut au moins une partie dudit un ou plusieurs des critères de la première interrogation de base de données 12. La mémoire-cache 4 exécute la recherche dans la mémoire-cache 4 sur la base de la demande de récupération 13, c.-à-d. qu'elle identifie la donnée en cache parmi toutes les données dans la 15 mémoire-cache 3 correspondant aux critères de la première interrogation de base de données 12 et renvoie la donnée en cache identifiée incluant les métriques de validité associées à la machine informatique 2. Par conséquent, la donnée en cache renvoyée a des valeurs ou des paramètres qui coïncident (c.-à-d. correspondent) aux critères de la première interrogation de base de données 12. 20 [0026] La détermination 14 peut ensuite inclure la comparaison des métriques de validité de la donnée en cache récupérée avec un seuil donné. La machine informatique 2 détermine la probabilité que la donnée en cache soit valide, p. ex. en calculant acci = pour chaque donnée en cache i récupérée. Dans la mesure où les métriques de validité sont au-dessus du 25 seuil donné, la machine informatique détermine de traiter l'interrogation de base de données 12 en utilisant la mémoire-cache 4 et, conformément, renvoie ces données en cache par la réponse 16. Autrement, pour les données en cache dont les métriques de validité ne sont pas au-dessus du seuil donné, la machine informatique 2 détermine de traiter l'interrogation de base de données en se basant sur la base de données principale 3 et, conformément, récupère en option 30 au 15 les données d'origine correspondantes de la base de données principale 3. Dans ce but, la machine informatique 2 envoie une demande de récupération respective à la base de données 3. La base de données principale 3 exécute la demande de récupération en identifiant la donnée 10 d'origine qui répond aux critères dans la première interrogation de base de données 12 et renvoie la donnée d'origine à la machine informatique 2. En réponse à la réception de la donnée d'origine de la base de données principale 3, la machine informatique 2 renvoie 16 la donnée d'origine récupérée au client 5. Ceci conclut le traitement de la première interrogation de base 5 de données 12. [0027] Dans certains modes de réalisation, la machine informatique 2 utilise un ou plusieurs ou d'autres facteurs de sondage en plus ou au lieu de la métrique de validité (taux de validité indiquant une probabilité que la première donnée dans la mémoire-cache 4 soit valide à un 10 certain âge) ainsi que décrit ci-dessus. Par exemple, la décision de sonder ou non la base de données principale 3 au cours de l'opération 12 est basée sur un type de première requête d'interrogation de base de données (lecture ou écriture, de préférence sonder pour les requêtes d'écriture), une existence de la première donnée dans la mémoire-cache (si la mémoire-cache 4 ne conserve pas la première donnée, la base de données principale 3 est sondée), un taux 15 d'erreur de sondage étant un ratio entre un nombre d'échecs d'accès à la base de données principale et un nombre de tentatives d'accès à la base de données principale, un nombre d'accès d'écriture sur la première donnée d'origine dans laps de temps donné, un âge de la première donnée dans la mémoire-cache (c.-à-d. que la vraisemblance de la validité de la première donnée dans la mémoire-cache est basée sur l'âge sans aucune différenciation d'un 20 taux de validité ki), une fréquence d'accès à la première donnée dans la mémoire-cache (un nombre historique d'interrogations de base de données relatives à la première donnée dans le temps), et/ou une ressource de mise à jour étant une mesure des coûts de calcul et/ou de la charge du réseau nécessaire pour mettre à jour la première donnée dans la mémoire-cache (p. ex. il faut s'abstenir de sonder si les ressources de mise à jour sont limitées). La machine 25 informatique 2 peut utiliser une quelconque combinaison de tout nombre de ces facteurs de sondage. [0028] Par ailleurs, la machine informatique 2, en réponse à la conclusion du traitement de la première interrogation de base de données, détermine au 17 s'il est nécessaire de mettre à jour 30 la première donnée dans la mémoire-cache 4, également désignée brièvement dans les présentes comme étant la première donnée en cache. Il a été reconnu qu'une corrélation peut exister entre une pluralité d'interrogations de base de données. La première interrogation de base de données 11 12 peut donc être un indicateur que la même donnée peut être aussi demandée à partir du système de base de données 1 par des interrogations de base de données subséquentes. Par conséquent, la première interrogation de base de données 12 est traitée comme un déclencheur pour potentiellement mettre à jour la donnée dans la mémoire-cache 4 à laquelle se rapporte la 5 première interrogation de base de données 12, c.-à-d. la première donnée. [0029] Ceci diffère généralement d'autres procédures de gestion de la mise à jour de la mémoire-cache, connues dans l'art, telles que la mise à jour de la mémoire-cache selon EP 2911070 Al et EP 3016000 Al qui sont relatives à des mises à jour d'arrière-plan basées sur 10 un modèle, indépendantes des interrogations individuelles au système. Ceci est aussi généralement différent des mécanismes de sondage connus tels qu'EP 2 908 255 Al et EP 3128441 Al qui décident au moment du traitement d'une interrogation s il est nécessaire de répondre à une interrogation par une donnée en cache ou par une donnée d'origine récupérée à partir d'une source de données d'origine. 15 [0030] Un effet technique du mécanisme proposé, comparé à ces procédures connues, est qu'il est possible de répondre rapidement à une interrogation initiale de base de données sur la base de la donnée en cache, sans retarder la réponse, en récupérant la donnée d'origine à partir de la base de données principale plus lente (comparé à la mémoire-cache 4), alors que la première 20 donnée en cache est mise à jour après la conclusion du traitement d'interrogation de base de données afin d'augmenter la validité de la première donnée pour des interrogations subséquentes de base de données se rapportant à nouveau à la première donnée. Par exemple, le seuil de la métrique de validité pour l'interrogation initiale de base de données peut être fixé à une valeur plus basse par comparaison aux valeurs de facteurs de confiance d'EP 2 908 255 25 Al et EP 3128441 Al, de sorte que l'interrogation initiale de base de données reçoit aussi une réponse basée sur la mémoire-cache 4 si la probabilité de validité de la première donnée en cache est plus basse, mais la mise à jour de la première donnée en cache, après la conclusion du traitement de l'interrogation, augmente la probabilité de validité de la première donnée en cache pour des interrogations subséquentes de base de données relatives à nouveau à la première 30 donnée. Ainsi qu'expliqué de façon plus détaillée ci-dessous, le terme « initial » peut faire référence à une interrogation de base de données qui est relative à une donnée particulière la première fois après qu'un certain laps de temps s'est écoulé. 12 [0031] De cette façon, la validité de la donnée en cache est augmentée d'une manière efficace en termes de temps de réponse et de ressources de calcul et les interrogations de base de données peuvent recevoir une réponse de façon plus rapide, en comparaison aux références mentionnées ci-dessus. 5 [0032] Sur la base du résultat de la détermination 17, la machine informatique 2 met à jour la première donnée dans la mémoire-cache 4 sur la base de la première donnée d'origine dans la base de données principale 3. Si la détermination 17 indique de mettre à jour la première donnée, la première donnée dans la mémoire-cache 4 est mise à jour optionnellement au 18, p. 10 ex. par la récupération de la donnée d'origine à partir de la base de données d'origine correspondante de la base de données principale 3 et/ou le recalcul de la première donnée en cache sur la base de la-donnée d'origine correspondante conservée dans la base de données principale 3. Si la détermination 17 n'indique pas de besoin de mettre à jour la première donnée en cache, la procédure se termine sans une quelconque mise à jour au 18. 15 [0033] La détermination 17 de mettre à jour la première donnée en cache peut inclure de vérifier une ou plusieurs propriétés ou caractéristiques de, ou relatives à la première donnée en cache afin de dédupliquer de multiples demandes de mises à jour et éviter ainsi trop de demandes de mise à jour concernant la première donnée en cache. Dans certains modes de 20 réalisation, la première donnée en cache est mise à jour si aucune seconde demande de base de données relative à la première donnée n'a été reçue et traitée au cours d'une période de temps donnée, également désignée comme étant une période de mise à jour. Ces interrogations de base de données sont considérées comme étant des interrogations initiales d'une série d'interrogations associées comme cela a déjà été mentionné auparavant. 25 [0034] Le respect de la période de temporisation de la mise à jour est implémenté, p. ex. en utilisant un temporisateur de blocage pour chaque première donnée en cache. Le temporisateur de blocage de la mise à jour de la première donnée cache est activé chaque fois que la première donnée en cache est mise à jour et d'autres mises à jour de la première donnée en cache ne sont 30 permises qu'après l'arrêt du temporisateur de blocage de mise à jour. Par conséquent, dans ces modes de réalisation, la première donnée en cache est (immédiatement) mise à jour s'il s'avère qu'à= l'opération de détermination 17 aucun temporisateur de blocage de mise à jour n'est en cours de fonctionnement pour la première donnée en cache. 13 [0035] D'un autre côté, dans ces modes de réalisation, la mise à jour de la première donnée dans la mémoire-cache est bloquée en réponse à la détermination qu'aucune seconde interrogation de base de données antérieure relative à la première donnée n'a été reçue au cours 5 de la période donnée de mise à jour, c.-à-d. que l'interrogation de base de données n'était pas une interrogation initiale. Le blocage fait référence à l'abstention de mettre à jour la première donnée dans la mémoire-cache à un point actuel dans le temps, mais plutôt à un délai de la mise à jour de la première donnée en cache jusqu'à ce que le temporisateur de blocage de mise à jour s'arrête ou, autrement, l'abandon de la mise à jour de la première donnée en cache. 10 [0036] De plus ou autrement, dans certains modes de réalisation, la période de mise à jour commence avec un quelconque événement (en dehors des interrogations de base de données) relative à la donnée concernée, p. ex. incluant une détermination qu'une donnée est vraisemblablement invalide et/ou une mise à jour de la mémoire-cache de la donnée pour toute 15 autre raison telle qu'une mise à jour régulière, planifiée ou périodique. Dans tous les cas, la valeur spécifique de la période donnée de mise à jour est fixée en fonction de l'implémentation du système. Le blocage des mises à jour pour les interrogations de base de données et les événements suivants dans une série d'interrogations de base de données et d'événements peut aussi être considéré comme une déduplication locale des interrogations de base de données et 20 d'événements qui sont associés à la même donnée dans la machine informatique 2, afin de limiter le nombre de mises à jour de la mémoire-cache ce qui est indiqué et représenté visuellement par la FIG. 9 plus loin ci-dessous. [0037] Les FIGS 4 et 5 sont d'autres exemples du mécanisme de la FIG. 3, dans lequel la 25 première interrogation de base de données 12 est par ailleurs spécifiée comme étant une requête de lecture (FIG. 4) et une requête d'écriture (FIG.5), respectivement. [0038] Comme mentionné ci-dessus, la première interrogation de base de données 12 peut être une interrogation de lecture 12a constituant une requête de lecture pour récupérer la 30 première donnée (FIG. 4). Dépendant dudit ou de plusieurs facteurs de sondage, en réponse à la réception de la première interrogation de base de données 12, la machine de calcul 2 détermine au 14a, p. ex. de traiter la première interrogation de base de données 12, 12a en utilisant la mémoire-cache. Dans certains modes de réalisation, la détermination au 14a inclut 14 de déterminer que les métriques de validité de la première donnée en cache (récupérée de la mémoire-cache 4 par l'opération 13) est au-dessus du seuil donné de la métrique de validité (qui peut être réduit en comparaison avec les mécanismes de sondage connus tels que EP 2 908 255 Al et EP 3128441 A1). La machine informatique 2 renvoie ensuite au 16a la première 5 donnée en cache au client 5. [0039] Dans ces situations, la détermination 17 de mettre à jour la première donnée dans la mémoire-cache est effectuée conséquemment en réponse à la conclusion du traitement de la première interrogation de base de données en utilisant la mémoire-cache. La première donnée 10 dans la mémoire-cache est mise à jour au 18, p. ex. en réponse à la détermination qu'il n'y avait pas de seconde interrogation antérieure de base de données au cours de la période donnée de mise à jour, comme cela a déjà été expliqué auparavant. [0040] La détermination 14 peut aussi indiquer que l'interrogation de lecture 12a doit être 15 traitée en se basant sur la base de données principale 3, p. ex. en déterminant que les métriques de validité de la première donnée en cache (récupérée de la mémoire-cache 4 par l'opération 13) ne sont pas au-dessus du seuil donné de métrique de validité. Dans ces situations, comme cela a été expliqué ci-dessus, la première donnée d'origine correspondante est récupérée, au 15, de la base de données principale 3 et est renvoyée au 16 au client 5. Dans ces situations, 20 l'opération de détermination 17 indiquera vraisemblablement que la première donnée en cache doit être mise à jour (car il a été déterminé que ses métriques de validité sont basses au cours de l'opération 14) et l'opération 18 de mise à jour peut directement utiliser la première donnée d'origine telle qu'elle a été récupérée de la base de données principale 3 au cours de l'opération 15 (FIG.3) sans aucun autre accès à la base de données principale 3. 25 [0041] À d'autres occasions, la première interrogation de base de données 12 peut être une requête d'écriture 12b constituant une demande pour changer, remplacer, insérer ou effacer la première donnée (FIG. 5). Dans certains modes de réalisation, le type d'interrogation d'écriture indique à la machine informatique 2 que l'interrogation doit être traitée en se basant sur la base 30 de données principale 3 pour des raisons de cohérence des données. Par conséquent, l'opération de récupération de la mémoire-cache 13 peut être omise et la machine informatique 2 détermine au 14b en fonction du type, une requête d'écriture, de la première interrogation de base de données 12 que l'interrogation doit être traitée en se basant sur la base de données principale 3. 15 Par conséquent, la machine informatique 2 traite au 15 la première interrogation de base de données 12b en se basant sur la première donnée d'origine dans la base de données principale 3 ce qui amène une modification de la première donnée d'origine dans la base de données principale 3. La machine informatique 2 répond au 16b au client 5, p. ex. en confirmant que la 5 requête d'écriture 12b a été exécutée avec succès et/ou que la valeur modifiée de la première donnée est maintenant présente dans la base de données 3. [0042] Dans ces situations, la détermination 17 de mise à jour de la première donnée dans la mémoire-cache en se basant sur la première donnée d'origine modifiée dans la base de données 10 principale 3 est effectuée en réponse à la conclusion du traitement de la première interrogation de base de données 12, basée sur la première donnée d'origine dans la base de données principale 3, c.-à-d. après l'envoi de la réponse 16b à la première interrogation de base de données au client 5. Comme souligné ci-dessus, la machine informatique 2 détermine, p. ex. au cours de l'opération 17, si une seconde interrogation antérieure de base de données 12 relative 15 à la première donnée a été reçue au cours d'une période donnée de mise à jour. Si ce n'est pas le cas, la première donnée dans la mémoire-cache 4 est mise à jour au 18. La mise à jour 18 peut utiliser directement la valeur modifiée de la première donnée d'origine qui peut déjà être connue de la machine informatique 2 en raison de l'opération 15, de sorte qu'une autre communication avec la base de données principale 3 peut ne pas survenir au cours de l'opération 20 18. [0043] Dans certains modes de réalisation, l'opération de détermination 17 peut aussi tenir compte du type d'interrogation, une requête d'écriture de base de données 12b qui a probablement rendu la première donnée en cache obsolète dans la mémoire-cache 4. Dans ces 25 modes de réalisation, l'opération de détermination 17 détermine que l'interrogation de base de données 12b était une requête d'écriture et par conséquent, p. ex., force une mise à jour de la première donnée dans la mémoire-cache 4 sans tenir compte du fait qu'une seconde interrogation antérieure de base de données 12 relative à la première donnée a été reçue, ou non, au cours de la période donnée de mise à jour. 30 [0044] Dans certains modes de réalisation, en réponse à la conclusion du traitement de la première interrogation de base de données 12, la machine informatique 2 détermine en plus au 19 s'il est nécessaire de mettre à jour au moins une seconde donnée dans la mémoire-cache 4 16 qui est corrélée à la première donnée. Ainsi que déjà mentionné ci-dessus, il a été reconnu qu'une corrélation peut exister entre une pluralité d'interrogations de base de données. La première Interrogation de base de données 12 relative à la première donnée peut donc n'être qu'un indicateur que la même première donnée peut aussi être demandée du système de base 5 de données 1 par des interrogations de base de données subséquentes, mais peut aussi être un indicateur que les interrogations de base de données subséquentes peuvent demander une autre donnée que la première donnée qui est corrélée à la première donnée. Par conséquent, dans ces modes de réalisation, la première interrogation de base de données 12 est traitée comme un déclencheur pour potentiellement mettre à jour la seconde donnée dans la mémoire-cache qui 10 est corrélée à la première donnée faisant l'objet de la première interrogation de base de données 12. [0045] Une mise à jour 20 de la seconde donnée dans la mémoire-cache 4 est basée sur la seconde donnée d'origine dans la base de données principale 3 correspondant à la seconde 15 donnée dans la mémoire-cache 4. Dans l'exemple de la FIG. 6, la première Interrogation de base de données 12 concerne la première donnée définie par le critère A. L'opération de détermination 17 détermine donc si oui ou non il faut mettre à jour au 18 la première donnée en cache définie par le critère A. De plus, l'opération de détermination 19 détermine si la donnée en cache associée définie par le critère A' doit aussi être mise à jour au 20. 20 [0046] La corrélation entre la première donnée et la seconde donnée est relative, p. ex. elle se rapporte à des métriques de validité identiques ou similaires. Par exemple, la première donnée et la seconde donnée peuvent avoir des fonctions rapprochées 10, 11 comme illustré par la FIG. 1. La première donnée et la seconde donnée peuvent aussi être corrélées d'autres façons, p. ex. 25 en ayant des paramètres associés. Par exemple, la première donnée peut constituer des résultats de simulation à partir d'un nombre X d'exécutions de simulation, alors que la seconde donnée peut constituer les résultats de simulation à partir du prochain nombre X+1 d'exécutions de simulation. La corrélation entre données peut exister au niveau des données individuelles et au niveau des parts de données multiples. Par ailleurs, des degrés variés de corrélation peuvent 30 exister et la première donnée et la seconde donnée peuvent être considérées, dans les présentes, comme étant corrélées si le degré de corrélation répond à un seuil donné. 17 [0047] Les principes de corrélation entre données sont généralement connus, p. ex. d'EP 3016000 Al, paragraphes [0029] à [0032] et [0057] lesquels étant spécifiquement relatifs à la corrélation sont incorporés par référence dans les présentes. 5 [0048] L'opération de détermination 19 peut utiliser la même logique que l'opération de détermination 17, c.-à-d. p. ex. inclure une détermination de la réception, ou non, de l'interrogation antérieure de base de données, par la machine informatique 2 au cours de la période donnée de mise à jour. L'opération de détermination 19 peut aussi tenir compte de facteurs additionnels tels que les ressources de mises à jour disponibles (la capacité de réseau 10 sur l'interface 8, les ressources de calcul/récupération au niveau de la base de données principale 3). Par conséquent, bien qu'une mise à jour de la seconde donnée en cache puisse être indiquée par les facteurs basiques, le manque de ressources de mise à jour peut aboutir au résultat que l'opération de détermination 19 bloque la mise à jour de la seconde donnée en cache. 15 [0049] Par ailleurs, l'opération de détermination 19 peut être indépendante du résultat de l'opération de détermination 17. Par conséquent, même si p. ex. l'opération de détermination 17 a indiqué que la première donnée en cache ne doit pas être mise à jour (p. ex. parce qu'une seconde demande antérieure relative à la première donnée a été reçue au cours de la période 20 donnée de mise à jour), l'opération de détermination 19 peut indiquer que la seconde donnée en cache doit être mise à jour. Dans d'autres implémentations, l'opération de détermination 19 peut être dépendante de l'opération de détermination 17 dans le sens où le résultat de l'opération de détermination 17 est également transféré à l'opération de détermination 19, c.-à-d. qu'une décision de mise à jour de la première donnée en cache est aussi une décision de mettre à jour 25 la seconde donnée en cache. Dans ces modes de réalisation, les opérations de détermination 17 et 19 peuvent former une opération combinée (c.-à-d. une case combinée 17, 19 dans la FIG. 6). [0050] Il est noté que la machine informatique 2 ne détermine pas nécessairement au 17 s'il 30 est nécessaire ou pas de mettre à jour la première donnée dans la mémoire-cache 4 et détermine en option au 19 s'il est nécessaire ou pas de mettre à jour la seconde donnée dans la mémoire-cache immédiatement après la conclusion du traitement de la première interrogation de base de données 12. Comme expliqué ci-dessus, le fait d'avoir traité la première demande de base de 18 données 12 est un déclencheur pour une mise à jour possible de la première donnée et de la seconde donnée dans la mémoire-cache et un certain laps de temps peut s'écouler entre la conclusion du traitement de la première interrogation de base de données 12 et les opérations de détermination 17 et 19. Par exemple, dans certains modes de réalisation, la machine 5 informatique 2 garde un journal et ajoute une entrée de la première interrogation de base de données de données 12 au journal. D'autres interrogations de base de données sont aussi ajoutées au journal après avoir été traitées. La machine informatique 2 peut ensuite p. ex. traiter périodiquement les interrogations de base de données inscrites au journal et mettre en oeuvre les opérations de détermination 17 et optionnellement 19 pour toutes les interrogations de base 10 de données journalisées. [0051] Certains modes de réalisation incluent d'autres déclencheurs pour déterminer s'il est nécessaire de mettre à jour la première donnée en cache, au-delà des interrogations de base de données entrantes et traitées. Par exemple, dans ces modes de réalisation, la machine 15 informatique 2 (ou toute autre entité couplée en communication à la machine informatique 2 et formant une partie logique de la machine informatique 2) détermine au 21, en utilisant un algorithme d'apprentissage automatique, une diminution d'une vraisemblance que la première donnée dans la mémoire-cache 4 soit toujours valide, c.-à-d. que la première donnée en cache est toujours identique à celle-ci ou correspond à la première donnée d'origine dans la base de 20 données principale 3 (FIG.7). Par exemple, l'opération de détermination 21 peut déterminer que la métrique de validité de la première donnée (p. ex. la fonction 10 de la FIG.1) est tombée en dessous d'un seuil donné de validité. [0052] En réponse à l'opération de détermination 21 indiquant une diminution de la 25 vraisemblance que la première donnée dans la mémoire-cache 4 soit toujours valide, la machine informatique 2 détermine au 17, sur la base au moins de la diminution de la vraisemblance que la première donnée dans la mémoire-cache 4 soit toujours valide, de mettre à jour la première donnée dans la mémoire-cache 4 en se basant sur la première donnée d'origine dans la base de données principale 3. L'opération de détermination 17 de la FIG. 7 est similaire à l'opération 30 de détermination 17 dans les FIGS 3 à 6, c.-à-d. quelle peut être basée sur la même logique de vérification de la réception, ou non, d'une interrogation antérieure de base de données relative à la première donnée, au cours de la période donnée de mise à jour, mais en plus elle tient compte de la métrique de validité de la première donnée. 19 [0053] De même, comme dans la FIG. 6, la machine informatique 2 peut par ailleurs déterminer au 19 s'il faut aussi mettre à jour la seconde donnée en cache corrélée à la première donnée en cache. 5 [0054] La FIG. 8 est une visualisation d'un exemple d'itérations multiples des fonctionnalités décrites ci-dessus, dans le temps, en référence aux FIGS 3 à 7. La chronologie supérieure 22 montre des interrogations de base de données et des événements relatifs à la première donnée qui est désignée comme « donnée M », alors que la chronologie inférieure 23 montre des 10 interrogations de base de données et des événements relatifs à la seconde donnée désignée comme « donnée N» qui est associée à la donnée M. Comme cela est mentionné ci-dessus, la première donnée M et la seconde donnée N, respectivement, peuvent être un ou plusieurs enregistrements de donnée, des groupements, etc. qui sont soumis à une demande de base de données ou qui forment une quelconque autre part de données connexes à l'intérieur de la base 15 de données principale 3, telle qu'un tableau de base de données. [0055] À un premier point dans le temps ti, la donnée N est insérée dans la base de données principale 3 par une requête d'insertion. L'opération de détermination 17 détermine que la donnée N doit être mise à jour au 18 dans la mémoire-cache 4, car il n'y a aucune autre 20 interrogation antérieure de base de données au cours de la période donnée de mise à jour (désignée par « tmin » dans la FIG. 8 qui est, p. ex., contrôlée par un temporisateur de blocage de mise à jour respectif comme expliqué ci-dessus) enregistrée dans le journal et la requête d'insertion est une requête d'écriture. À un second point dans le temps t2, la donnée M est ajoutée à la base de données principale 3. De même, l'opération de détermination 17 détermine 25 que la donnée M doit être mise à jour au 18 dans la mémoire-cache 4 car il n'y a aucune interrogation antérieure de base de données au cours de la période donnée de mise à jour qui a été enregistrée au journal (p. ex. le temporisateur de blocage de mise à jour pour la donnée M n'est pas en cours de fonctionnement) et la requête d'insertion est une requête d'écriture. Le temporisateur de blocage de mise à jour pour la donnée M est amorcé. 30 [0056] À un troisième point dans le temps t3, une requête de lecture est reçue par la machine informatique 2 qui est relative à la donnée M. L'opération de détermination 14 détermine de traiter la requête de lecture en se basant sur la mémoire-cache 4. Après avoir renvoyé au 16 la 20 donnée M au client demandeur 5, la machine informatique 2 détermine au 17 de bloquer une mise à jour de la mémoire-cache, car t3 est toujours dans la période donnée de mise à jour train initialisée par t2 (le temporisateur de blocage de mise à jour pour la donnée M est toujours en cours de fonctionnement) et par conséquent, la requête d'insertion est considérée comme une 5 interrogation antérieure de base de données reçue au cours de la période donnée de mise à jour. Comme mentionné ci-dessus, le blocage dans le but de dédupliquer de multiples mises à jour survenant au cours d'une certaine période de temps fait référence à l'abstention de mise à jour à un point actuel dans le temps et, soit de rejeter, ou de temporiser la mise à jour de la mémoire-cache pour la donnée concernée. La FIG.8 est une visualisation de la variante rejetée. Dans les 10 variantes temporisées, toute mise à jour bloquée est en fait réalisée à la fin de la période de temps train, c.-à-d. en réponse à l'expiration du temporisateur de blocage de mise à jour. [0057] En continuant à faire référence à la FIG. 8, après qu'un certain laps de temps s'est écoulé, une autre requête de lecture relative à la donnée M est reçue par la machine informatique 15 2 à un point de temps t4 Cette fois, la machine informatique 2 détermine à nouveau au 14 de traiter la requête de lecture sur la base de la mémoire-cache 4 et au 16, de renvoyer la donnée M au client demandeur 5. Cependant, la période donnée de mise à jour, réinitialisée au t3 s'est écoulée et par conséquent l'opération de détermination 17 détermine de réaliser une mise à jour de la mémoire-cache au 18, car aucune interrogation antérieure de base de données relative à la 20 donnée M n'a été reçue au cours de la période donnée de mise à jour. Conformément à la FIG. 6, une mise à jour de la mémoire-cache 20 est aussi déterminée au 19 pour la donnée associée N, car p. ex. aucune interrogation antérieure de base de données relative à la donnée N n'a été reçue au cours de la période donnée de mise à jour. 25 [0058] Après un autre laps de temps écoulé, une invalidité vraisemblable de la donnée M et de la donnée N est reconnue et, au 18, la donnée M ainsi que la donnée N, sont mises à jour au point de temps ts. Dans l'exemple de la FIG. 8, cette mise à jour de la mémoire-cache réinitialise la période donnée de mise à jour respective pour la donnée M ainsi que la donnée N. Une autre requête de lecture relative à la donnée M est reçue au point de temps t6 qui est toujours dans la 30 période donnée de mise à jour pour la donnée M et par conséquent, aucune mise à jour de la mémoire-cache n'est déterminée au 17 après la conclusion du traitement de cette requête de lecture. 21 [0059] Au point temporel t7, une requête de lecture est reçue demandant la donnée N. Puisque l'événement antérieur (l'invalidité vraisemblable déterminée à ts) est survenu plus tôt que la période donnée de mise à jour, une mise à jour de la mémoire-cache 18 pour la donnée N est déterminée au 17 à t7. Pour des raisons d'exhaustivité, la machine informatique 2 met en oeuvre 5 aussi une opération de détermination 19 pour la donnée M (visualisée par la flèche en pointillé de N à M au point dans le temps t7) car la donnée M est associée à la donnée N et, par rapport à la donnée N, constitue une seconde donnée dans le sens utilisé ci-dessus. Dans l'exemple de la FIG. 8, il est supposé qu'aucune mise à jour de la mémoire-cache n'a été réalisée pour la donnée M à t7, p. ex. dû à des ressources de mise à jour insuffisantes à t7. En conséquence, au 10 point temporel ts, une autre mise à jour de mémoire-cache de la donnée en cache M est effectuée après le traitement de la requête de lecture à ts parce que l'opération de détermination 17 détermine qu'aucune interrogation antérieure de base de données ou autre événement ne sont survenus au cours de la période donnée de mise à jour pour la donnée M. 15 [0060] Finalement au point temporel t9, une requête de suppression est reçue pour supprimer la donnée M de la base de données principale 3. La machine informatique 2 détermine, au 14, de traiter l'interrogation de suppression en utilisant la base de données principale 3 pour des raisons de cohérence des données. Après avoir conclu le traitement de l'interrogation de suppression, la machine informatique 2 détermine au 17, d'effectuer une mise à jour de la 20 mémoire-cache au 18 pour la donnée M. Bien qu'une demande antérieure de base de données ait été reçue au cours de la période donnée de mise à jour (notamment la requête de lecture à ts), la mise à jour de la mémoire-cache à t9 est forcée dû au fait que la requête de suppression est un type d'écriture. Une mise à jour de la mémoire-cache 20 est aussi déterminée au 19 pour la donnée N car aucune interrogation antérieure de base de données pour la donnée N n'a été 25 reçue au cours de la période donnée de mise à jour. [0061] Dans certains modes de réalisation, d'autres mécanismes de déduplication sont utilisés afin de limiter encore plus les mises à jour 18, 20, et les requêtes correspondantes à la base de données principale 3 et afin d'alléger l'interface 9 et la base de données principale 3 de la 30 charge. Dans ces modes de réalisation (FIG. 9), le systèmel est un système de base de données distribuée plus complexe avec une pluralité de noeuds locaux 2 a, 2b, 2c (c.-à-d. les machines informatiques 2) agencées pour recevoir les requêtes de base de données des machines clientes 5. La machine informatique 2 est un de ces multiples noeuds locaux dans le système de base de 22 données distribuée 1 avec la pluralité des noeuds locaux et au moins un noeud central désigné comme étant une machine de déduplication globale 9 dans la FIG. 9. Le système de base de données distribuée 1 peut aussi inclure une pluralité de mémoires-cache 4. Par exemple, chacun de la pluralité des noeuds locaux peut être équipé d'une mémoire-cache locale 4. 5 [0062] Dans les modes de réalisation utilisant d'autres déduplications, la machine informatique 2 veille sur l'histoire des requêtes de base de données relative à toute première donnée afin d'effectuer une déduplication locale comme cela a déjà été mentionné auparavant. En réponse à la détermination qu'aucune seconde interrogation antérieure de base de données 10 relative à la première donnée dans la mémoire-cache 4 n'a été reçue au cours de la période donnée de mise à jour, la machine informatique 2 (p. ex. le noeud local 2 a) envoie une première demande de mise à jour, pour mettre à jour au moins la première donnée dans la mémoire-cache 4, au noeud central 9 pour effectuer une mise à jour de la première donnée en cache. Les requêtes de mise à jour respectives concernant toute première donnée et toute seconde donnée sont aussi 15 envoyées par d'autres machines informatiques 2b, 2c au noeud central 9. [0063] La machine de déduplication globale 9 traite toutes les requêtes entrantes de mise à jour provenant des machines informatiques 2a, 2b, 2c. En réponse à la réception de la demande de mise à jour concernant la première donnée de l'un des noeuds locaux 2a, la machine de 20 déduplication globale 9 effectue une mise à jour de déduplication de la mémoire-cache au niveau global. Dans ce but, en réponse à la détermination qu'au moins une seconde demande antérieure de mise à jour pour mettre à jour la première donnée dans la mémoire-cache 4 a été reçue d'un autre noeud local 2b, 2c au cours d'une autre période donnée, aussi désignée comme période centrale de mise à jour, le noeud central 9 bloque la mise à jour de la première donnée 25 dans la mémoire-cache 4. Par conséquent, la machine de déduplication globale 9 filtre la demande de mise à jour concernant la première donnée et allège la base de données principale 3 de la charge correspondante. Plutôt, la machine de déduplication globale renvoie un message de rejet à la machine informatique de mandante 2a indiquant que la demande de mise à jour est rejetée. La période de mise à jour centrale est fixée à une valeur appropriée conformément à 30 l'implémentation du système 1, p. ex. égal ou supérieur à la période(s) (locale) donnée de mise à jour utilisée par les machines informatiques 2 comme déduplication en utilisant la période(s) (locale) de mise à jour déjà réalisée au niveau local des machines informatiques 2. Le noeud 23 central 9 peut utiliser un temporisateur similaire de blocage de mise à jour pour chaque donnée en cache ainsi que déjà décrit en détail pour la machine informatique 2 ci-dessus. [0064] Dans certains modes de réalisation, au lieu de filtrer de multiples requêtes de mise à 5 jour, le noeud central 9 retarde la transmission des requêtes de mise à jour jusqu'à l'expiration du temporisateur central de blocage de mise à jour. Le noeud central 9 peut informer la machine informatique demandeuse 2 que la demande de mise à jour sera traitée avec un délai. [0065] Finalement, la FIG. 10 et une représentation sous forme de diagramme des composants 10 internes d'une machine informatique 2. La machine informatique 2 inclut un ensemble d'instructions pour amener la machine informatique 2 à mettre en oeuvre l'un quelconque des procédés discutés dans les présentes lorsqu'elles sont exécutées par la machine informatique 2. La machine informatique 2 inclut au moins un processeur 102, une mémoire principale 104 et un dispositif d'interface de réseau 108 qui communiquent les uns avec les autres via un bus 15 101. En option, la machine informatique 2 peut par ailleurs inclure une mémoire statique 106 et une unité de lecteur de disque. Un écran vidéo, un dispositif de saisie alphanumérique et un dispositif de contrôle de pointeur peuvent être fournis comme exemples d'interface d'utilisateur 103. Le dispositif d'interface de réseau 108 connecte la machine informatique 2 au moins aux clients 5 ainsi qu'à la base de données principale 3 et en option aussi au noeud central 9. 20 [0066] Dans des modes de réalisation dans lesquels la machine informatique 2 héberge aussi la mémoire-cache 4, la mémoire-cache 4 peut être conservée dans la mémoire principale 104. Un ensemble d'instructions exécutables par ordinateur (c.-à-d., un code de programme informatique) réalisant une quelconque ou tous les procédés décrits ci-dessus, réside 25 entièrement, ou au moins partiellement, sur un support lisible par ordinateur, p. ex., la mémoire principale 104 (montrée comme une des entités fonctionnelles de traitement de demande de base de données 110 incluant la fonctionnalité pour recevoir et traiter les requêtes de base de données incluant l'opération de détermination 14 et la fonctionnalité de mise à jour de mémoire-cache 112 incluant les opérations de détermination 17 et 19 ainsi que les opérations de mise à 30 jour 1-8 et 20) et/ou dans ledit au moins un processeur 102 et/ou dans la mémoire statique 106. Les instructions peuvent par ailleurs être transmises ou reçues sous forme de signal propagé via Internet par l'intermédiaire du dispositif d'interface de réseau 108. Le fonctionnement basique de la machine informatique incluant une interface d'utilisateur et un réseau de communication 24 est contrôlé par un système d'exploitation qui est aussi situé dans la mémoire principale 104, ledit au moins un processeur 102 et/ou la mémoire statique 106. [0067] En général, les routines exécutées pour mettre en oeuvre les modes de réalisation de 5 l'invention, qu'elles soient implémentées comme des parties d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, d'un module ou d'une séquence d'instructions, ou même un sous-ensemble de ceux-ci, peuvent être désignées dans les présentes comme « code de programme informatique » ou simplement « code de programme ». Un code de programme comporte typiquement des instructions lisibles par 10 ordinateur qui résident à divers moments dans divers dispositifs de mémoire et de stockage dans un ordinateur et qui, lorsqu'elles sont lues et exécutées par un ou plusieurs processeurs dans un ordinateur, amènent l'ordinateur à effectuer des d'opérations nécessaires à l'exécution d'opérations et/ou d'éléments propres à la mise en oeuvre des aspects variés des modes de réalisation de l'invention. Les instructions d'un programme, lisibles par ordinateur, pour 15 effectuer les opérations des modes de réalisation de l'invention peuvent être, par exemple, le langage d'assemblage, ou encore un code source ou un code objet écrit en combinaison avec un ou plusieurs langages de programmation. [0068] Divers codes de programme décrits dans les présentes peuvent être identifiés, selon 20 l'application dans laquelle ils sont implémentés, dans des modes de réalisation spécifiques de l'invention. Cependant, on notera qu'une quelconque nomenclature d'un programme particulier dans les présentes est utilisée uniquement par commodité ; ainsi l'invention ne peut être limitée à un seul usage dans toute application spécifique identifiée et/ou sous-entendue par ladite nomenclature. Par ailleurs, au vu du nombre généralement infini de moyens par lesquels 25 les programmes informatiques peuvent être organisés selon des sous-programmes, procédures, procédés, modules, objets, et ainsi de suite, ainsi que les façons variées d'affecter les fonctionnalités d'un programme parmi diverses couches de logiciels qui sont hébergées dans un ordinateur typique [p. ex_, les systèmes d'exploitation, les bibliothèques, les interfaces d'application de programme (API), les applications, les petites applications (applets) etc.], on 30 notera que les modes de réalisation de l'invention ne sont pas limités à l'organisation spécifique et à l'affectation spécifique des fonctionnalités de programme telles qu'elles sont décrites dans les présentes. 25 [0069] Le code de programme mis en oeuvre dans une/un quelconque des applications/modules décrit(e)s dans les présentes peut être distribué individuellement ou collectivement comme un produit-programme d'ordinateur, sous une variété de formes. En 5 particulier, le code de programme peut être distribué en utilisant un support de stockage lisible par ordinateur, disposant d'instructions de programme lisibles par ordinateur en lui-même, permettant à un processeur de mettre en oeuvre des aspects des modes de réalisation de 1' invention. 10 [0070] Les supports de stockage lisibles par ordinateur, étant intrinsèquement non transitoires, peuvent inclure des supports tangibles, volatiles et non volatiles et amovibles et non amovibles, implémentés dans un quelconque procédé ou technologie, pour le stockage d'informations, telles que les instructions de programme lisibles par ordinateur, des structures de donnée, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur 15 peuvent aussi comprendre une mémoire a accès aléatoire (RAM), une mémoire à lecture seule (ROM), une mémoire à lecture exclusivement, programmable et effaçable (EPROM), une mémoire à lecture exclusivement, programmable et effaçable électriquement (EEPROM), une mémoire flash, ou toute technologie de support de mémoire à état défini, un disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou tout autre stockage optique, des 20 cassettes magnétiques, une bande d'enregistrement magnétique, un disque de stockage magnétique ou d'autres dispositifs de stockage magnétique, ou tout autre support pouvant être utilisé pour stocker l'information désirée et apte à être lu par un ordinateur. Un support de stockage lisible par ordinateur ne peut être interprété comme « signaux transitoires » en soi (par exemple, des ondes radio ou toutes autres ondes électromagnétiques se propageant, des ondes 25 électromagnétiques se propageant à travers un support de transmission telle qu'un guide d'ondes, ou des signaux électriques transmis par câble). Les instructions de programme lisibles par ordinateur peuvent être téléchargées sur un ordinateur, un autre type d'appareil de traitement de données programmable ou sur tout autre dispositif de support de stockage lisible par ordinateur, ou vers un ordinateur externe ou vers un dispositif de stockage externe par un 30 réseau. 26 [0071] Les instructions de programme lisibles par ordinateur, enregistrées sur un support lisible par ordinateur, peuvent être utilisées pour amener un ordinateur, d'autres types d'appareils programmables de traitement de données, ou d'autres dispositifs, à fonctionner d'une façon particulière, de sorte que les instructions stockées sur le support lisible par 5 ordinateur produisent un article de fabrication incluant les instructions qui mettent en oeuvre les fonctions, les actions et/ou les opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général ou un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de 10 sorte que les instructions, lorsqu'elles sont exécutées à l'aide du ou des processeurs, accomplissent une série de calculs pour mettre en oeuvre les fonctions, actions, et/ou les opérations spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [0072] Dans certains autres modes de réalisation, les fonctions, les actions et/ou des 15 opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être réordonnées, traitées en série, et/ou traitées en même temps conformément aux modes de réalisation de l'invention. De plus, tout organigramme, diagramme séquentiel et/ou diagramme bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés, tout en restant cohérents avec les modes de réalisation de l'invention. 20 [0073] La terminologie utilisée dans les présentes a pour but de décrire uniquement des modes de réalisation particuliers et n'est pas destinée à limiter les modes de réalisation de l'invention. On comprendra par ailleurs que les termes « comprendre », « comprend » et/ou « comprenant », lorsqu'ils sont utilisés dans cette spécification, précisent la présence de caractéristiques, de 25 nombres entiers, d'étapes, d'opérations, d'éléments, et/ou de composants, mais n'excluent pas la présence ou l'ajout d'une ou de plusieurs caractéristiques, de nombres entiers, d'étapes, d'éléments, de composants et/ou de groupes, en cela. De plus, dans la mesure où les termes « inclut », « ayant », « a », « avec », « compris de » ou des variantes de ceux-ci, sont utilisés, soit dans la description détaillée, ou les revendications, ces termes sont censés être inclusifs de 30 façon similaire au terme « comprenant ». 27 [0074] Bien que l'invention ait été illustrée par une description de modes de réalisation variés et bien que ces modes de réalisation aient été décrits de façon considérablement détaillée, il n'y a pas d'intention de restreindre ou de limiter en aucune façon la portée des revendications en annexe à ces détails. Des avantages supplémentaires et des modifications possibles 5 apparaîtront aisément aux hommes de métier. L'invention sous ses aspects plus larges n'est donc pas limitée aux détails spécifiques, aux appareils représentatifs et aux procédés, ainsi qu'aux exemples illustratifs montrés et décrits. Par conséquent, il est possible de s'éloigner de ces détails sans s'éloigner de l'esprit REVENDICATIONS1. Un procédé pour la mise à jour des données dans une mémoire-cache, réalisé par une machine informatique qui est couplée à une base de données principale conservant des données d'origine, ainsi qu'à une mémoire-cache conservant des données correspondant aux données d'origine dans la base de données principale, le procédé comprenant, au niveau de la machine informatique : - en réponse à la réception d'une première interrogation de base de données relative à une première donnée, de déterminer, sur la base d'au moins un facteur donné de sondage, si la première interrogation de données doit être traitée en utilisant la mémoire-cache ou en se basant sur la base de données principale. - en réponse à la conclusion du traitement de la première interrogation de base de données, déterminer s'il faut mettre à jour la première donnée dans la mémoire-cache ; et - en fonction du résultat de la détermination, mettre à jour la première donnée dans la mémoire-cache sur la base de la première donnée d'origine dans la base de données principale. 2. Le procédé de la revendication 1, dans lequel la première interrogation de base de données est une requête de lecture, le procédé comprenant : - le traitement de la première interrogation de base de données en utilisant la mémoire-cache, dans lequel la détermination de mettre à jour la première donnée dans la mémoire-cache est mise en oeuvre en réponse à la conclusion du traitement de la première interrogation de base 25 de données en utilisant la mémoire-cache. 3. Le procédé de la revendication 1, dans lequel la première interrogation est une requête d'écriture, le procédé comprenant : - le traitement de la première interrogation de base de données basée sur la 30 première donnée d'origine dans la base de données principale qui entraine une modification de la première donnée d'origine dans la base de données principale, 29 dans lequel la détermination de mettre à jour la première donnée dans la mémoire-cache basée sur la première donnée d'origine modifiée dans la base de données principale est effectuée en réponse à la conclusion du traitement de la première interrogation de base de données basé sur la première donnée d'origine dans la base de données principale. 5 4. Le procédé de l'une quelconque des revendications 1 à 3, comprenant par ailleurs : - en réponse à la conclusion du traitement de la première interrogation de base de données, de déterminer la nécessité de mettre à jour au moins une seconde donnée dans la mémoire-cache corrélée à la première donnée sur la base d'une 10 seconde donnée d'origine dans la base de données principale. 5. Le procédé de l'une quelconque des revendications 1 à 3, comprenant par ailleurs : - la détermination, en utilisant un algorithme d'apprentissage automatique, d'une décroissance de la probabilité que la première donnée dans la mémoire-cache 15 soit toujours valide, c.-à-d. identique à la première donnée d'origine dans la base de données principale, - la détermination, sur la base au moins de la décroissance de la probabilité que la première donnée dans la mémoire-cache soit toujours valide, de la nécessité de mettre à jour la première donnée dans la mémoire-cache basée sur la première 20 donnée d'origine dans la base de données principale. 6. La méthode de la revendication 5, comprenant par ailleurs : - après avoir déterminé la décroissance de la probabilité que la première donnée dans la mémoire-cache soit toujours valide, de déterminer la nécessité de mettre à jour au moins une seconde donnée dans la mémoire-cache corrélée à la première donnée sur la base de la seconde donnée d'origine dans la base de données principale. 7. Le procédé de l'une quelconque des revendications 1 à 6, dans lequel la détermination de la nécessité de mettre à jour la première donnée dans la mémoire-cache comprend : 30 - en réponse à la détermination qu'au moins une seconde interrogation antérieure de base de données relative à la première donnée a été reçue dans une première période donnée, le blocage de la mise à jour de la première donnée dans la mémoire-cache. 5 8. Le procédé de l'une quelconque des revendications 1 à 7, dans lequel la machine informatique est un noeud local dans un système de base de données distribuée avec une pluralité de noeuds locaux et un noeud central, le procédé comprenant par ailleurs : - l'envoi d'une première demande de mise à jour au noeud central pour mettre à 10 jour au moins la première donnée dans la mémoire-cache, - en réponse à la détermination, au niveau du noeud central, qu'au moins une seconde demande antérieure de mise à jour pour mettre à jour la première donnée dans la mémoire-cache a été reçue d'un autre noeud local au cours d'une période donnée, le blocage de la mise à jour de la première donnée dans la 15 mémoire-cache. 9. Le procédé de l'une quelconque des revendications 1 à 8, dans lequel ledit au moins un facteur donné de sondage comprend au moins l'un de : - un type de la première requête d'interrogation de base de données, 20 - une existence de la première donnée dans la mémoire-cache, - un taux d'erreur de sondage représentant un ratio entre un nombre d'échecs d'accès à la base de données principale et un nombre de tentatives d'accès à la base de données principale, - un nombre d'accès d'écriture sur la première donnée d'origine dans un laps de 25 temps donné, - un âge de la première donnée dans la mémoire-cache, - un taux de validité indiquant une probabilité que la première donnée dans la mémoire-cache soit valide à un certain âge, - une fréquence d'accès à la première donnée dans la mémoire-cache, 30 - une ressource de mise à jour étant une mesure des coûts de calcul et/ou une charge de réseau, nécessaire pour mettre à jour la première donnée dans la mémoire-cache. 31 10. Une machine informatique couplée à une base de données principale conservant des données d'origine et à une mémoire-cache conservant des données correspondant aux données d'origine dans la base de données principale, la machine informatique étant agencée pour 5 mettre en oeuvre le procédé de mise à jour des données de l'une quelconque des revendications 1 à 9. 11. Un produit - programme d'ordinateur comprenant des instructions de code de programme stockées sur un support lisible par ordinateur pour mettre en oeuvre les étapes du 10 procédé selon l'une quelconque des revendications 1 à 9 lorsque ledit programme fonctionne sur un ordinateur.