Brevet FR3094509A1 — publié le 20201002

Description Titre de l'invention : Système de stockage redondant de données, procédé et programme d'ordinateur correspondants. Domaine technique [0001] Le domaine de l'invention est celui du stockage de données ou d'informations dans des dispositifs de stockage, sous forme de bases de données. Plus précisément, l'invention concerne une technique de stockage redondant de données. Art antérieur [0002] Une base de données permet de stocker sous forme structurée, et d'accéder par requête, à un ensemble de données ou d'informations en rapport avec un thème ou une activité. Un tel stockage s'opère le plus souvent sur un ou plusieurs serveurs de stockage, ou disques de stockage, sous forme informatisée. [0003] Afin d'améliorer la rapidité et la fiabilité d'accès aux données contenues dans une base de données, il a été proposé de réaliser un stockage redondant des données : le contenu de la base de données est répliqué intégralement une ou plusieurs fois, et chacune des copies identiques de ce contenu est stockée sur un serveur ou support de stockage distinct. Ces dispositifs de stockage peuvent être ou non géographiquement distribués. [0004] Ce type de réplication présente le double avantage suivant : d'une part, il améliore la disponibilité de la base de données. En effet, l'existence de plusieurs copies identiques du contenu de la base de données permet de répondre à un plus grand nombre de requêtes d'accès simultanées aux données de la base ; d'autre part, il améliore la durabilité de la base de données, en accroissant la résistance aux pannes qui pourraient affecter l'un des dispositifs de stockage. Même en cas de défaillance de l'un des dispositifs rendant impossible l'accès à la copie qu'il contient, il reste en effet possible de répondre aux requêtes d'accès aux données de la base, en inten-ogeant un autre dispositif détenant une autre copie identique du contenu de la base de données. [0005] Si cette technique de stockage redondant des données est intéressante, elle pourrait cependant être optimisée selon plusieurs aspects. [0006] Tout d'abord, ce stockage redondant est consommateur en ressources de stockage, tant sur le plan énergétique, qu'en termes d'espace de stockage. Il existe donc un besoin d'une technique de stockage redondant de données qui soit plus économe en ressources. [0007] Ensuite, si la redondance des données permet d'améliorer leur disponibilité, les per- 2 formances d'accès aux données pourraient encore être améliorées, en réduisant le temps nécessaire à leur récupération depuis les dispositifs de stockage. 11 existe donc un besoin dune technique de stockage redondant des données qui présente des performances accrues d'accès aux données. [0008] En d'autres termes, il existe un besoin d'une technique de stockage redondant de données, qui soit aussi durable que les techniques de l'art antérieur, mais qui soit plus économe, plus performante, tout en offrant une disponibilité accrue par rapport aux solutions existantes. Exposé de l'invention [0009] L'invention répond à ce besoin en proposant un système de stockage redondant de données, comprenant une pluralité de dispositifs de stockage de données, les données étant structurées sous forme d'une pluralité d'enregistrements. Un premier dispositif de la pluralité de dispositifs de stockage stocke les enregistrements selon une première séquence ordonnée d'enregistrements et au moins un deuxième dispositif de la pluralité de dispositifs de stockage stocke au moins un sous-ensemble des enregistrements selon au moins une deuxième séquence ordonnée d'enregistrements distincte de la première séquence ordonnée pour le ou les sous-ensemble(s). [0010] Ainsi, l'invention repose sur und approche tout à fait nouvelle et inventive du stockage redondant de données. En effet, und telle technique de stockage redondant de données repose, classiquement, sur une réplication du contenu de la base de données, niais sur un stockage du contenu répliqué en suivant un ordre d'enregistrements différent de celui du contenu initial. Ainsi, les données sont stockées différemment dans les différents dispositifs de stockage. On améliore ainsi les performances d'accès aux données : en effet, l'ordre de stockage des enregistrements peut influer sur le temps d'accès aux données qu'ils contiennent, en fonction du type de la requête formulée pour accéder aux données. Offrir plusieurs séquences ordonnées distinctes d'enregistrements, sur différents dispositifs de stockage, permet de maximiser les probabilités de disposer de la séquence ordonnée d'enregistrement la plus adaptée à tout type de requête d'accès reçue par le système. [0011] En outre, la technique de stockage redondant selon un mode de réalisation de l'invention propose, sur au moins certains dispositifs de stockage du système, de ne répliquer qu'une partie des enregistrements (par exemple ceux qui font le plus souvent l'objet de requêtes d'accès), afin d'économiser les ressources du système, en évitant de répliquer inutilement certains enregistrements, par exemple parce qu'ils font l'objet de peu de demandes de consultation. Une telle technique de stockage redondant des données est donc plus économe en ressources que les techniques antérieures. [0012] Selon un mode de réalisation particulier, chaque enregistrement comporte au moins 3 deux champs dans chacun desquels est enregistré une donnée : la première séquence ordonnée d'enregistrements est obtenue par tri des enregistrements à partir des données enregistrées dans un premier de ces champs, et la (ou les) deuxième séquence ordonnée d'enregistrements est obtenue par tri des enregistrements à partir des données enregistrées dans au moins un deuxième de ces deux champs. [0013] On considère par exemple un jcu de données dont chaque enregistrement contient un nom dans un premier champ et une date de naissance dans un deuxième champ. Un premier dispositif de stockage stocke ce jeu de données selon une première séquence ordonnée d'enregistrements obtenue par un tri par ordre alphabétique des noms contenus dans le premier champ ; un deuxième dispositif de stockage stocke cc jeu de données selon une deuxième séquence ordonnée d'enregistrements obtenue par un tri croissant ou décroissant des dates de naissance contenues dans le deuxième champ. [0014] On comprend qu'à réception d'une requête visant à obtenir tous les enregistrements associés aux individus dont le nom commence par la lettre A, l'accès au premier dispositif de stockage offrira une performance accrue par rapport au deuxième dispositif de stockage, en termes de temps d'accès aux données, dans la mesure où l'accès aux données se fera par lecture séquentielle sur le disque de stockage. En revanche, en cas d'accès aux enregistrements stockés par le deuxième dispositif de stockage, dans lequel les enregistrements sont triés par date de naissance, il sera nécessaire, pour obtenir les données requises, de parcourir toute la base de données d'enregistrement si aucun index n'existe, ce qui est beaucoup plus lent ; si un index existe, les données requises seront obtenues par des lectures aléatoires sur le disque, qui sont, par nature, beaucoup plus lentes que les lectures séquentielles. [0015] La séquence ordonnée d'enregistrements proposée par le deuxième dispositif de stockage, à savoir un tri par date de naissance des enregistrements, sera en revanche bien adaptée pour obtenir rapidement les données en réponse à une requête visant à déterminer tous les enregistrements associés aux individus nés entre 1990 et 2000. [0016] Ainsi, selon un aspect particulier, un tel système de stockage comprend un système de gestion de base de données configuré pour déterminer un dispositif de stockage à interroger, parmi le premier et le ou les deuxième(s) dispositifs de stockage, en fonction d'une requête de donnée reçue par le système, pour optimiser un temps de récupération de la donnée requise. [0017] Un tel système de gestion de base de données (ou SGBD) analyse la requête reçue et pointe vers le dispositif de stockage du système dont la séquence ordonnée d'enregistrements est la plus adaptée à une récupération rapide des données requises. On améliore ainsi les performances d'accès aux données stockées. [0018] Selon un autre aspect, un tel système de gestion de base de données est également configuré pour déterminer le ou les sous-ensemble(s) d'enregistrements à stocker dans le ou les deuxièmets) dispositif(s) de stockage, en fonction d'un nombre et/ou d'une fréquence de requêtes portant sur les enregistrements du sous-ensemble. [0019] Par exemple, pour une base de données contenant des enregistrements relatifs à des joueurs de football, le SGBD peut choisir de répliquer, sur un dispositif de stockage, uniquement les enregistrements relatifs aux dix plus grandes stars de la discipline sportive, qui font le plus souvent l'objet de requêtes. L'espace de stockage nécessaire est avantageusement restreint par rapport à celui nécessité pour une réplication intégrale de la hase de données ; la disponibilité des données de la base reste cependant élevée, dans la mesure où la majorité des requêtes reçues porte sur ce sous-ensemble de stars du foot. [0020] Selon encore un autre aspect, un tel système de gestion de hase de données est également configuré pour déterminer un nombre de dispositifs de stockage de la pluralité de dispositifs de stockage dans lesquels stocker les enregistrements et des séquences ordonnées d'enregistrements distinctes associées, en fonction d'un type et/ ou d'une volumétrie de requêtes susceptibles d'être reçues. [0021] Ainsi, les champs des enregistrements sur lesquels opérer les tris afin de construire des séquences ordonnées d'enregistrements, ainsi que le nombre de répliques des enregistrements à stocker sur différents dispositifs de stockage, sont choisis de manière statique, par rapport aux types de requêtes attendues et à leur volumétrie estimée. [0022] Selon encore un autre aspect, un tel système de gestion de hase de données est également configuré pour émettre une commande de stockage d'au moins un sous-ensemble des enregistrements selon une séquence ordonnée d'enregistrements vers un dispositif de stockage de la pluralité de dispositifs de stockage, en fonction d'un type et/ou d'une volumétrie de requêtes reçues. [0023] Ainsi, les choix des champs sur lesquels opérer les tris et du nombre de répliques des enregistrements s'opère de manière dynamique, ce qui permet d'améliorer la disponibilité et la performance du système de stockage sur au moins une partie des données contenues dans le système, et ce, de manière sélective pendant le cycle de vie des données et de la base de données. Ceci est particulièrement avantageux par rapport aux systèmes de stockage de l'art antérieur, selon lesquels le niveau de copie ou réplique est global pour toutes les données enregistrées. [0024] L'invention concerne également un procédé de stockage redondant de données, dans une pluralité de dispositifs de stockage de données, les données étant structurées sous forme d'une pluralité d'enregistrements. Un tel procédé de stockage comprend : une étape de stockage des enregistrements dans un premier dispositif de la pluralité de dispositifs de stockage selon une première séquence ordonnée d'enregistrements ; une étape de stockage, dans au moins un deuxième dispositif de la pluralité de dispositifs dc stockage d'au moins un sous-ensemble des enregistrements selon au moins une deuxième séquence ordonnée d'enregistrements distincte de la première séquence ordonnée pour cc ou ces sous-ensemble(s). [0025] Selon un aspect particulier, chaque enregistrement comportant au moins deux champs dans chacun desquels est enregistré une donnée, la première séquence ordonnée d'enregistrements est obtenue par tri des enregistrements à partir des données enregistrées dans un premier champ, et la ou les deuxième(s) séquence(s) ordonnée(s) d'enregistrements est obtenue par tri des enregistrements à partir des données enregistrées dans au moins un deuxième champ. [0026] Selon encore un aspect particulier, sur réception d'une requête de donnée, un tel procédé de stockage comprend une étape de détermination d'un dispositif de stockage à interroger, parmi le premier et le ou les deuxième(s) dispositifs de stockage, en fonction de la requête dc donnée reçue, pour optimiser un temps de récupération de la donnée requise. [0027] L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un procédé tel que décrit précédemment ou l'exécution des fonctionnalités d'un système tel que décrit précédemment, lorsqu'il est exécuté par un processeur. [0028] L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de stockage selon l'invention tel que décrit ci-dessus. [0029] Un tel support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit micro-électronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur. [0030] D'autre part, un tel support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens, de sorte que le programme d'ordinateur qu'il contient est exécutable à distance. Le programme selon l'invention peut être en particulier téléchargé sur un réseau par exemple le réseau Internet. [0031] Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé de contrôle d'affichage précité. [0032] Le procédé de stockage et le programme d'ordinateur con-espondants précités présentent au moins les mêmes avantages que ceux conférés par le système de stockage selon la présente invention. 6 Présentation des figures [0033] D'autres buts, caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée à titre de simple exemple illustratif, et non limitatif, en relation avec les figures, parmi lesquelles : [0034] [fig.L1 présente un synoptique général d'un système de stockage redondant de données selon un mode de réalisation de l'invention ; [0035] [fig.11 illustre sous forme d'organigramme les différentes étapes de la phase d'initialisation du système de stockage redondant de Fig 1 ; [0036] [fig.31 décrit le processus de stockage d'un enregistrement dans un système de stockage redondant de données selon un mode de réalisation de l'invention ; [0037] [fig.4] présente le processus de lecture d'un enregistrement dans un système de stockage redondant de données selon un mode de réalisation de l'invention ; [0038] [fig.51 présente la structure matérielle d'un système de gestion de hase de données SGBD selon un mode dc réalisation de l'invention. [0039] Description détaillée de modes de réalisation de l'invention [0040] Lc principe général de l'invention repose sur un stockage redondant de données, i.c_ un stockage de plusieurs copies d'une même hase de données sur plusieurs dispositifs de stockage distincts, mais dans lequel les différentes copies de la hase de données ne sont pas strictement identiques, mais de formes différentes, notamment en termes d'ordre des enregistrements de la hase sur le dispositif de stockage. [0041] Selon un aspect secondaire, sur au moins un dispositif du système de stockage, on ne stocke qu'une copie des données les plus fréquemment requises, et non de l'intégralité de la hase de données. [0042] On présente désormais, en relation avec Fig 1, un synoptique général d'un système de stockage redondant de données 1 selon un mode de réalisation de l'invention. [0043] Un tel système de stockage 1 comprend une pluralité de dispositifs de stockage ré- férencés S1 à S3, dont seulement trois exemples ont été représentés à titre illustratif sur Fig 1. Le nombre de dispositifs de stockage n'est bien sûr pas limité à trois, et tout autre nombre de dispositifs de stockage supérieur ou égal à deux peut également être envisagé. Notamment, plus le volume de données à stocker est élevé, plus l'accès aux données est fréquemment sollicité, plus le nombre de champs de chaque enregistrement est élevé, et plus il est avantageux de disposer d'un nombre important de 7 supports de stockage distincts, ceci, afin d'améliorer la disponibilité et la durabilité de la hase de données. [0044] Les dispositifs de stockage Si à S3 peuvent être localisés dans un même centre de traitement de données (en anglais « data tenter »), ou être géographiquement distribués, le cas échéant localisés dans des pays différents. [0045] En outre, de tels dispositifs de stockage peuvent être des serveurs de stockage, des disques durs, des mémoires flash, etc. [0046] Un système de gestion de hase de données, ou SGBD, 2 permet de manipuler le contenu des hases de données stockées dans les dispositifs de stockage Si à S3. Un tel système de gestion de hase de données 2 se présente sous forme d'un ensemble de logiciels, et sert à effectuer les opérations ordinaires telles que rechercher, ajouter ou supprimer des enregistrements (Create, Read, Update, Delete abrégé CRUD), manipuler les index, créer ou copier des hases de données. [0047] On considère par exemple une hase de données contenant un ensemble d'enregistrements référencés El à EN. Chacun de ces enregistrements Ei comprend une pluralité de champs (trois dans l'exemple de Fig I), notés Chi', Chi' et Chi". Par exemple, chaque enregistrement F.; correspond à un individu, dont le nom est enregistré dans un premier champ Chi', dont le prénom est contenu dans un deuxième champ Chi2 , et dont la date de naissance est stockée dans un troisième champ Chi'. [0048] Le premier serveur de stockage Si est associé à un premier type de stockage TS1, selon lequel les enregistrements El à EN sont ordonnés par ordre croissant des valeurs des données contenues dans le premier champ Chi', soit dans cet exemple par ordre alphabétique du nom. Ainsi, le premier type de stockage TSI correspond à une séquence ordonnée (El, E,, EN). [0049] Le deuxième serveur de stockage S2 est associé à un deuxième type de stockage TS2, selon lequel les enregistrements E, à EN sont ordonnés par ordre croissant des valeurs des données contenues dans le deuxième champ Chi2, soit dans cet exemple par ordre alphabétique du prénom. Ainsi, le deuxième type de stockage TS2 correspond par exemple à une séquence ordonnée (E,, EN, E1). [0050] L'intégralité des enregistrements El à EN est stockée sur chacun des deux serveurs Si et S2, ce qui permet d'assurer la durabilité du système de stockage : en effet, en cas de panne de l'un des deux serveurs, par exemple SI, les données restent accessibles par adressage d'une requête au serveur S2. [0051] Cependant, on comprend qu'une requête visant à obtenir une liste d'individus dont le nom de famille commence par la lettre A sera plus rapidement traitée si le SGBD 2 l'adresse au premier serveur Si, qui offre un type de stockage TS1 par ordre alphabétique de nom : une simple lecture séquentielle des enregistrements permet en effet d'extraire rapidement du serveur de stockage SI la liste des individus demandés. 8 Le temps de réponse est donc optimisée. [0052] En revanche, si la requête vise à obtenir une liste d'individus dont le prénom commence par la lettre A, et qu'elle est adressée par le SGBD 2 au premier serveur de stockage SI, son traitement ne sera pas optimisé. [0053] En effet, si aucun index n'existe sur le serveur de stockage Si, il est nécessaire de parcourir toute la liste ordonnée des enregistrements (El, E,, EN) pour en extraire ceux dont la valeur du deuxième champ Ch,2 commence par la lettre A. On rappelle qu'un index peut être défini comme un lot de données destiné à accélérer les opérations de recherche de données. La structure de l'index comporte des valeurs associées à des pointeurs où chaque pointeur permet de retrouver la donnée qui a cette valeur. [0054] Si donc un index existe sur le serveur de stockage Sl, il permet de pointer sur les champs Ch,2 dont la valeur commence par la lettre A. Cependant, l'accès aux enregistrements correspondants nécessite d'opérer des lectures aléatoires sur le disque de stockage Si, qui sont par nature beaucoup plus lentes que les lectures séquentielles. [0055] A réception d'une requête visant à obtenir une liste d'individus dont le prénom commence par la lettre A, le système de gestion de hase de données SGBD 2 pourra avantageusement l'adresser au deuxième serveur de stockage S2, afin d'en optimiser le temps de traitement : la liste demandée pourra être rapidement obtenue par lecture séquentielle du contenu de la copie de la hase de données stockée sur le deuxième serveur de stockage S2. [0056] Le système de stockage de Fig 1 comprend par ailleurs un troisième support de stockage S3, sur lequel n'est stocké qu'un sous-ensemble des enregistrements de la base de données, par exemple E, et E,. Par exemple, ce stockage suit un type de stockage TS3 qui consiste à classer les enregistrements par ordre croissant de la valeur de la donnée contenue dans le troisième champ Chi', soit selon une séquence ordonnée (EN ;El) dans cet exemple. [0057] Le sous-ensemble (El, EN) d'enregistrements à stocker sur le serveur S3 a été choisi car il s'agissait des enregistrements les plus fréquemment demandés (constat, en cours de fonctionnement du système de stockage 1, d'une volumétrie élevée de requêtes concernant ces enregistrements), ou dont il était prévu qu'ils fassent le plus fréquemment l'objet de requêtes, à l'initialisation du système de stockage 1. De même, le choix du type de stockage TS3 peut résulter d'un choix statique, par rapport aux types de requêtes attendues, à l'initialisation du système de stockage 1. Il peut également résulter d'un choix dynamique, pendant le cycle de vie des données, suite à un constat d'une fréquence élevée de requêtes portant sur le troisième champ des enregistrements. [0058] On présente désormais plus en détail, en relation avec les figures suivantes, les étapes de stockage d'un enregistrement dans le système de stockage 1 de Fig 1, et de lecture de cet enregistrement, en réponse à une requête d'accès. 9 [0059] Une phase de configuration, ou d' initialisation du système de stockage redondant 1 est nécessaire, avant de pouvoir traiter toute requête. Cette initialisation est illustrée par le procédé de Fig 2. [0060] L'étape référencée 100 correspond à la création de la hase de données dans le système de stockage redondant 1. Au cours d'une étape référencée 101, est créé le schéma/modèle de données de la hase, à savoir le type d'enregistrements E, les types des champs Ch; qui les composent, etc.... [0061] Au cours d'une étape SEL Ch référencée 102, sont choisis les champs Chi du schéma de données sur lesquels les optimisations de stockage seront faites. En effet, tous les champs des enregistrements n'ont pas nécessairement la même importance, et il peut être avantageux de prévoir des copies de la hase de données triées selon la valeur de certains des champs des enregistrements, mais pas de certains autres, qui font l'objet de requêtes moins fréquentes. [0062] Au cours d'une étape DEP TSi référencée 103, on définit les types de stockage TSi par rapport aux champs de données Chi choisis précédemment lors de l'étape 102. Un type de stockage par défaut pourrait aussi être défini. [0063] Lors de l'étape DEP REP(TSi) 104, on définit le facteur de réplication REP selon le type de stockage TSi. On peut par exemple déterminer qu'il est nécessaire de disposer de trois copies de la hase de données selon le type de stockage TS2, de deux copies de la hase selon le type de stockage TS3, mais de seulement une copie selon le type de stockage TS1. [0064] On attribue ensuite (étape MATCH(Si,TSi) 105) des types de stockage TSi aux différents supports de stockage Si (serveurs, disques durs, mémoires flash, etc....) qui stockeront les données de la base de données. Cette attribution peut se faire de manière aléatoire si les supports de stockage Si sont identiques ou en tenant compte de leurs spécificités et des données à stocker. Par exemple, les supports de stockage Si les plus performants pourraient se voir attribuer les types de stockage TSi susceptibles de demander le plus de performance. Cette étape peut être basée sur un profiling des données et des requêtes. [0065] Au cours d'une étape SEL_Reqi référencée 106, on définit le type de requêtes Reqi optimiser en tenant compte des champs Chi à optimiser. L'intégralité ou des sous-ensembles des requêtes Reqi peuvent être déclarés comme étant à optimiser. [0066] Lors de l'étape référencée 107 MATCH (Reqi, TS1), on procède à la mise en corres- pondance des types de requêtes Reqi avec les types de stockage TSi. Puis, lors de l'étape référencée 108 MATCH (E1, TS;), on procède à la mise en correspondance des enregistrements Ei avec les types de stockage TS1. [0067] Toutes les étapes 100 à 108 décrites ci-dessus peuvent être effectuées lorsqu'on a une connaissance plus ou moins approfondie des données à stocker et des requêtes qui seront jouées sur la hase de données. Dans le cas contraire, il est possible de ne procéder, à l'initialisation du système de stockage redondant de données, qu'à l'étape 100 de création de la base de données, en se fondant sur la détermination d'un type de stockage par défaut. Lors du cycle de vie de la base de données, par un processus d'analyse ou d'apprentissage, et à partir des connaissances qui seront extraites par cc processus, les étapes référencées 101 à 108 pourraient être mises en oeuvre, une ou plusieurs fois, par exemple par itérations successives, pour adapter le stockage par rapport à l'activité observée sur la base de données. [0068] Le schéma de Fig 3 illustre le processus de stockage d'un enregistrement dans un système de stockage redondant de données selon un mode de réalisation de l'invention. [0069] Un tel système de stockage comprend N supports ou serveurs de stockage référencés S1 à SN. Un client CLT envoie au premier serveur de stockage S1 un enregistrement E qui doit être mémorisé dans la base de données. Cet enregistrement E1 peut être composé de plusieurs champs Ch,1, Ch,2, Chia, Ch,4, etc. Cet envoi prend la forme d'une commande ST(E1), adressée au serveur Sl, qui peut être un serveur de stockage de données, ou un serveur de type SGBD 2, qui est en charge de distribuer les requêtes d'enregistrement aux serveurs de stockage appropriés. Dans l'exemple de Fig 3, on considère que le serveur S1 est également un serveur de stockage des données, selon le type de stockage TS1. [0070] A réception de l'enregistrement El, le serveur S1 l'analyse, à partir d'informations qu'il a précédemment mémorisées relatives à la mise en correspondance des enregistrements et des types de stockage, et en déduit que cet enregistrement E, doit être associé à un type de stockage TS2. Cette analyse peut, dans un mode de réalisation, être effectuée par un serveur de métadonnées dédié. [0071] Le serveur Si envoie alors (ST(EI, TS2)) l'enregistrement E1 aux serveurs S2 et S5, qui sont les serveurs de stockage stockant des répliques de la base de données selon le type de stockage TS2. [0072] Comme illustré sur Fig 3, un serveur de stockage Si peut mémoriser plusieurs copies de la base de données, selon plusieurs types de stockage distincts. Ainsi, le serveur S2 gère des copies de la base de données selon les types de stockage TS2 à TSn et le serveur de stockage S4 stocke des copies de la base de données selon les types de stockage TS1 à TSn. En revanche, le serveur S3 ne stocke qu'une copie de la base de données, correspondant à la séquence ordonnée d'enregistrements TS3 ; de même, les serveurs S5 et SN ne conservent qu'un exemplaire de la base de données, respectivement selon le type de stockage TS2 et TSn. [0073] Dans l'exemple de Fig 3, le serveur SI, qui peut être le système de gestion de base de données SGBD 2, n'envoie donc la requête de stockage de l'enregistrement El qu'aux serveurs S2 et S5 capables de gérer le type de stockage TS2. 11 [0074] Le schéma de Fig 4 illustre le principe de lecture d'un enregistrement préalablement stocké dans un système de stockage redondant 1 de données selon un mode de réalisation de r invention. [0075] Le client CLT adresse au serveur S1 une requête Req(E1) de lecture de l'enregistrement El. Comme précédemment, ce serveur S1 peut être un serveur de stockage de la hase de données, ou un simple serveur chargé d'aiguiller les requêtes vers les serveurs de stockage appropriés : il joue alors le rôle de SGBD 2. À réception de la requête Req(E1), le serveur S1 opère une mise en correspondance de l'enregistrement El et du type de stockage TS2, et détermine un serveur de stockage duquel il va pouvoir extraire rapidement l'enregistrement E1. Cette mise en correspondance peut être effectuée sur la hase d'informations à disposition du serveur Sl, telles que l'ordre des champs dans El et l'ordre des champs dans les différents types de stockage, ou être effectuée par un serveur de métadonnées dédié. [0076] Dans l'exemple de Fig 4, le serveur S1 détermine que les performances optimales en termes de temps de traitement de la requête seront atteintes en adressant la requête Req(E,) de lecture de El au serveur S5. Il envoie donc Req(E1) au serveur S5. [0077] Par simple lecture séquentielle des enregistrements stockés selon la séquence ordonnée correspondant au type de stockage TS2, le serveur S5 peut rapidement extraire les données relatives à l'enregistrement El de son espace de stockage, et l'envoyer en réponse au client CLT, via le serveur Sl. [0078] On optimise ainsi la performance du système de stockage redondant 1, en identifiant facilement le serveur associé au type de stockage le plus adapté à la nature de la requête du client. [0079] On notera que, si un seul type de stockage TS était défini dans le système de stockage redondant de Fig 4, ou si la requête Req(E,) reçue du client CLT n'avait pas été préalablement affectée à un type de stockage TSi donné, le choix, par le serveur SI, du dispositif de stockage Si auquel transmettre la requête pourrait se faire de manière aléatoire, ou en tenant compte de la charge des différents supports de stockage SI à SN. Ainsi, le choix du support de stockage présentant la charge la plus faible permet également d'optimiser le temps de traitement de la requête, et donc d'améliorer les performances du système 1. [0080] Le système de stockage redondant de données décrit ci-avant dans ses différents modes de réalisation est particulièrement avantageux pour la gestion de bases de données de grande taille, typiquement à partir du milliard d'enregistrements, et présente les avantages suivants : la possibilité de stocker de manière différente les différentes répliques de la base de données, en optimisant l'ordre de stockage des enregistrements en tenant compte de l'utilisation qui est faite des données de la base ; 12 l'amélioration des performances de manière sélective sur l'ensemble des données, en ne répliquant que les données fortement sollicitées ; l'économie des ressources en n'augmentant le niveau de réplication que pour les données qui sont le plus sollicitées par des requêtes ; la possibilité d'adapter le niveau de réplication à la demande, de manière dynamique, sur les données stockées, par apprentissage. [0081] On présente désormais, en relation avec Fig 5, la structure matérielle d'un système de gestion de base de données SGBD 2 selon un mode de réalisation de l'invention. [0082] Le terme système dc gestion peut correspondre aussi bien à un composant logiciel qu'à un composant matériel ou un ensemble de composants matériels et logiciels, un composant logiciel correspondant lui-même à un ou plusieurs programmes ou sous-programmes d'ordinateur ou de manière plus générale à tout élément d'un programme apte à mettre en oeuvre une fonction ou un ensemble dc fonctions. [0083] Plus généralement, un tel système de gestion de base dc données SGBD comprend une mémoire vive 13 (par exemple une mémoire RAM), une unité de traitement 12 équipée par exemple d'un processeur, et pilotée par un programme d'ordinateur, stocké dans une mémoire morte 11 (par exemple une mémoire ROM ou un disque dur). A l'initialisation, les instructions de code du programme d'ordinateur sont par exemple chargées dans la mémoire vive 13 avant d'être exécutées par le processeur de l'unité de traitement 12. La mémoire vive 13 contient notamment les règles de mise en correspondance des types de requêtes avec les types de stockage, les règles de mise en correspondance des enregistrements avec les types de stockage, un descriptif des types de stockage et de l'ordre de stockage des enregistrements qui leur sont associés, etc. Le processeur de l'unité de traitement 12 pilote l'analyse des requêtes et des enregistrements reçus, pour identifier les types de stockage qui leur correspondent, et les supports de stockage gérant ces types de stockage, à qui adresser les enregistrements à stocker, ou les requêtes d'accès aux enregistrements. [0084] La Fig 5 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser le système de gestion de base de données SGBD 2, afin qu'il effectue les étapes du procédé détaillé ci-dessus, en relation avec Fig 1 à Fig 4 (dans l'un quelconque des différents modes de réalisation, ou dans une combinaison de ces modes de réalisation). En effet, ces étapes peuvent être réalisées indifféremment sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel). [0085] Dans le cas où le système de gestion de base de données SGBD 2 est réalisé avec une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la 13 séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur. 14 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] REVENDICATIONSSystème (I) de stockage redondant de données, comprenant une pluralité dc dispositifs (S 1-SN) de stockage de données, lesdites données étant structurées sous forme d'unc pluralité d'enregistrements (E1), caractérisé en ce qu'un premier dispositif (SI) de ladite pluralité de dispositifs de stockage stocke lesdits enregistrements (E1) selon une première séquence ordonnée d'enregistrements (TS 1) et en ce qu'au moins un deuxième dispositif (S2-SN) de ladite pluralité dc dispositifs de stockage stocke au moins un sous-ensemble desdits enregistrements (E1) selon au moins une deuxième séquence ordonnée d'enregistrements (TS2-TSn) distincte de ladite première séquence ordonnée pour ledit au moins un sous-ensemble. Système de stockage selon la revendication 1, caractérisé en ce que, chaque enregistrement (E1) comportant au moins deux champs (Chi) dans chacun desquels est enregistré une donnée, ladite première séquence ordonnée d'enregistrements (TS1) est obtenue par tri desdits enregistrements (E,i) à partir des données enregistrées dans un premier (Chi') desdits au moins deux champs, et ladite au moins une deuxième séquence ordonnée d'enregistrements (TS2) est obtenue par tri desdits enregistrements à partir des données enregistrées dans au moins un deuxième (Chi') desdits au moins deux champs. Système de stockage selon rune quelconque des revendications 1 et 2, caractérisé en ce que ledit système de stockage comprend un système de gestion de base de données (2) configuré pour déterminer un dispositif de stockage à interroger, parmi ledit premier et ledit au moins un deuxième dispositifs de stockage, en fonction d'une requête de donnée reçue par ledit système, pour optimiser un temps de récupération de ladite donnée requise. Système de stockage selon la revendication 3, caractérisé en ce que ledit système de gestion de base de données est également configuré pour déterminer ledit au moins un sous-ensemble d'enregistrements à stocker dans ledit au moins un deuxième dispositif de stockage, en fonction d'un nombre et/ou d'une fréquence de requêtes portant sur lesdits enregistrements dudit sous-ensemble. Système de stockage selon rune quelconque des revendications 3 et 4, caractérisé en ce que ledit système de gestion de base de données est 15 [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] également configuré pour déterminer un nombre de dispositifs de stockage de ladite pluralité de dispositifs de stockage dans lesquels stocker lesdits enregistrements et des séquences ordonnées d'enregistrements distinctes associées, en fonction d'un type et/ou d'une volumétrie de requêtes susceptibles d'être reçues. Système de stockage selon l'une quelconque des revendications 3 à 5, caractérisé en ce que ledit système de gestion de hase de données est également configuré pour émettre une commande de stockage d'au moins un sous-ensemble desdits enregistrements selon une séquence ordonnée d'enregistrements vers un dispositif de stockage de ladite pluralité de dispositifs de stockage, en fonction d'un type et/ou d'une volumétrie de requêtes reçues. Procédé de stockage redondant de données, dans une pluralité de dispositifs de stockage de données, lesdites données étant structurées sous forme d'une pluralité d'enregistrements, caractérisé en ce qu'il comprend : - une étape de stockage desdits enregistrements dans un premier dispositif de ladite pluralité de dispositifs de stockage selon une première séquence ordonnée d'enregistrements ; - une étape de stockage, dans au moins un deuxième dispositif de ladite pluralité de dispositifs de stockage d'au moins un sous-ensemble desdits enregistrements selon au moins une deuxième séquence ordonnée d'enregistrements distincte de ladite première séquence ordonnée pour ledit au moins un sous-ensemble. Procédé de stockage selon la revendication 7, caractérisé en ce que, chaque enregistrement comportant au moins deux champs dans chacun desquels est enregistré une donnée, ladite première séquence ordonnée d'enregistrements est obtenue par tri desdits enregistrements à partir des données enregistrées dans un premier desdits au moins deux champs, et ladite au moins une deuxième séquence ordonnée d'enregistrements est obtenue par tri desdits enregistrements à partir des données enregistrées dans au moins un deuxième desdits au moins deux champs. Procédé de stockage selon l'une quelconque des revendications 7 et 8, caractérisé en ce que, sur réception d'une requête de donnée, il comprend une étape de détermination d'un dispositif de stockage à interroger, parmi ledit premier et ledit au moins un deuxième dispositifs de stockage, en fonction de ladite requête de donnée reçue, pour optimiser un temps de récupération de ladite donnée requise. 16 [Revendication 10] Produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un procédé scion l'une quelconque des revendications 7 à 9, lorsqu'il est exécuté par un processeur.