Brevet FR3081238A1 — publié le 20191122

MISE EN MEMOIRE CACHE DE BASE DE DONNEES DOMAINE TECHNIQUE [0001] La présente invention concerne la technologie de base de données. Elle concerne en particulier la mise en mémoire cache de résultats de requête de base de données. CONTEXTE [0002] La mise en mémoire cache de bases de données stocke une sélection de données qui sont conservées dans un système de bases de données dans une mémoire cache. Une réponse 10 est alors apportée aux requêtes de bases de données à partir de la mémoire cache afin de réduire les temps de réponse. Par exemple, une sélection de données fréquemment demandées à partir de la base de données est stockée dans la mémoire cache. Les demandes de base de données, pour lesquelles aucune donnée n'est stockée dans la mémoire cache, sont traitées au moment de la requête et une réponse est apportée par la suite à partir de la base de données. 15 Les requêtes de bases de données pour lesquelles la base de données n'inclut aucun résultat sont également traitées au moment de la requête à l'aide des ressources de traitement et du temps du système de base de données. [0003] Une approche générale telle qu'exposée par ex. dans une documentation de la mémoire cache de source ouverte EHCACHE sur 20 http://www.ehcache.org/documentati011/2.8/recipe5/cachenull.html consiste à mettre en mémoire cache les valeurs zéro lorsque la base de données ne sort aucun résultat pour une requête donnée. [0004] La mise en mémoire cache des valeurs zéro ou NULLES est également décrite dans US 2010/0036805 Al qui concerne le maintien de mémoires caches de valeurs d'entrée/de 25 sortie (I/O) pour des requêtes de bases de données. En réponse à la réception d'une requête au niveau de la base de données, il est décidé conformément aux critères prédéterminés, qu'une entrée de mémoire cache est créée pour renvoyer un résultat à partir de la mémoire cache dans le cas où la même requête ou une requête similaire est à nouveau reçue par la suite. Si aucune valeur concspondante n'est trouvée en traitant une requête, une valeur NULLE renvoyée et 30 être également incluse dans la mémoire cache. [0005] Par ailleurs, US2016/0042278 Al concerne un ajustement prédictif de contenu dans un réseau de distribution de contenu pour rafraîchir le contenu stocké dans une ou plusieurs 2 mémoires cache Toutes les données provenant d'une base de données ou de portions de données fréquemment demandées sont stockées dans une mémoire cache, reflétant le contenu de la base de données. En fonction de la taille du contenu et/ou de la mémoire cache, tout le contenu ou les portions du contenu est/sont fourni(es) dans la mémoire cache. La gestion de la 5 mémoire cache détermine si le contenu est périmé et doit être rafraîchi. RESUME [0006] Un premier aspect concerne un procédé de traitement des demandes de bases de données pour récupérer les résultats d'un calcul de données d'un système de base de données dans une mémoire cache. La mémoire cache stocke une représentation d'un espace de données d'une ou plusieurs bases de données du système de base de données. La représentation inclut un ou plusieurs résultats pour toute requête de base de données pour laquelle l'espace de données d'une ou de plusieurs bases de données du système de base de données est en mesure de délivrer un résultat. Le procédé au niveau de la mémoire cache détermine en utilisant la représentation stockée, en réponse à la réception d'une requête de base de données, si l'espace de données d'une ou de plusieurs bases de données est en mesure de délivrer un ou plusieurs résultats pour la requête de base de données. Dans l'affirmative, un ou plusieurs résultats de la requête de données est/sont renvoyé(e). Autrement une notification d'invalidité est renvoyée. [0007] Un autre aspect concerne une mémoire cache pour le traitement des requêtes de bases de données agencée pour exécuter le procédé des aspects précédents. [0008] Un autre aspect concerne un système de base de données incluant une mémoire cache agencée pour exécuter le procédé des aspects précédents. [0009] Un autre aspect concerne un programme informatique pour traiter les requêtes de 25 bases de données à l'aide d'une mémoire cache conformément aux aspects précédemment mentionnés incluant des instructions de code stockées sur un support de stockage lisible par ordinateur pour exécuter le procédé susmentionné, lorsque ledit programme est exécuté sur un ordinateur. 3 BRÈVE DESCRIPTION DES DESSINS [0010] Les présents mécanismes seront décrits en faisant référence aux dessins qui les accompagnent. Des numéros de référence similaires indiquent généralement des éléments 5 identiques ou similaires sur le plan fonctionnel. La FIG. 1 est un aperçu du système de base de données, incluant une mémoire cache et une base de données. La FIG. 2 représente un exemple de mise en oeuvre dans un réseau de communication. La FIG. 3 représente un diagramme séquentiel illustrant l'initialisation/la mise à jour de la 10 mémoire cache et l'utilisation de la mémoire cache. La FIG. 4 complète le réseau de communication de la FIG. 2 avec un historique des changements. La FIG. 5 représente une mémoire cache stockant deux ou plusieurs résultats. La FIG. 6 illustre une extension du système à la FIG. 1 pour exploiter les notifications 15 d'invalidité. La FIG. 7 représente un organigramme illustrant la récupération d'un résultat supplémentaire dans l'espace de données. La FIG. 8 représente trois diagrammes séquentiels illustrant les réponses de la mémoire cache. 20 La FIG. 9 illustre l'application du système de base de données mettant en oeuvre un groupe de répartition de charge. La FIG. 10 est une vue schématique exemplaire de l'architecture interne d'une machine informatique. DESCRIPTION DETAILLEE [0011] Un aperçu d'un système de base de données 100 incluant une mémoire cache 101 et une base de données 102 est représenté à titre d'exemple à la FIG. 1. Le système de base de données 100 inclut une machine informatique 104 incluant un ou plusieurs processeurs pour délivrer un ou plusieurs résultats de traitement de données contenues dans la ou les bases de 4 données 102, et l'espace de données est en mesure de délivrer le ou les résultats. La mémoire cache 101 est agencée pour traiter les requêtes de base de données reçues des clients 103. Les résultats sont prétraités par une machine informatique 104 dans une initialisation et/ou mise à jour de la mémoire cache 101. La mémoire cache 101 stocke une représentation 105 d'un 5 espace de données 106. [0012] L'espace de données 106 est défini par les données stockées dans la ou les bases de données 102 du système de base de données 100. En d'autres termes, les données stockées par ladite au moins base de données 102 forment l'espace de données 106. La représentation 105 inclut un ou plusieurs résultats pour toute requête de base de données pour laquelle l'espace 10 de données 106 de la ou des bases de données 102 du système de base de données 100 est en mesure de délivrer un résultat, lorsque la requête de base de données est prétraitée sur la machine informatique 104. Les résultats stockés dans la mémoire cache 101, c.-à-d. la représentation 105 sont une transformation des données de l'espace de données 106, et/ou un sous-ensemble de l'espace de données 106. Des exemples de l'espace de données 106 de 15 ladite au moins base de données 102 et de la représentation 105 sont donnés ci-dessous. [0013] Dans des modes de réalisation exemplaires, ladite au moins base de données 102 du système de base de données 100 être une base de données relationnelle stockant les données de l'espace de données 106 dans des tableaux. Dans d'autres modes de réalisation exemplaires, la base de données 102 est une base de données noSql (not only Structured 20 Query Language) (pas seulement une langue d'interrogation structurée) stockant les données de l'espace de données 106 dans des documents JSON (Java Script Object Notation) (notation d'objet de script java) semi-structurés, XML (Extensible Markup Language) (langage de balisage extensible) ou autres. Cependant, les modes de réalisation ne sont pas limités aux bases de données exemplaires mentionnées. 25 [0014] Dans les modes de réalisation exemplaires, les clients 103 sont des utilisateurs de machines telles que des applications, des serveurs et/ou des terminaux. [0015] Dans un mode de réalisation exemplaire, le système de base de données 100 est agencé pour répondre à toute requête de base de données des clients 103 concernant la disponibilité des routes 201 entre les serveurs 202 dans un réseau de communication 200 représenté à la FIG. 2. La base de données 102 dans ce mode de réalisation exemplaire stocke toutes les routes, qui sont des connexions directes entre deux serveurs sans serveurs intermédiaires entre elles. L'espace de données 106 de la base de données 102 est ainsi donné par la collecte de ces routes directes entre des serveurs voisins et est en mesure de fournir 5 toutes les routes disponibles entre toute paire de serveurs c.-à-d. toutes les permutations des serveurs 202 dans le réseau de communication 200 incluant également les connexions indirectes aux serveurs intermédiaires 202 calculé par concaténation de routes directes. [0016] La mémoire cache 101 stocke une représentation 105 de l'espace de données 106, à 5 savoir une liste de toutes les paires de serveurs 202 qui sont connectés par une route directe (sans autres serveurs intermédiaires) ou une route indirecte (avec des serveurs intermédiaires). Les paires de serveurs qui ne sont pas connectés par toute route ne font pas partie de la représentation 105 et ils ne sont par conséquent pas stockés dans la mémoire cache. Dans d'autres modes de réalisation, la représentation 105 inclut au moins chaque route pour chaque 10 paire de serveurs interconnectés. [0017] La mémoire cache 101 peut être initialisée (c.-à-d. complétée par la représentation 105, dérivée de l'espace de données 106) de diverses manières. Par exemple, la représentation 105 est dérivée par prétraitement, de manière à diriger des requêtes de bases de données vers la base de données 102, à récupérer pour chaque paire de serveurs, qu'il existe une route entre 15 les deux serveurs respectifs 202. Une ou plusieurs routes 201 pour chaque paire de serveurs interconnectés est/sont prétraitée(s) par la machine informatique 104 du système de base de données 100. Ladite au moins route pour chaque paire de serveurs interconnectés obtenue à partir de l'espace de données 106 par le prétraitement forme la représentation 105 et est stockée dans la mémoire cache 101. Si le prétraitement ne sort pas une route 201 pour une 20 paire de serveurs, cela signifie que les deux serveurs 202 de la paire ne sont pas connectés par toute route et par conséquent, aucun résultat n'est stocké dans la mémoire cache 101. [0018] Par exemple, pour la paire de serveurs (1, 2), la route « a » est stockée dans la représentation 105 de la mémoire cache 101 suite à une route connectant le serveur 1 et le serveur 2 dans le réseau de communication 200. Dans un autre exemple, pour la paire de 25 serveurs (2, 7), la route « e)> est stockée suite à une route connectant le serveur 2 et le serveur 7. Dans un autre exemple, pour la paire de serveurs (2, 7), les routes « e » et « f-g » sont stockées dans la représentation 105 de la mémoire cache 101 suite à des routes connectant le serveur 2et le serveur 7 dans le réseau de communication 200. [0019] Par conséquent, dans ce mode de réalisation exemplaire, la mémoire cache 101 stocke 30 une route pour toute requête de base de données pour les paires de serveurs 202 dans la représentation 105 sortie sur prétraitement sur la machine informatique 104. Dans d'autres modes de réalisation exemplaires, la mémoire cache 101 stocke un certain nombre de routes ou toutes les routes pour toute paire de serveurs 202 demandée dans la représentation 105 6 sortie sur prétraitement sur la machine informatique 104. Dans d'autres modes de réalisation exemplaires, la mémoire cache 101 stocke toutes les routes dans la représentation 105 de la mémoire cache 101. [0020] La mémoire cache 101 est agencée pour déterminer, en utilisant la représentation 105 5 stockée, en réponse à la réception d'une requête de base de données provenant d'un client 103, si l'espace de données 106 de la ou des bases de données 102 est en mesure de délivrer un ou plusieurs résultats pour la requête de base de données. Dans l'affirmative, la mémoire cache 101 renvoie un ou plusieurs résultats pour la requête de base de données stockée dans la représentation 105, autrement, la mémoire cache 101 renvoie une notification 10 d'invalidité, parce que l'espace de données 106 n'est pas en mesure de délivrer un résultat pour cette requête de base de données. [0021] Dans le mode de réalisation exemplaire à la FIG. 2, en réponse à la réception d'une requête de base de données provenant d'un client 103 pour une route entre le serveur 1 et le serveur 3 dans le réseau de communication 200, la mémoire cache renvoie la route « a-b » 15 suite à la requête de base de données. Dans un autre mode de réalisation exemplaire, la mémoire cache renvoie les routes « a-b », « a-e-h-i-d-c » et « a-f-h-i-d-c » suite à la requête de base de données du client 103. Dans un autre mode de réalisation exemplaire, il existe une déconnexion dans les routes «b » et «j », de sorte que le réseau de communication est divisé en deux sous-réseaux déconnectés. Le premier du sous-réseau inclut les serveurs 1, 2, 6, 7, 8 20 et le deuxième sous-réseau inclut les serveurs 3, 4, 5. Par conséquent, il n'existe aucune route disponible entre le serveur 1 dans le premier sous-réseau et le serveur 3 dans le deuxième sous-réseau. En réponse à la réception d'une requête de base de données provenant d'un client 103 pour une route entre le serveur 1 et le serveur 3, la mémoire cache 101 renvoie une notification d'invalidité, puisque la représentation 105 de la mémoire cache 101 ne stocke 25 aucune route pour une connexion entre le serveur 1 et le serveur 3, parce que l'espace de données 106 n'est pas en mesure de sortir une route 202 entre le serveur 1 et le serveur 3. [0022] Dans certains modes de réalisation exemplaires à la FIG. 2, les résultats incluent en plus de la route, les paramètres par ex. les politiques pour la disponibilité du résultat sous certaines conditions. Un résultat d'une route de réseau inclut par exemple un paramètre 30 indiquant que la route ou une ou plusieurs sous-routes du résultat est/sont utilisé(s) uniquement de manière unidirectionnelle, par ex. la route b à la FIG. 2, sert uniquement la communication dans la direction allant du serveur 2 au serveur 3 mais pas l'inverse. Le seul résultat alors disponible pour une connexion entre le serveur 2 et le serveur 3 est la route b 7 elle-même. La route e-h-i-d-c-b est indiquée par le paramètre unidirectionnel de b ne devant pas être disponible parce qu'il est dirigé de c à b, ce qui n'est pas supporté. Les deux routes de résultats b et e-h-i-d-c-b peuvent être stockées dans la mémoire cache 101 mais sont accompagnés par le paramètre indiquant, si la route est disponible dans le résultat 5 correspondant. Dans un autre exemple, une route de réseau est disponible uniquement à des intervalles de temps spécifiques. Par exemple, si les serveurs 3, 4 et 5 appartiennent à un autre groupe de réseaux alors les serveurs 1, 2, 6, 7 et 8 et sont uniquement partagés la nuit pour soutenir le traitement par des ressources supplémentaires, les routes b et i sont limitées à une communication de serveur uniquement de 22h00 à 6h00. Par conséquent, tous les résultats 10 incluant les routes b et/ou i comme une route ou une sous-route incluent paramètres temporels indiquant si le résultat respectif est disponible/non disponible. D'autres paramètres dépendant de l'heure sont par exemple une heure maximum autorisée pour qu'un message soit envoyé d'un serveur d'origine à un serveur de destination et/ou par un délai défini pour traiter un message au niveau d'un serveur intermédiaire sur une route composée, avant qu'il soit envoyé 15 au prochain serveur pour un traitement ultérieur. Dans un troisième exemple, le paramètre d'un résultat indique qui est qualifié pour demander le résultat, de sorte que le résultat est uniquement disponible pour des sources spécifiques de la requêtes ou des utilisateurs. Si une autre source que celle indiquée dans les paramètres d'un résultat tente de demander le résultat provenant de la mémoire cache 101, le résultat n'est pas disponible. 20 [0023] Les systèmes et procédés dans US 2010/0036805 Al et US2016/0042278 Al traitent une requête de base de données en réponse à la réception de la requête de base de données pour la première fois et utilisent alors une mémoire cache pour répondre à la requête de base de données provenant de la mémoire cache, lorsque la requête est à nouveau reçue. En réponse à la réception d'une requête de base de données pour la première fois, le système n'a 25 aucune information sur la disponibilité d'un résultat pour cette requête de base de données. Par conséquent, une requête de base de données reçue pour une première fois est traitée au moment de la requête de base de données, bien qu'aucun résultat ne soit délivré au final, puisque la requête de base de données était invalide. Si le traitement d'une requête de base de données reçue pour la première fois ne délivre pas de résultat, certains des systèmes connus 30 stockent un NULLE dans la mémoire cache, afin d'empêcher le système de traiter une requête de base de données précédemment traitée et ne délivrant pas de résultats là encore au moment de la requête de base de données. Au contraire, la mémoire cache 101 décrite dans les présentes inclut déjà un ou plusieurs résultats pour toute requête de base de données pour 8 laquelle l'espace de données 106 des bases de données 102 du système de base de données 100 est en mesure de délivrer un résultat. [0024] En outre, la mémoire cache 101 est en mesure de répondre directement à toute requête de base de données sans qu'il soit nécessaire de se référer à la base de données 102 du 5 système de base de données 100. Le fait que le système de base de données 100 économise toute charge du traitement généralement provoquée sur des requêtes de base de données invalides liées à des données non mises en mémoire cache par ex. des recherches impossibles ne délivrant pas de résultats, constitue un avantage. [0025] Dans certains modes de réalisation, les deux mécanismes suivants représentés à la 10 FIG. 3 concernent l'initialisation et/ou la mise à jour de la représentation 105 dans la mémoire cache 101 d'une part et l'utilisation de la mémoire cache 101 afin de répondre aux requêtes de bases de données à partir de la mémoire cache 101 d'autre part. Pour initialiser ou mettre à jour 302 de la représentation 105 de la mémoire cache 101, le premier mécanisme par ex. génère toute requête de base de données définie sur la base de données 102 du système de 15 base de données 100 par une machine informatique 104. Plusieurs résultats délivré(s) pour toute requête de base de données est/sont stocké(s) dans la représentation 105 de la mémoire cache 101. Si aucun résultat n'est délivré lors du traitement d'une requête de base de données, rien n'est stocké dans la représentation 105 de la mémoire cache 101 pour cette requête de base de données. Le même processus est répété pour réinitialiser la mémoire cache 101 ou 20 pour effectuer une mise à jour de la mémoire cache 101. [0026] Dans d'autres modes de réalisation, l'initialisation est effectuée par un processus de transformation donné mettant en correspondance les données de l'espace de données 106 avec les données formant la représentation 105 sans effectuer une permutation des requêtes de bases de données vers la base de données 102. 25 [0027] Séparées de l'initialisation ou de la mise à jour des résultats 300 sur la machine informatique 104, les requêtes de bases de données font l'objet d'une réponse 301 provenant de la mémoire cache 101. Les requêtes de bases de données 305 des clients 103 sont reçues au niveau de la mémoire cache 101. Si un ou plusieurs résultats pour la requête de base de données est/sont stocké(s) dans la représentation 105 de la mémoire cache 101, la mémoire 30 cache 101 répond 306 à la requête de base de données en renvoyant un ou plusieurs des résultats au client 103. Autrement, la mémoire cache répond 306 en renvoyant une notification d'invalidité. 9 [0028] Dans certains modes de réalisation, la représentation 105 de la mémoire cache 101 inclut un certain nombre d'enregistrements de données. Chaque enregistrement de données inclut une combinaison clé - valeur. La requête de base de données inclut une clé d'un ou de plusieurs enregistrements de données et le ou les résultats pour la requête de base de données 5 inclut une ou plusieurs valeurs du ou des enregistrements de données. [0029] Dans certains modes de réalisation, la combinaison clé - valeur représente un chemin de connexion entre un noeud d'origine et un noeud de destination sur un réseau de communication. La clé précise le noeud d'origine et le noeud de destination dans le réseau de communication et la valeur est un ou plusieurs chemins du noeud d'origine ou noeud de 10 destination. Le noeud d'origine est connecté directement ou via un ou plusieurs noeuds intermédiaires au noeud de destination. [0030] Dans des modes de réalisation exemplaires, un noeud d'origine et/ou de destination ainsi que des noeuds intermédiaires dans le réseau de communication 200 de la FIG. 2 sont des serveurs 202 connectés par un réseau de zone locale (LAN), un réseau de zone locale sans 15 fil W(LAN), et/ou un réseau de zone étendue (WAN). Cependant, le type de connexion sur réseau de communication 200 n'est pas limité aux serveurs ou à des types spécifiques de réseaux. Les serveurs 202 constituent un réseau de communication 200 dans lequel les serveurs 202 travaillent ensuite ou en parallèle sur des tâches communes, échangent des données ou traitent les requêtes de bases de données opérationnelles. Afin de communiquer 20 avec un autre serveur, un interroge le système de base de données 100 pour déterminer s'il existe une route vers l'autre serveur et/ou quelle route est disponible. [0031] Dans le mode de réalisation exemplaire de la FIG. 2, la représentation 105 de la mémoire cache 101 stocke chaque paire de serveurs dans le réseau de communication 200 une ou plusieurs routes 201 par une paire clé - valeur. La paire clé - valeur inclut en tant que clé la 25 paire de serveurs incluant une permutation d'un serveur de et d'un serveur de destination de tous les serveurs 202 dans le réseau de communication 200, et en tant que valeur une ou plusieurs routes 201 entre le serveur d'origine et de destination 202. [0032] Par exemple, pour une paire de serveurs (2, 3), les routes disponibles 201 dans le réseau de communication interconnectant le serveur d'origine 2 au serveur de destination 3 30 sont «b », « e-h-i-d-c », « f-g-h-i-d-c ». Il en résulte pour la paire de serveurs (2, 3), qu'une paire clé - valeur est par exemple stockée dans la représentation 105 de la mémoire cache 101. Dans un autre exemple, la paire clé - valeur ou est stockée, si la mémoire cache 101 est configurée pour stocker deux 10 routes 201, si disponibles pour chaque paire de serveurs. Dans un autre exemple où la mémoire cache 101 est configurée pour stocker toutes les routes disponibles 201 pour toute paire de serveurs, la paire clé - valeur est stockée dans la représentation 105. Dans un exemple où les sous-routes b et i sont interrompues et il n'existe 5 aucune route disponible 201 entre le serveur d'origine 2 et le serveur de destination 3, la mémoire cache 101 ne stocke pas une paire clé - valeur pour la paire de serveurs (2, 3). [0033] Dans des systèmes de miroitage connus, tels que US2016/0042278 Al qui stocke toutes les portions de données incluses dans la base de données et en outre, reflète le contenu de la base de données, la mémoire cache consomme autant de ressources de stockage que la 10 base de données elle-même. De plus, le temps de traitement pour délivrer un résultat n'est pas économisé dans ces systèmes connus, mais est uniquement décalé du traitement de la requête de base de données au moment de la requête sur la base de données au traitement de la requête de base de données sur la mémoire cache. Cela n'économise aucun temps de réponse pour le client, ni pour des requêtes de base de données valides délivrant un résultat, ni pour 15 des résultats invalides ne délivrant pas de résultat au moment de la requête. La mémoire cache 101 aucun des résultats prétraités pour toute requête de base de données valide tel qu'une paire clé - valeur répond non seulement directement à toute requête de base de données instantanément comme expliqué précédemment, mais stocke également ces résultats de manière plus efficace que les systèmes de miroitage en termes de mémoire et de temps de 20 réponse . De plus, les requêtes invalides font instantanément l'objet d'une réponse par une notification d'invalidité. En outre, toute requête fait directement l'objet d'une réponse à partir de la mémoire cache 101. [0034] Dans certains modes de réalisation, la représentation 105 stockée dans la mémoire cache 101 inclut pour une ou plusieurs requêtes de bases de données moins de résultats que 25 l'espace de données 106 de la ou des bases de données 102 du système de base de données 100 est en mesure de délivrer. Les résultats moindres forment un sous-espace de résultat. Le sous-espace de résultat est donné sur la base d'une probabilité que les résultats dans la représentation 105 de la mémoire cache 101 restent valides dans le temps. Dans cette mesure, il existe des requêtes de bases de données pour lesquelles l'espace de données 106 de 30 ladite au moins base de données 102 est en mesure de délivrer plus d'un résultat, un sous-ensemble de ces résultats multiples, mais tous les résultats ne sont pas stockés dans la mémoire cache 101. Si l'espace de données 106 est en mesure de délivrer uniquement un résultat, ce résultat est stocké dans la représentation 105 de la mémoire cache 101. Si aucun 11 résultat n'est délivré, rien n'est stocké dans la représentation 105 de la mémoire cache 101 pour la requête de base de données. [0035] Le critère de sélection pour choisir un sous-ensemble de moins de résultats que le nombre de résultats qui sont délivrés par les bases de données 106 est la probabilité que les 5 résultats dans la représentation 105 la mémoire cache 101 restent valides dans le temps. Cette probabilité est par exemple obtenue en évaluant un historique des fréquences de changement des résultats dans la représentation 105 de la mémoire cache. Un ou plusieurs résultats est/sont délivré(s) lors du prétraitement de toute requête de base de données sur la base de données 102 du système de base de données 100 incluant l'espace de données 106 dans une 10 initialisation de la mémoire cache 101 ou également lors de la mise à jour de la mémoire cache 101. Des mises à jour de la mémoire cache 101 peuvent être effectuées à intervalles ou lors de la détection des changements en contrôlant l'espace de données 106. Cependant, le processus de mise à jour ne se limite pas à ces exemples. Les mises à jour déclenchent un recalcul des résultats à stocker dans la représentation 105 de la mémoire cache 101. Les 15 résultats sont obtenus en traitant à nouveau les requêtes de bases de données uniques sur la base de données 102 ou sous la forme d'un recalcul complet de toute requête de base de données. Sur la base d'un historique de mise à jour, les probabilités que les résultats dans la représentation 105 de la mémoire cache 101 restent valides dans le temps sont obtenues. [0036] A la FIG. 4, le réseau de communication 200 de la FIG. 2 est complémentaire d'un 20 historique 400 des changements dus à des interruptions dans les sous-routes du réseau de communication 200 en deux jours. L'historique des changements peut être stocké dans la base de données 102 du système de base de données 100, peut-être agrégé par un contrôle interne et externe, ou être mis en oeuvre de toute autre manière appropriée. À partir de l'historique 400 des interruptions, une probabilité qu'une route entre un serveur d'origine 0 et 25 un serveur de destination D reste inchangé est déterminée en supposant qu'une route 201 qui n'a pas été interrompue par le passé a une plus grande probabilité de rester inchangée et ne sera pas non plus interrompue à l'avenir. Le traitement d'une mise à jour le 6 décembre pour les routes entre le serveur d'origine 0 et le serveur de destination D sans tenir compte d'un historique 400 sort trois routes ri: a-b-c-d, r2: a-e-h-i et r3: a-f-g-h-i. 30 [0037] En tenant compte d'un historique 401 d'une journée dans le passé x 1 , l'historique révèle que le 5 décembre la route r1 n'avait pas d'interruption, la route r2 avait 2 interruptions, à savoir dans la sous-route e, présentant 2 interruptions le 5 décembre et la route r3 avait 3 interruptions, à savoir dans la sous-route f, présentant 2 interruptions et dans la 12 sous-route g, présentant 1 interruption le 5 décembre. Par conséquent, en tenant compte d'un historique d'un jour 401 dans le passé, la route qui a la probabilité la plus élevée de rester inchangée à l'avenir est la route ri. Par conséquent, la route ri: a-b-c-d est choisie et stockée dans la représentation 105 de la mémoire cache 101. 5 [0038] Dans un autre exemple, un historique de deux jours 402 dans le passé x2, à savoir le 4 et le 5 décembre est pris en compte. Dans cet exemple, il apparaît que la route r3 à la probabilité I plus élevée de rester inchangée à l'avenir. Par conséquent, la route r3 sera choisie et stockée dans la représentation 105 de la mémoire cache 101. [0039] Cependant, le fait de déterminer la probabilité que les résultats de la 10 représentation 105 de la mémoire cache 101 restent valides dans le temps n'est pas limité au procédé dans cet exemple. [0040] Contrairement à US2010/0036805A1 où les données stockées dans la mémoire cache sont mises à jour à chaque fois que les données correspondantes dans la base de données changent, l'avantage de choisir les résultats à stocker dans la mémoire cache 101 par la 15 validité des résultats stockés dans la représentation 105 est que la mémoire cache 101 préserve de manière optimale la cohérence du résultat stocké avec les résultats délivrés par l'espace de données 106 de la base de données 102 dans le système de base de données 100. Le nombre de mises à jour diminue par rapport au temps pendant lequel un résultat stocké dans la mémoire cache reste valide. En outre, le nombre de mises à jour de la mémoire 20 cache 101 est minimisé en économisant les ressources système pour de telles mises à jour. [0041] Dans certains modes de réalisation, la représentation 105 stockée dans la mémoire cache 101 inclut un ou plusieurs résultats pour les requêtes de bases de données qui sont délivrés lors du prétraitement de la requête de base de données sur l'espace de données 106 de la ou des bases de données 102 du système de base de données 100. La délivrance du ou des 25 résultats pour la requête de base de données à partir de la mémoire cache 101 inclut la-délivrance d'un ou de plusieurs des deux résultats ou plus ayant l'indicateur indiquant la probabilité la plus élevée de rester valide dans le temps. [0042] Dans un mode de réalisation exemplaire, les deux résultats ou plus stockés dans la mémoire cache 101 sont délivrés en réponse à la réception d'une requête de base de données 30 pour une requête de base de données de ce type. Dans un autre mode de réalisation exemplaire, tout d'abord le résultat avec la validité la plus élevée est délivré par la mémoire cache 101. Un résultat supplémentaire est délivré, si disponible, lorsqu'une requête de base de 13 données supplémentaire est reçue du client 103, demandant une ou plusieurs alternatives au premier résultat délivré. Dans des modes de réalisation exemplaires, la mémoire cache 101 stocke la probabilité que les résultats dans la représentation 105 de la mémoire cache 101 restent valident dans le temps avec le résultat respectif. En réponse à la réception d'une 5 requête de base de données par un client 103, la mémoire cache 101 renvoie le résultat avec la probabilité la plus élevée. [0043] Dans d'autres modes de réalisation exemplaires, la mémoire cache stocke les deux résultats ou plus dans une liste triée, de sorte que la position d'un résultat dans la liste indique la relation de la probabilité dans l'ordre avec la probabilité la plus élevée en premier. Par 10 conséquent, aucune mémoire supplémentaire n'est utilisée pour stocker la probabilité elle-même. En réponse à la réception d'une requête de base de données par un client 103, la , mémoire cache 101 renvoie un ou plusieurs des premiers éléments de la liste triée. Par conséquent, les résultats avec la validité la plus élevée sont renvoyés. [0044] Dans la FIG. 5, les résultats délivrés lors du traitement de toute requête de base de 15 données lors des connexions entre les serveurs 202 pour toutes les paires de serveurs dans le réseau de communication 200 à la FIG. 4 sont représentés dans un tableau 500. Dans ce mode de réalisation exemplaire, la mémoire cache 101 stocke dans la représentation 105 deux des résultats délivrés, si disponibles. Les résultats, stockées dans la mémoire cache 101 sont choisis par la probabilité la plus élevée que les résultats dans la représentation 105 de la 20 mémoire cache 101 restent valides dans le temps, c.-à-d. qu'ils ont la validité la plus élevée de tous les résultats délivrés pour chacune des paires de serveurs. La mémoire cache 101 stocke les routes sorties et choisies 501 pour toute paire de serveurs 502 dans une liste triée 501 dans la représentation 105. [0045] Dans le mode de réalisation exemplaire de la FIG. 5, la représentation 105 de la 25 mémoire cache 101 stocke pour les paires de serveurs (1, 2) le seul résultat délivré lors du traitement de la requête de base de données pour une connexion entre le serveur 1 et le serveur 2 sur l'espace de données 106, qui est la route «a ». Pour la paire de serveurs (1, 3), l'espace de données 106 sort, lors du traitement, quatre routes possibles si à s4 présentées à la ligne deux, colonne quatre du tableau 500_ Le nombre d'interruptions 400 est présenté dans 30 le réseau de communication 200 à la FIG. 4. Pour la paire de serveurs (1, 3) par exemple, le nombre d'interruptions est présenté et déterminé par un historique d'un jour x 1 et un historique de jours x2 dans le TAB 1. 14 TABLEAU 1 route nombre d'interruptions par xi nombre d'interruptions par x2 s 1 = a-b 0 0 s2 = a-f-g-e-b 2 (f) + 1 (g) + 2 (e) = 5 2+0 (f) + 1+0 (g) + 3+2 (e) = 8 s3 = a-e-h-i-d-c 2 (e) + 0 (c) =2 2+3 (e) + 0+4 (c) = 9 s4= a-f-g-h-i-d-c 2 (f) + 1 (g) + 0 (c) = 3 2+0 (f) + 1+0 (g) + 0+4 (c) =7 [0046] Dans cet exemple, la représentation 105 stocke les deux résultats ayant la validité la plus élevée pour chacune des paires de serveurs. Par conséquent, pour la paire de serveurs (1, 3) avec un historique d'un jour x 1, la mémoire cache 101 stocke si comme premier résultat, 5 indiquant que la paire de serveurs (1, 3) la probabilité la plus élevée, et s3 comme deuxième résultat indiquant que la paire de serveurs (1, 3) à une probabilité plus faible que si mais une probabilité plus élevée que tout autre résultat pour la paire de serveurs (1, 3) délivré à partir de l'espace de données 106. Avec un historique de deux jours x2, la mémoire cache 101 stocke pour les mêmes raisons si en tant que premier résultat, et s4 en tant que deuxième 10 résultat. [0047] Cependant, de la même manière également plus de deux routes sorties de l'espace de données 106 sont stockées dans la représentation 105 de la mémoire cache 101, si disponible. Pour la paire de serveurs (1, 2) la représentation 105 de la mémoire cache 101 stocke uniquement la route « a » en tant que premier résultat et aucun deuxième résultat. Si aucun 15 résultat n'est délivré leur du traitement, rien n'est stocké pour la paire de serveurs dans la mémoire cache 101. Par conséquent, la mémoire cache 101 est en mesure de répondre à toute requête de base de données sur la disponibilité des routes 201 entre deux serveurs respectifs 202. De plus, la mémoire cache 101 les modes de réalisation exemplaire est configurée pour délivrer tout résultat alternatif, si disponible, dans l'ordre de validité la plus 20 élevée. [0048] Dans certains modes de réalisation, en réponse au renvoi d'une notification d'invalidité à une requête de base_de données reçue, le nombre d'occurrences de requêtes de base de données reçues pour lesquelles une notification d'invalidité est renvoyée est accumulé. Le système géré par le système de base de données 100 est alors optimisé par des 25 problèmes identifiés de dépannage ou par la restructuration. Par conséquent, pour le réseau de communication de la FIG. 2, le réseau de communication est optimisé en incluant une 15 nouvelle route, en réponse au fait de déterminer que le nombre d'occurrences de notifications d'invalidité dépasse un seuil prédéfini, si les notifications d'invalidité indiquent une route manquante pour laquelle les requêtes de bases de données sont reçues de plusieurs clients 103. 5 [0049] Dans un mode de réalisation exemplaire, la requête de base de données est reçue au niveau de la mémoire cache provenant d'un client 103 vers la mémoire cache 101. La représentation de la mémoire cache 105 n'a aucun résultat pour la requête de base de données disponible. Afin d'exploiter les notifications d'invalidité renvoyées en réponse à la requête de base de données reçue, le système de bases de données 100 de la FIG. 1 est étendu par une 10 analyse supplémentaire desdites requêtes de bases de données, comme représenté à la FIG. 6. En réponse au renvoi d'une notification d'invalidité au client, la requête de base de données reçue pour laquelle aucun résultat n'est disponible dans la représentation 105 de la mémoire cache 105 est stockée 601. Si la même requête base de données est reçue à plusieurs reprises d'un client 103 et une notification d'invalidité est encore renvoyée pour cette requête de base 15 de données, le nombre d'occurrences de cette requête est accumulé. La requête de base de données ainsi que l'accumulation correspondante est par exemple stockée dans une autre mémoire cache 600. Dans d'autres modes de réalisation exemplaires, la requête de base de données avec l'accumulation correspondante est stockée dans la même mémoire cache 101 que la représentation 105. Dans certains modes de réalisation exemplaires, l'accumulation des 20 occurrences de la requête de base de données, pour laquelle une notification d'invalidité est renvoyée, est stockée pour tous les clients 103 en commun. Dans d'autres modes de réalisation exemplaires, l'accumulation de notifications d'invalidité renvoyées à la requête de base de données est stockée pour chaque client 103 séparément. Ces mode de réalisation ne sont cependant pas limités au stockage des requêtes de bases de données et à l'accumulation 25 correspondante de notifications d'invalidité de cette manière. [0050] Par exemple, la requête de base de données req 003 à la FIG. 6 était déjà reçue au niveau de la mémoire cache 101 une notification d'invalidité était renvoyée avant pour #invalide = 5 fois 601. À présent, req 003 est à nouveau reçue. La représentation 105 de la mémoire cache 101 n'a toujours pas de résultat disponible (S/O). Une notification d'invalidité 30 est envoyée au client 103 et l'accumulation stockée 601 des notifications d'invalidité pour req 003 est augmentée de un, produisant req 003 : #Invalide=6. [0051] Un seuil 602 pour #invalide est prédéterminé par un administrateur ou automatiquement par une fonction de seuil. Par ailleurs, le seuil 602 est fixé, dans certains 16 modes de réalisation exemplaires, pour toutes les requêtes de base de données stockées avec leur accumulation correspondante en commun. Dans d'autres modes de réalisation exemplaires, le seuil 602 fixé pour chacune des requêtes de base de données séparément. Dans d'autres modes de réalisation exemplaires, le seuil 602 est fixé pour des groupes de 5 requêtes de base de données. La détermination du seuil n'est cependant pas limitée à ces procédés. [0052] Si le nombre d'occurrences #invalides pour une ou plusieurs requêtes de bases de données stockée(s) 601 pour lesquelles les notifications d'invalidité ont été renvoyées dépasse le seuil prédéterminé 602, un rapport et/ou une alerte est générée pour ses requêtes et poussé 10 vers un optimiseur 604. L'optimiseur 604 est par exemple un administrateur évaluant les requêtes reçues fréquemment pour lesquelles une notification d'invalidité a été envoyée. Sur la base de l'évaluation, une optimisation du système de base de données 100 est effectuée. Dans un autre exemple, l'administrateur évalue le rapport concernant les problèmes de dépannage de l'espace de données. Dans un autre exemple, l'optimiseur 604 est un agent 15 logiciel évaluant le rapport et/ou et effectuant automatiquement l'optimisation des ajustements sur le système de base de données 100. Les fonctionnalités et le type d'optimiseur 604 ne sont pas limités à ces exemples. [0053] Par exemple, concernant le réseau de communication de la FIG. 4, la mémoire cache 101 reçoit à plusieurs reprises une requête de base de données d'un client 103 pour une 20 route de communication provenant du serveur 2 vers le serveur 6, le 5 décembre. La requête de base de données est reçue à plusieurs reprises au moment où les sous-routes e, f et g sont interrompues, de sorte que le serveur 6 n'est pas disponible à partir du serveur 2 au moment de recevoir à plusieurs reprises la requête de base de données. A chaque fois que la requête de base de données est reçue, une notification d'invalidité est envoyée au client 103 et le nombre 25 d'occurrences d'envoi d'une notification d'invalidité pour cette requête de base de données est accumulé dans une mémoire cache séparée 600. Lorsque la requête de base de données est reçue pour la quatrième fois et qu'une notification d'invalidité est envoyée au client 103, le nombre d'occurrences dépasse un seuil prédéterminé, qui était par exemple fixé à trois. Un rapport, incluant au moins la requête de base de données et le nombre d'occurrences, est 30 envoyé sous la forme d'une alerte à un agent logiciel contrôlant le réseau de communication. En réponse à cette alerte, l'agent logiciel note le problème de non-disponibilité du serveur 6 sur le réseau et fournit des actions de dépannage. 17 [0054] Dans un autre exemple, la mémoire cache reçoit fréquemment des requêtes de bases de données sur des routes incluant un serveur 9 comme serveur de destination qui n'est actuellement pas disponible dans le réseau de communication 200 à la FIG. 2 jusqu'à maintenant. Le serveur 9 est une destination populaire pour de nombreux clients 103. Puisque 5 le serveur 9 n'est pas connecté au réseau de communication 200, la mémoire cache 101 renvoie les notifications d'invalidité pour toutes les requêtes de bases de données incluant le serveur 9 en tant que destination. Lorsque le nombre d'occurrences de notifications d'invalidité pour ces requêtes de bases de données (qui sont potentiellement différentes mais incluent toutes incluent le serveur 9 en tant que destination) une ou plusieurs alertes et/ou 10 rapports sont délivré(e)s et envoyé(e)s à un outil d'analyse par ex. L'outil d'analyse lors de l'évaluation du ou des rapports résume qu'il existe une exigence de nombreux clients 103 de se connecter au serveur 9 pour être disponibles dans le réseau de communication. Le réseau - de communication peut alors être optimisé eu égard aux exigences des clients 103. [0055] Par conséquent, l'accumulation des occurrences de notifications d'invalidité pour les 15 requêtes de bases de données et l'établissement de rapports et/ou l'alerte lorsque le nombre d'occurrences dépasse un seuil prédéterminé, permet une optimisation et/ou le dépannage du système de base de données 100 ou de la configuration du système sous-jacente pour laquelle les résultats sont stockés dans la mémoire cache 101. Cela permet également d'adapter les systèmes de bases de données 100 aux exigences (éventuellement changeantes) des 20 clients 103 à partir desquelles les requêtes de base de données sont reçues. [0056] Dans certains modes de réalisation, la mémoire cache 101 est agencée pour récupérer un ou plusieurs résultats supplémentaire(s) délivré(s) à partir de l'espace de données 106 de la base de données 102 du système de base de données 100, dans lequel le ou les résultat(s) supplémentaire(s) est/sont envoyé(s) en plus du résultat envoyé à partir de la 25 représentation 105 de la mémoire cache 101. [0057] Dans un mode de réalisation exemplaire, la mémoire cache 101 en réponse à la réception d'une requête de base de données d'un client 103, récupère en plus un résultat délivré à partir de l'espace de données 106 de la base de données 102 du système de base de données 100 pour la requête de base de données reçue. Dans le mode de réalisation 30 exemplaire d'utilisation de la mémoire cache 101 dans une application pour un réseau de communication 200 de la FIG. 2, une requête de base de données d'un client 103 est reçue au niveau de la mémoire cache 101, demandant une route disponible pour la paire de serveurs (1, 4). La mémoire cache 101 dans ce mode de réalisation exemplaire stocke un résultat pour 18 toute paire de serveurs, si disponible. Pour la paire de serveurs (1, 4), elle stocke la paire clé - valeur . En réponse à la réception de la requête de base de données du client 103, le mémoire cache 101 récupère un résultat supplémentaire « a-e-h-i-d » délivré à partir de l'espace de données 106 et renvoie les deux paires clé - valeur et . [0058] L'avantage de ce mode de réalisation de la mémoire cache 101, en plus d'éviter une charge pour des requêtes de base de données invalides, est d'une part de répondre à toute requête de bases de données valide à partir de la représentation 105 de mémoire cache 101 d'une manière efficace en termes de stockage, et d'autre part de fournir des résultats 10 alternatifs pour une requête de base de données, le cas échéant, en consommant uniquement le temps de traitement si des résultats alternatifs sont demandés. [0059] Dans certains modes de réalisation, la représentation 105 de la mémoire cache 101 est mise à jour avec au moins un résultat récupéré en plus. [0060] Dans un mode de réalisation exemplaire, la mémoire cache 101 récupère un ou 15 plusieurs résultats supplémentaires dans l'espace de données 106 de la base de données 102 conformément à l'organigramme représenté à la FIG. 7. Cela se produit par exemple dans une situation où une requête demande plus de résultats que stockés dans la mémoire cache 101 ou une demande de suivi demande d'autres résultats en plus dudit résultat au moins provenant de la mémoire cache 101 en réponse à une première requête. En réponse à la 20 réception d'une requête de base de données 700, la mémoire cache 101 recherche 701, si un résultat pour la requête de base de données est disponible dans la représentation 105 de la mémoire cache 101. Si c'est faux, parce qu'aucun résultat n'est stocké ou parce qu'il y a un paramètre indiquant que le résultat n'est pas disponible pour la requête actuelle, par ex. comme expliqué pour l'exemple de réseau de la FIG. 2, la mémoire cache 101 renvoie une 25 notification d'invalidité 702. Ce chemin général, comme expliqué ci-dessus, est indiqué par des flèches en pointillés à la FIG. 7 de 701 à 702 à la FIN et de 703 à la FIN. Si un résultat est disponible dans la représentation 105, le résultat est renvoyé 703, comme dans l'exemple général. Dans ce mode de réalisation exemplaire, la mémoire cache 101 évalue, si un résultat supplémentaire 704 provenant de la base de données 102 pour le résultat déjà renvoyé est 30 demandé par la requête actuelle ou une requête de suivi, en réponse à une première requête. Si un ou plusieurs résultat(s) supplémentaire(s) est/sont demandé(s), la mémoire cache 101 tente de récupérer le ou les résultat(s) supplémentaire(s) 704 dans l'espace de données 106 de la 19 base de données 102. L'option pour récupérer un résultat supplémentaire 704 dans la base de données 102 est indiqué par des lignes continues à la FIG. 7. [0061] Il existe différentes possibilités de récupérer un ou plusieurs résultat(s) supplémentaire(s) 704 dans la base de données 102. Par exemple, en plus du résultat 5 renvoyé 703 provenant de la mémoire cache 101, la requête actuelle ou la requête de suivi demande tous les résultats disponibles dans la base de données 102, par ex. la mémoire cache 101 renvoie le résultat ayant la probabilité la plus élevée de rester inchangé dans le temps, mais la source de la requête décide elle-même des critères divergents, du meilleur critère pour son objectif, et si le résultat déjà délivré ne correspond pas bien à ces critères 10 individuels, la sélection d'un meilleur résultat est décidée selon ses propres critères et par conséquent nécessite tous les résultats. Dans un autre exemple, un ou plusieurs résultats supplémentaires au-delà du résultat déjà délivré 703 provenant de la mémoire cache est/sont demandé(s). Dans un troisième exemple, un ou plusieurs résultat(s) supplémentaire(s) est/sont récupéré(s) 704 dans la base de données 102 pour vérifier la validité des résultats mis en 15 mémoire cache. La récupération des résultats supplémentaires n'est pas limitée à ces exemples. Cependant, la récupération d'un résultat supplémentaire dans la base de données 102 demandée par une requête actuelle ou une requête du suivi inclut l'option d'un rapprochement 705 de la mémoire cache 101, qui conserve, met à jour ou supprime 101 les résultats actuels de la mémoire cache et/ou ses paramètres, par ex. indiquant la disponibilité. 20 Les détails sur ce rapprochement 705 de la mémoire cache 101 sont expliqués plus loin dans la description, lorsqu'il s'agit des mises à jour de la mémoire cache. [0062] Dans le mode de réalisation exemplaire de mise en oeuvre de la mémoire cache 101 pour le réseau de communication 200 de la FIG. 4, une requête de base de données d'un client 103 est reçue au niveau de la mémoire cache 101, le 5 décembre, demandant une route 25 disponible pour la paire de serveurs (1, 5). Le mémoire 101 stocke la route la plus valide sortie, depuis la dernière mise à jour de la mémoire cache 101 en tant que paire clé-valeur . Ayant stocké ce résultat 701, la mémoire cache 101 essaye de récupérer un résultat supplémentaire 703 délivré dans l'espace de données 106. Un résultat supplémentaire est délivré à partir de l'espace de donnée 106. Lors du traitement de la requête de base de 30 données sur la base de données 102, une nouvelle route « a-b-c-d » est sortie, puisque l'espace de données 106 a changé depuis la dernière mise à jour, et la route ayant la probabilité la plus élevée que les résultats dans la représentation 105 de la mémoire cache 101 restent valides dans le temps est à présent associée à la nouvelle route 201, sortie en plus à partir de l'espace 20 de données 106. Les probabilités des routes « a-e-h-i » et « a-b-c-d » sont comparées 706, et puisque la nouvelle route « a-b-c-d » à une probabilité plus élevée que les résultats de la représentation 105 de la mémoire cache 101 reste valide dans le temps, la paire clé-valeur précédemment stockée dans le cash 101 est remplacée 608 par la paire clé - 5 valeur incluant la nouvelle route en tant que valeur. La paire clé - valeur remplacée est alors renvoyée 607 au client 103. [0063] L'effet technique de ce mode de réalisation par rapport au système et procédés de US 2010/0036805 et US2016/0042278A est, en outre, que toute charge sur le système de base de données pendant le temps de la requête est évitée pour les requêtes de base de données 10 invalides, puisque les requêtes de base de données invalides font l'objet d'une réponse directement à partir de la mémoire cache 101 par une notification d'invalidité 702. Et d'autre part, pour chaque requête de base de données valide, la mémoire cache est en mesure de délivrer un ou plusieurs résultats. Si les résultats stockés dans la mémoire cache 101 sont délivrés par une transformation de données de l'espace de données 106, une recherche de 15 données sur l'espace de données 106 ou une sélection des résultats transformés et/ou recherchés dans l'espace de données 106. Cependant, les requêtes de base de données valides sont prouvées et partiellement mises à jour en réponse à la réception d'une requête de base de données au niveau de la mémoire cache 101. Par conséquent, les garanties que le résultat renvoyé est le résultat le plus valide au moment de la requête parmi tous les résultats délivrés 20 lors du traitement de la requête de base de données. [0064] Si l'on résume les modes de réalisation exemplaires susmentionnés, la mémoire cache 101 renvoie les résultats provenant de la représentation 105 conformément à la configuration de la mémoire cache 101. Cependant la configuration de la mémoire cache 101 concernant le renvoi des résultats n'est pas limitée à ces exemples. Conformément à un 25 exemple A à la FIG. 8, en réponse à la réception d'une requête de base de données 800a d'un client 103, la mémoire cache 101 renvoie un résultat 781a, s'il est stocké dans la représentation 105. Autrement, la mémoire cache 101 renvoie une notification d'invalidité. [0065] Conformément à un exemple B à la FIG. 8a, la représentation 105 de la mémoire cache 101 stocke plus d'un résultat délivré, et une indication d'une probabilité que les 30 résultats dans la représentation 105 de la mémoire cache 101 restent valides dans le temps. En réponse à la réception d'une requête de base de données 800b d'un client 103, la mémoire cache 101 renvoie le résultat 801b le plus valide. 21 100661 Conformément à un exemple C, la représentation 105 de la mémoire cache 101 stocke un ou plusieurs résultat(s) pour toute requête de base de données sortie lors du traitement. En réponse à la réception d'une requête de base de données 800e, la mémoire cache 101 stockant un résultat pour cette requête de base de données dans la représentation 105 récupère un résultat supplémentaire 802 délivré à partir de l'espace de données 106. Les résultats récupérés en plus 803 délivrés à partir de l'espace de données 106 sont utilisés en option pour rapprocher le résultat stocké dans la représentation 105 de la mémoire cache 101 et/ou renvoyer 801e des alternatives, en plus du résultat stocké dans la représentation 105, au client 103. Dans l'un quelconque de ces exemples, la mémoire cache 101 renvoie directement 10 une notification d'invalidité en réponse à la réception d'une requête de base de données, si aucun résultat n'est stocké dans la mémoire cache 101 pour la requête de base de données. En outre, toute charge de traitement utilisée par des requêtes de bases de données invalides sur le système de bases de données 100 est évitée au moment de la requête de base de données, indépendamment de la manière dont la réponse est apportée aux requêtes de base de données 15 valides par la mémoire cache 101. [0067] Dans certains modes de réalisation, la mémoire cache 101 stocke deux représentations ou plus, dans lesquelles chaque représentation 105 inclut un ou plusieurs résultats pour toute requête de base de données pour laquelle l'espace de données 106 des bases de données 102, différent de l'espace de données 106 des bases de données 102 d'autres représentations, est en 20 mesure de délivrer un résultat. [0068] Dans un mode de réalisation exemplaire, le système de base de données 100 inclut une pluralité de bases de données 102 provenant de différents locataires. Les locataires utilisent le système de base de données 100 via les requêtes de bases de données provenant de leurs clients respectifs 103. Dans certains modes de réalisation exemplaires, les requêtes de base de 25 données des clients 103, demandant des résultats traités sur les espaces de données 102 de leur locataire respectif. Dans d'autres modes de réalisation exemplaires, les requêtes de base de données des clients 103, demandant des résultats en tant que combinaison de traitement des résultats sur l'espace de données 106 provenant de locataires différents. Par exemple, dans un environnement en nuage, incluant une pluralité de serveurs provenant de différents 30 fournisseurs (locataires) les clients 103 souhaitent utiliser les ressources des serveurs de différents fournisseurs. [0069] Dans certains modes de réalisation, la représentation 105 de la mémoire cache 101 inclut un ou plusieurs résultats prédits pour toute requête de base de données, prédisant les 22 résultats délivrés lors du traitement de toute requête de base de données en évaluant un historique des résultats. [0070] Dans un mode de réalisation exemplaire, provenant de l'historique des perturbations 400 dans le réseau de communication 200, un pronostic pour chaque jour du 5 prochain mois sont précalculés. La représentation 105 de la mémoire cache 101 a alors une granularité temporelle présentant pour chaque jour du mois suivant les résultats prédits et une probabilité prédite que les résultats dans la présentation 105 de la mémoire cache 101 restent valides dans le temps. À partir du nombre précis de perturbations, une probabilité que les résultats de la présentation 105 de la mémoire cache 101 restent valides dans le temps, pour 10 chacun des résultats stockés pour chaque jour est calculée. Une requête de base de données reçue au niveau de la mémoire cache 101 inclut alors une date à laquelle le résultat demandé est renvoyé à partir de la présentation-105 de la mémoire cache 101. [0071] Dans certains modes de réalisation, la mémoire cache 101 est mise à jour sur la base des probabilités que les résultats dans la représentation 105 de la mémoire cache 101 restent 15 valides dans le temps. [0072] Dans un mode de réalisation exemplaire, le système de base de données 100 est mis en oeuvre par un groupe de répartition de charge 900 présenté à la FIG. 9 incluant une mémoire cache 101 stockant dans la représentation 105 pour tout groupe de serveurs 901 un ou plusieurs serveurs 902 disponible(s) pour recevoir des tâches. Pour distribuer les tâches, la 20 mémoire cache 101 reçoit une requête de base de données provenant de répartiteur de charge 900 demandant un groupe de serveurs 901 incluant un serveur 902 auquel une tâche est alors distribuée. [0073] Le groupe de répartition de charge 900 stocke pour chaque groupe de serveurs 901 l'utilisation 903 des serveurs respectifs 902 inclus dans les groupes de serveurs respectifs 901. 25 Le groupe de répartition de charge 900 distribue une tâche à un groupe de serveurs 901 et/ou à un serveur respectif 902 de celui-ci, si le groupe de serveurs 901 inclut un serveur 902 présentant une utilisation 903 de 50 % ou moins. [0074] La mémoire cache 101 est initialisée en déterminant par une machine de traitement 104 sur l'espace de données 106 tous les serveurs 902 dans les groupes de serveurs 30 respectifs 901 qui présentent une utilisation 903 de 50 % de ou moins. Les outils de traitement 904 pour le groupe de serveurs A les résultats 4 et 5, pour le groupe de serveurs B 23 le seul résultat 3 pour le groupe de serveurs C les résultats 2,3 et 4. La mémoire cache 101 stocke uniquement un serveur pour tout groupe de serveurs 901 sorti lors du traitement. [0075] Une probabilité que le serveur 902 dans le groupe de serveurs respectif 901 est disponible pour recevoir des tâches distribuées à partir du groupe de répartition de charge 900 5 dans le temps est plus élevée que la probabilité pour un autre serveur, si l'utilisation du serveur est moins importante que l'utilisation de l'autre serveur. Par exemple, le serveur 5 groupe de serveurs A avec une utilisation de 35 % à une probabilité plus élevée d'être disponible pour recevoir une tâche, puisque la charge de travail du serveur 5 est moins importante que le serveur 4 du groupe A avec une utilisation de 45 %. Le serveur 4 du groupe 10 de serveurs A est proche de passer à une utilisation de 50 % et n'est en outre plus disponible pour recevoir des tâches dans cet exemple. [0076] Utilisation du serveur 5 peut changer et passer de 35 % à 40 % ou plus. Tant qu'elle ne dépasse pas l'utilisation du serveur 4, la probabilité d'être disponible pour recevoir une tâche est toujours plus élevée que la probabilité d'être disponible pour recevoir une tâche comme 15 pour le serveur 4. En outre, les données stockées dans l'espace de données 106 du groupe de répartition de charge 900 peut changer mais les résultats délivrés pour le groupe de serveurs A qui sont les serveurs 4 et 5 restent. D'autre part, les utilisations peuvent également diminuer sans changer les résultats délivrés et en outre, sans influencer la décision de distribuer une tâche à un serveur respectif 902 dans le groupe de serveurs A. La décision de distribution est 20 prise lors du traitement des résultats, par ex. si le serveur 4 augmente l'utilisation dépassant 50 % sans délivrer de résultat, ou si le serveur 4 diminue l'utilisation en dessous de 35 % et en outre la préférence est donnée au serveur 5 ci-dessus, lorsqu'un résultat est choisi pour être stocké dans la mémoire cache 101. Par conséquent, lors du traitement des résultats sur la machine informatique 104, la mémoire cache 101 stocke le résultat ayant la probabilité la plus 25 élevée que le résultat délivré lors du traitement reste inchangé plutôt que de stocker le résultat ayant la probabilité la plus élevée que les données, sur l'espace de données 106 auquel le résultat est lié, changent. [0077] Par conséquent, dans l'exemple de la FIG. 9 décrite ci-dessus, la mémoire cache 101 stocke pour le groupe de serveurs A le serveur 4 avec une utilisation de 35 %, pour le groupe 30 de serveurs B le serveur 3 avec une utilisation de 30 % et pour le groupe de serveurs C le serveur 2 avec une utilisation de 25 %. [0078] La mémoire cache 101 reçoit une requête de base de données provenant du groupe de répartition de charge 900 pour fournir un serveur 902 provenant du groupe de serveurs B qui 24 est disponible pour recevoir une tâche. La mémoire cache 101 renvoie le serveur 3 puisque c'est le serveur qui a la probabilité la plus élevée de rester disponible dans le temps, ayant l'utilisation la plus faible 903. Le groupe de répartition de charge 900 distribue alors la tâche au serveur 3 dans le groupe de serveurs B. 5 [0079] Dans un autre exemple, chaque groupe de serveurs 901 inclut un groupe de répartition de charge supplémentaire contrôlant la distribution des tâches dans le groupe de serveurs respectif 901. Le groupe de répartition de charge 900 stocke dans l'espace de données 106 l'utilisation 903 pour tous les serveurs 902 dans les groupes de serveurs respectifs 901. Lors de l'initialisation de la mémoire cache 101, la mémoire cache 101 stocke pour chaque groupe 10 de serveurs 901 l'utilisation 903 d'un serveur 902 ayant l'utilisation la plus faible 903 parmi tous les serveurs 902 du groupe de serveurs respectif 903. Dans un autre exemple, la moyenne de toutes les utilisations 903 des serveurs 902 dans chacun des groupes de serveurs 901 est stockée. Par conséquent, la mémoire cache 101 stocke pour le groupe de serveurs A une utilisation moyenne de 59 %, pour le groupe de serveurs B une utilisation moyenne de 61 % 15 et pour le groupe de serveurs C une utilisation moyenne de 54 %. [0080] La mémoire cache 101 reçoit une requête de base de données provenant du groupe de répartition de charge 900 pour fournir un groupe de serveurs 901 ayant stocké l'utilisation la plus faible 903 parmi toutes les utilisations stockées pour les groupes de serveurs 901. La mémoire cache 101 renvoie le groupe de serveurs C avec une utilisation stockée de 25 % ou 20 le groupe de serveurs C avec une utilisation stockée moyenne de 54 %. Le groupe de répartition de charge 900 distribue alors la tâche au groupe de serveurs C, si le répartiteur de charge inclus en plus dans le groupe de serveurs C distribue par ailleurs la tâche à un ou plusieurs des serveurs 902 du groupe de serveurs C. [0081] Dans un autre exemple, le groupe de serveurs C est affecté par une panne ou n'est plus 25 connectée au groupe de répartition de charge 900. En réponse à une panne ou une perte de connexion, la mémoire cache 101 effectue une mise à jour. Par conséquent, en raison de cette mise à jour de la mémoire cache 101, aucun résultat n'est stocké dans la mémoire cache 101 pour le groupe de serveurs C. Alternativement, le résultat déjà stocké dans la représentation 105 de la mémoire cache 101 pour le groupe de serveurs C est mis à jour avec 30 un paramètre définissant une connexion au groupe de serveurs C ne devant pas être disponible jusqu'à nouvel ordre ou pendant une période de temps respective. La mémoire cache 101 reçoit une requête de base de données provenant du groupe de répartition de charge 900 pour fournir un serveur 902 du groupe de serveurs C qui est disponible pour recevoir une tâche. La 25 mémoire cache 101 renvoie alors une notification d'invalidité, puisqu'aucune tâche ne peut être distribuée par le groupe de répartition de charge 900 au groupe de serveurs C. Dans un exemple où la mémoire cache reçoit une requête de base de données du groupe de répartition de charge 900 pour fournir un groupe de serveurs 901 ayant stocké l'utilisation la plus 5 faible 903 parmi toutes les utilisations stockées pour les groupes de serveurs 901. La mémoire cache 101 renvoie le groupe de serveurs A si une utilisation moyenne de 59 % est stockée dans la mémoire cache 101 pour le groupe de serveurs A. Ou la mémoire cache 101 renvoie le groupe de serveurs B si une utilisation de 30 % du serveur 902 ayant l'utilisation la plus faible dans le groupe de serveurs 901 a été stockée dans la mémoire cache 101. 10 [0082] Dans ce mode de réalisation, la mise à jour de la mémoire cache 101 tient compte des résultats délivrés non directement liés aux données de l'espace de données 106 de la base de données 102 mais liée à une agrégation de données dans l'espace de données 106. [0083] Comme déjà mentionné, une initialisation et/ou une mise à jour de la mémoire cache 300, telle que représentée à la FIG. 3 est un mécanisme, qui est en général séparé du 15 mécanisme de réponse aux requêtes 301. La mise à jour de la mémoire cache peut cependant être effectuée de toute manière appropriée. Par conséquent, le mécanisme de mise à jour n'est pas limité aux modes de réalisation décrits dans les présentes. [0084] Dans certains modes de réalisation, la mise à jour de la mémoire cache 101 inclut le remplacement d'un premier résultat de la représentation 105 par un deuxième résultat pour la 20 même requête de base de données en réponse à la détermination selon laquelle le deuxième résultat a une probabilité plus élevée de rester valide dans le temps que le premier résultat. [0085] Dans certains modes de réalisation, la mise à jour de la mémoire cache 101 inclut un remplacement d'une valeur du résultat. Dans certains modes de réalisation, la mise à jour de la mémoire cache 101 inclut la suppression d'un résultat stocké à partir de la 25 représentation 105 de la mémoire cache 101, si la mise à jour de la mémoire cache 101 permet d'obtenir un résultat stocké par la représentation de la mémoire cache qui n'existe plus dans l'espace de données 106 des bases de données 106. Dans certains modes de réalisation, la mise à jour de la mémoire cache 101 inclut la mise à jour d'un ou paramètres du résultat, par ex. définissant les conditions de disponibilité du résultat. 30 [0086] Dans certains modes de réalisation exemplaires, la représentation 105 de la mémoire cache 101 est mise à jour en reconnaissant que l'espace de données 106 de la base de données 102 dans le système de base de données 100 a changé. Alors les résultats et/ou les 26 paramètres dans la représentation 105 de la mémoire cache 101 qui sont affectés par le changement sont recalculés par la machine informatique 104 au moment de reconnaître le changement. Lors de la sortie de plus d'un résultat pour une requête de base de données recalculée, celui ayant la probabilité la plus élevée que les résultats dans la représentation 105 5 de la mémoire cache 101 restent valides dans le temps est choisi pour être stocké dans la représentation 105 de la mémoire cache 101 lors d'une mise à jour. Si la mémoire cache 101 stocke plus d'un résultat dans la représentation 105, les résultats ayant la probabilité la plus élevée sont là encore choisis. [0087] Dans certains modes de réalisation, la mémoire cache 101 est mise à jour sur une base 10 planifiée récurrente. En outre, toute requête de base de données, pour laquelle les données dans l'espace de données 106 lié aux résultats pour les requêtes de bases de données ont _changé puisque la dernière mise à jour planifiée sont recalculées, afin de déterminer si les résultats délivrés ou leurs paramètres ont également changé. Dans certains autres modes de réalisation exemplaires, le total de toute requête de base de données recalculée pour mettre à 15 jour l'intégralité de la représentation 105 de la mémoire cache 101. Par exemple, un nouveau serveur 9 est introduit dans le réseau de communication 200 de la FIG. 2. La représentation 105 de la mémoire cache 101 stocke pour toute permutation des serveurs 202, c.-à-d. toute paire de serveurs un ou plusieurs résultat(s) délivré(s). Par conséquent, une mise à jour déclenchée en ajoutant un nouveau serveur amène un recalcul complet de la 20 représentation 105 de la mémoire cache 101 en tenant compte de toutes les nouvelles paires de serveurs incluant le serveur 9 nouvellement introduit. Si plus d'un résultat est délivré lors du recalcul des résultats pour toute requête de base de données, un ou plusieurs résultats est/sont choisi(s) pour être stocké(s) dans la mémoire cache 101 afin que la probabilité la plus élevée que les résultats dans la représentation 105 de la mémoire cache 101 restent valides 25 dans le temps. [0088] Dans d'autres modes de réalisation exemplaires, la représentation 105 de la mémoire cache 101 est mise à jour s'il est demandé de récupérer 704 un ou plusieurs résultats supplémentaires dans la base de données 102 tel que représenté à la FIG. 7. En général, la mémoire cache 101 mise à jour dans un mécanisme 300 séparé par un mécanisme 301 de 30 réponse aux requêtes. Comme déjà mentionné, une réponse à la requête est alors directement et de manière adéquate obtenue_ à partir de la mémoire cache 101 par le résultat stocké 703 ou une notification d'invalidité 702 (de manière équivalente à la FIG.3, 306). Si une requête ou une requête de suivi demande un ou plusieurs résultats supplémentaires par rapport au résultat 27 renvoyés à partir de la mémoire cache 101, il existe une option supplémentaire pour un rapprochement 705 de la mémoire cache 101, associant les deux mécanismes 300, 301, en général séparés. [0089] Comme déjà mentionné, il existe différentes possibilités de récupérer un ou plusieurs 5 résultat(s) supplémentaire(s) dans la base de données 102 et en outre, il existe différentes possibilités de rapprochement 705 de la mémoire cache, en fonction des résultats supplémentaires récupérés dans la base de données 102. Si la requête actuelle ou requête de suivi demande, en plus du résultat déjà renvoyé à partir de la mémoire cache 101, tous les résultats qui sont actuellement disponibles dans la base de données 102 un rapprochement de 10 la mémoire cache 101 inclut l'ajout d'au moins un résultat supplémentaires récupérés pour la requête dans la mémoire cache 101 et en outre, l'augmentation des résultats pour la requête stockée dans la représentation 105 et/ou le remplacement des résultats pour la requête stockée dans la représentation 105. [0090] Pour sélectionner les résultats provenant de tous les résultats supplémentaires qui sont 15 stockés pour une mise à jour de la mémoire cache 101, la probabilité de rester inchangé dans le temps est comparée aux résultats déjà stockés dans la mémoire cache 101. Si la probabilité des résultats supplémentaires est la même ou est plus faible que la probabilité des résultats déjà stockés dans la mémoire cache 101, aucune mise à jour n'est effectuée. Si la probabilité des résultats supplémentaires est plus élevée les résultats déjà stockés dans la mémoire 20 cache 101, les résultats stockés sont remplacés par des résultats supplémentaires ayant une probabilité plus élevée de rester inchangés dans le temps. Si la récupération dans la base de données 102 indique qu'il n'existe actuellement aucun résultat disponible pour la requête, par ex. à la FIG. 2, un serveur a été complètement supprimé du réseau et plus aucune route vers ce serveur n'est disponible, la mémoire cache 101 mise à jour supprimant tous les résultats pour 25 la requête provenant de la mémoire cache 101. Dans certains autres exemples, les résultats et la probabilité de rester inchangé dans le temps sont égales à celles des résultats supplémentaires récupérés dans la base de données 102, mais les paramètres ont changé. Les paramètres des résultats sont alors mis à jour. Les résultats supplémentaires récupérés, qu'ils soient ou non ajoutés à la mémoire cache en 705 sont renvoyés 703. Comme déjà expliqué 30 auparavant, le rapprochement de la mémoire cache est uniquement une option supplémentaire lors de la récupération des résultats supplémentaires dans la base de données mais il ne doit pas être effectué uniquement lorsque les résultats supplémentaires sont demandés par une requête actuelle ou de suivi. 28 [0091] Dans un autre exemple, le requête actuelle ou de suivi demande de récupérer un ou plusieurs résultat(s) supplémentaire(s) dans la base de données 102 au-delà du ou des résultats déjà stockés dans la représentation 105 de la mémoire cache 101. En outre, la mémoire cache 101 récupère dans tout autre cas aucun résultat ou un résultat différent de celui déjà 5 stocké dans la représentation 105. La probabilité de rester inchangé dans le temps pour le résultat différent est alors comparée à la probabilité du résultat déjà stocké dans la mémoire cache. Si la probabilité de résultat supplémentaire est égale plus faible que la probabilité du résultat déjà stocké dans la représentation 105 de la mémoire cache 101, le résultat n'est pas mis à jour. Autrement, le résultat déjà stocké dans la mémoire cache 101 ayant une probabilité 10 plus faible de rester inchangé est remplacé par le résultat supplémentaire ayant une probabilité plus élevée de rester inchangé dans un rapprochement de la mémoire cache 101. Les changements dans les paramètres d'un résultat peuvent également être mis à jour. Si aucun résultat supplémentaire n'est récupéré dans la base de données 102, dans cet exemple, cela signifie uniquement que la base de données ne délivre pas de résultats supplémentaires au-15 delà des résultats déjà stockés dans la mémoire cache 101. Puisque la mémoire cache 101 ne peut pas distinguer, s'il n'y a plus aucun résultat pour la requête à récupérer dans la base de données 102, ou s'il n'y a aucun résultat supplémentaire uniquement, cela signifie que la mémoire cache 101 ne peut pas non plus distinguer, si le résultat déjà stocké peut être supprimé par une mise à jour. Par conséquent, dans cet exemple, la mémoire cache 101 20 conserve ou remplace les résultats stockés dans la mémoire cache 101 et/ou les paramètres des résultats mais ne supprime pas les résultats provenant de la mémoire cache 101 dans le rapprochement de la mémoire cache 101. [0092] Dans un autre exemple, la requête actuelle ou de suivi demande de récupérer un plusieurs résultat(s) supplémentaire(s) 704 pour vérifier la validité du résultat renvoyé 703. 25 C'est par exemple une option dans des situations où la mémoire cache est mise à jour de manière périodique pour déclencher une mise à jour intermédiaire concernant uniquement la requête actuelle. Un rapprochement de la mémoire cache 101 utilisant le ou les résultat(s) supplémentaire(s) récupéré(s) dans la base de données 102 conserve alors le résultat dans la mémoire cache 101, si les résultats supplémentaires ont une probabilité égale ou plus faible de 30 rester inchangés. Le rapprochement met à jour la mémoire cachel 01, si la probabilité des résultats supplémentaires est plus élevée. Le rapprochement supprime les résultats stockés dans la mémoire cache 101, si aucun résultat supplémentaire n'est récupéré dans la base de données 102. Le rapprochement met à jour les paramètres des résultats qui ont changé entre- temps. 29 [0093] La mise à jour de la mémoire cache 101 basée sur la probabilité que les résultats dans la représentation 105 de la mémoire cache 101 restent valides dans le temps indiquent qu'en réponse à la réception d'une requête de base de données d'un client 103 des résultats fiables sont renvoyés au client 103; des résultats qui sont cohérents avec une probabilité élevée avec 5 les résultats délivrés à partir de l'espace de données 106 de la base de données 102 dans le système base de données 100. De plus, cela minimise le nombre de mises à jour de la mémoire cache 101, comme déjà expliqué auparavant. [0094] La FIG. 10 est une représentation sous forme de diagramme du composant interne d'une machine informatique 104. La machine informatique 104 inclut un ensemble 10 d'instructions pour amener la machine informatique 104 à effectuer l'un quelconque des procédés discutés dans les présentes lorsqu'elles sont exécutées par la machine informatique 104-. Le machine informatique 104 inclut un ou plusieurs processeurs 1001, une mémoire principale 1002 et un dispositif d'interface de réseau 1003 qui communiquent les uns avec les autres via un bus 1004. En option, la machine informatique 104 peut par ailleurs inclure une 15 mémoire statique 1005 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 1006. Le dispositif d'interface de réseau 1003 connecte la machine informatique 104 au moins aux clients 103 ainsi qu'aux bases de données 102 du système de base de données 100. 20 [0095] Dans des modes de réalisation dans lesquels la machine informatique 104 héberge aussi la mémoire cache 101, la mémoire cache 101 peut être conservée dans la mémoire principale 101. Un ensemble d'instructions exécutables par ordinateur (c.-à-d. un code de programme informatique) réalisant un quelconque ou tous les procédés décrits ci-dessus, réside entièrement, ou au moins partiellement, sur un support lisible par ordinateur, par ex., la 25 mémoire principale 1002 (représentée comme une des entités fonctionnelles de traitement de requête de base de données 1007 incluant la fonctionnalité pour recevoir et traiter les requêtes de base de données incluant l'opération de détermination et la fonctionnalité de mise à jour de mémoire-cache 1008 et/ou dans le ou les processeurs 1001 et/ou dans la mémoire statique 1005. Les instructions peuvent par ailleurs être transmises ou reçues sous forme de 30 signal propagé via Internet par l'intermédiaire du dispositif d'interface de réseau 1003. Le fonctionnement basique de la machine informatique 104 incluant une interface d'utilisateur et un réseau de communication est contrôlé par un système d'exploitation qui est aussi situé dans la mémoire principale 1005, le ou les processeur(s) 1001 et/ou la mémoire statique 1005. 30 [0096j En général, les routines exécutées pour mettre en oeuvre les modes de réalisation de l'invention, qu'elles soient mises en oeuvre 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 ». Le code de programme comprend typiquement des instructions lisibles par ordinateur qui résident à des moments divers dans des dispositifs divers de mémoire et de stockage dans un ordinateur, et qui lorsqu'il est lu et exécuté par un ou plusieurs processeurs dans un ordinateur, amène cet ordinateur effectuer les opérations nécessaires pour exécuter 10 des opération et/ou éléments propres aux aspects variés des modes de réalisation de l'invention. Les instructions d'un programme, lisibles par ordinateur, pour réaliser 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. 15 [0097] Divers codes de programme décrits dans les présentes peuvent être identifiés, selon l'application dans laquelle ils sont mis en oeuvre, 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 20 par ladite nomenclature. Par ailleurs, au vu du nombre généralement infini de moyens par lesquels les programmes informatiques peuvent être organisés selon des routines, procédures, procédés, modules, objets, et similaires, ainsi que les façons variées d'affecter les fonctionnalités d'un programme parmi diverses couches de logiciels qui sont hébergés dans un ordinateur typique [par ex., les systèmes d'exploitation, les bibliothèques, les interfaces 25 d'application de programme (API), les applications, les petites applications (applets) etc.], on 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. [0098] Le code de programme mis en oeuvre dans tout(e) application/module décrit(e) dans 30 les présentes peut être distribué individuellement ou collectivement comme un produit de programme, sous une variété de formes. En particulier, le code de programme peut-être distribué en utilisant un support de stockage lisible par ordinateur ayant des instructions de 31 programme lisibles par ordinateur pour amener un processeur à réaliser des aspects des modes de réalisation de l'invention. [0099] 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 5 amovibles, mis en oeuvre dans tout procédé ou technologie pour le stockage d'informations, telles que les instructions lisibles par ordinateur, des structures de donnée, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent aussi inclure une mémoire à accès aléatoire (RAM), une mémoire à lecture seule (ROM), une mémoire à lecture exclusivement, programmable et effaçable (EPROM), une mémoire à 10 lecture exclusivement, programmable et effaçable électriquement (EEPROM), une mémoire flash, ou autre technologie de support de mémoire à état défini, un disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou autre stockage optique, cassettes magnétiques, bande d'enregistrement magnétique, disque de stockage magnétique ou autres dispositifs de stockage magnétique, ou tout autre support pouvant être utilisé pour stocker 15 l'information désirée et qui peut à ê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 autres ondes électromagnétiques se propageant, ondes é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 20 être téléchargées sur un ordinateur, un autre type d'appareil de traitement de données programmable ou autre dispositif de support de stockage lisible par ordinateur, ou vers un ordinateur externe ou vers un dispositif de stockage externe via un réseau. [00100] Les instructions de programme lisibles par ordinateur, stockées sur un support lisible par ordinateur, peuvent être utilisées pour amener un ordinateur, d'autres types 25 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 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 informatiques peuvent 30 être fournies à un ou plusieurs processeurs d'un ordinateur à usage général, un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées à l'aide du ou des 32 - 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 et/ou diagrammes séquentiels. [00101] 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 5 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 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 10 mesure où les termes « inclut », « ayant », « a », « avec », « compris de » ou des variantes de ceux-ci, sont utilisés, dans la description détaillée ou les revendications, ces termes sont censés être inclusifs de façon similaire au terme « comprenant ». [00102] Bien que l'invention ait été illustrée par une description de divers modes de réalisation et bien que ces modes de réalisation aient été décrits de façon considérablement 15 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 apparaitront 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 représentés et décrits. Par conséquent, il est 20 possible de s'éloigner de ces détails sans s'éloigner de l'esprit REVENDICATIONS1. Un procédé de traitement des requêtes de base de données pour récupérer les résultats d'un calcul de données d'un système de base de données à partir d'une mémoire cache, la mémoire cache stockant une représentation d'un espace de données d'au moins une base de 5 données d'un système de base de données, la représentation comprenant au moins un résultat pour toute requête de base de données pour laquelle l'espace de données de ladite au moins base de données du système de base de données est en mesure de délivrer un résultat, le procédé comprenant ; au niveau de la mémoire cache : en réponse à la réception d'une requête de base de données, la détermination, en 10 utilisant la représentation stockée, si l'espace de données de ladite au moins base de données est en mesure de délivrer au moins un résultat pour la requête de base de données, dans l'affirmative, le renvoi d'au moins un résultat pour la requête de base de données ; autrement, le renvoi d'une notification d'invalidité. 15 2. Le procédé selon la revendication 1, dans lequel la représentation comprend un certain nombre d'enregistrements de données, chaque enregistrement de données comprenant une combinaison clé - valeur, dans laquelle la requête base de données comprend une clé d'au moins un enregistrement de données et ledit au moins résultat pour la requête de base de 20 données comprend au moins une valeur dudit au moins enregistrement de données. 3. Le procédé selon la revendication 2, dans lequel la combinaison clé - valeur représente un chemin de connexion entre un noeud d'origine et un noeud de destination sur un réseau de communication, dans lequel la clé précise un noeud d'origine et un noeud de destination dans le réseau 25 de communication et la valeur est au moins un chemin du noeud d'origine au noeud de destination, dans lequel le noeud d'origine est connecté directement ou via au moins un noeud intermédiaire au noeud de destination. 4. Le procédé selon l'une quelconque des revendications 1 à 3, dans lequel la 30 représentation comprend pour au moins une requête de base de données, moins de résultats que l'espace de données de ladite au moins base de données du système de base de données est en mesure de délivrer, les résultats moindres formant un sous-espace de résultat, dans 34 - lequel le sous-espace de résultat est donné sur la base d'une probabilité que les résultats dans la représentation la mémoire cache restent valides dans le temps. 5. Le procédé selon la revendication 4, dans lequel la représentation comprend au moins deux résultats pour les requêtes de bases de données qui sont délivrés lors du calcul de la 5 requête de base de données sur l'espace de données de ladite au moins base de données du système de base de données, dans lequel le renvoi dudit au moins résultat pour la requête de base de données provenant de la mémoire cache comprend le renvoi d'au moins l'un desdits deux résultats ayant l'indicateur indiquant la probabilité la plus élevée de rester valide dans le temps. 10 6. Le procédé selon l'une quelconque des revendications 1 à 5, comprenant par ailleurs : en réponse au renvoi d'une notification d'invalidité à une requête de base de données reçue, l'accumulation d'un certain nombre d'occurrences de la requête de base de données reçue pour laquelle une notification d'invalidité est renvoyée ; l'optimisation du réseau de communication, en réponse au fait de déterminer que le 15 nombre d'occurrences dépasse un seuil prédéfini. 7. Le procédé selon l'une quelconque des revendications 1 à 6, comprenant par ailleurs : la récupération d'un ou de plusieurs résultats supplémentaires provenant de la ou des bases de données du système de données, le renvoi du ou des résultat(s) supplémentaire(s) en plus du résultat renvoyé à partir de la 20 représentation de la mémoire cache. 8. Le procédé selon la revendication 7, la mise à jour de la représentation de la mémoire cache avec un ou plusieurs résultat(s) supplémentaire(s) récupéré(s). 9. Un procédé selon l'une quelconque des revendications 1 à 8, comprenant par ailleurs : la mise à jour de la mémoire cache sur la base de la probabilité que les résultats dans la 25 représentation de la mémoire cache restent valides dans le temps. 10. Le procédé selon la revendication 9, dans lequel a mise à jour de la mémoire cache comprend par ailleurs : 35 le remplacement d'un premier résultat de la représentation par un deuxième résultat pour la même requête de base de données en réponse au fait de déterminer que le deuxième résultat a une probabilité plus élevée de rester valide dans le temps que le premier résultat. 11. Une mémoire cache pour traiter les requêtes de bases de données agencées pour 5 exécuter le procédé de l'une quelconque des revendications 1 à 10. 12. Un système de base de données comprenant une mémoire cache agencée pour exécuter le procédé de l'une quelconque des revendications 1 à 10. 13. Un programme informatique pour traiter les requêtes de base de données à l'aide d'une mémoire cache comprenant des instructions de code stockées sur un support de 10 stockage lisible par ordinateur pour exécuter le procédé selon l'une quelconque des revendications 1 à 10, lorsque ledit programme est exécuté sur un ordinateur.