EP3948574A1 - Système de stockage redondant de données, procédé et programme d'ordinateur correspondants - Google Patents

Système de stockage redondant de données, procédé et programme d'ordinateur correspondants

Info

Publication number
EP3948574A1
EP3948574A1 EP20713039.4A EP20713039A EP3948574A1 EP 3948574 A1 EP3948574 A1 EP 3948574A1 EP 20713039 A EP20713039 A EP 20713039A EP 3948574 A1 EP3948574 A1 EP 3948574A1
Authority
EP
European Patent Office
Prior art keywords
records
storage
data
ordered sequence
storage devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP20713039.4A
Other languages
German (de)
English (en)
Inventor
Pierre OBAME MEYE
Philippe Raipin Parvedy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Publication of EP3948574A1 publication Critical patent/EP3948574A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Definitions

  • TITLE Redundant data storage system, corresponding process and computer program.
  • the field of the invention is that of the storage of data or information in storage devices, in the form of databases. More specifically, the invention relates to a technique for redundant data storage.
  • a database makes it possible to store in structured form, and to access by request, a set of data or information related to a theme or an activity. Such storage most often takes place on one or more storage servers, or storage disks, in computerized form.
  • this redundant storage consumes storage resources, both in terms of energy and in terms of storage space. There is therefore a need for a redundant data storage technique which is more economical in resources.
  • the invention meets this need by providing a redundant data storage system comprising a plurality of data storage devices, the data being structured as a plurality of records.
  • a first device of the plurality of storage devices stores the recordings in a first ordered sequence of records and at least a second device of the plurality of storage devices stores at least a subset of the records in at least a second ordered sequence of records distinct from the first ordered sequence for the subset (s).
  • the invention is based on a completely new and inventive approach to redundant data storage.
  • a redundant data storage technique is conventionally based on replication of the content of the database, but on storage of the content replicated by following an order of records different from that of the initial content.
  • data is stored differently in different storage devices. This improves data access performance: in fact, the order in which the records are stored can influence the access time to the data they contain, depending on the type of request formulated to access the data.
  • Providing several distinct ordered sequences of recordings, on different storage devices maximizes the probabilities of having the most suitable ordered sequence of records for any type of access request received by the system.
  • the redundant storage technique proposes, on at least certain storage devices of the system, to replicate only part of the records (for example those which are most often the subject of number of access requests), in order to save system resources by avoiding unnecessarily replicating certain records, for example because they are subject to few consultation requests.
  • Such a technique of redundant data storage is therefore more resource efficient than the prior techniques.
  • each record comprises at least two fields in each of which a data item is recorded: the first ordered sequence of records is obtained by sorting the records from the data recorded in a first of these fields, and the ( where the) second ordered sequence of records is obtained by sorting the records from the data recorded in at least a second of these two fields.
  • a first storage device stores this data set according to a first ordered sequence of records obtained by sorting the names contained in the first field in alphabetical order; a second storage device stores this set of data according to a second ordered sequence of records obtained by an increasing or decreasing sorting of the dates of birth contained in the second field.
  • the ordered sequence of records proposed by the second storage device namely a sorting by date of birth of the records, will on the other hand be well suited to quickly obtain the data in response to a request aiming to determine all the records associated with the individuals born. between 1990 and 2000.
  • such a storage system comprises a database management system configured to determine a storage device to be interrogated, from among the first and the second storage device (s), as a function of a data request received by the system, to optimize a recovery time for the required data.
  • Such a database management system analyzes the request received and points to the storage device of the system whose ordered sequence of records is the most suitable for rapid recovery of the required data. This improves the performance of access to the stored data.
  • such a database management system is also configured to determine the subset (s) of records to be stored in the second storage device (s), based on a number and / or a frequency of requests relating to the records of the subset. For example, for a database containing records relating to football players, the DBMS may choose to replicate, on a storage device, only the records relating to the ten biggest stars of the sport discipline, which are most often the subject of requests. The storage space required is advantageously small compared to that required for full replication of the database; however, the availability of database data remains high, insofar as the majority of requests received relate to this subset of football stars.
  • such a database management system is also configured to determine a number of storage devices of the plurality of storage devices in which to store the records and associated distinct ordered sequences of records, based on of a type and / or volume of requests likely to be received.
  • the fields of the records on which to operate the sorts in order to construct ordered sequences of records, as well as the number of replicas of the records to be stored on different storage devices, are chosen statically, in relation to the types of expected requests. and their estimated volume.
  • such a database management system is also configured to issue a command to store at least a subset of the records in an ordered sequence of records to a storage device of the plurality of records. storage devices, depending on the type and / or volume of requests received.
  • the choices of the fields on which to operate the sorts and of the number of replicas of the records are made dynamically, which makes it possible to improve the availability and performance of the storage system on at least part of the data contained in the system selectively during the data and database lifecycle. This is particularly advantageous compared to the storage systems of the prior art, according to which the level of copy or replica is global for all the recorded data.
  • the invention also relates to a method for redundantly storing data, in a plurality of data storage devices, the data being structured in the form of a plurality of records.
  • a storage method comprises:
  • each record comprising at least two fields in each of which data is recorded
  • the first ordered sequence of records is obtained by sorting the records from the data recorded in a first field
  • the second (s) ) ordered sequence (s) of records is obtained by sorting the records from the data recorded in at least a second field.
  • such a storage method comprises a step of determining a storage device to be interrogated, from among the first and the second storage device (s), in depending on the data request received, to optimize a recovery time for the required data.
  • the invention also relates to a computer program product comprising program code instructions for the implementation of a method as described previously or the execution of the functionalities of a system as described previously, when it is. executed by a processor.
  • the invention also relates to a recording medium readable by a computer on which is recorded a computer program comprising program code instructions for the execution of the steps of the storage method according to the invention as described above. .
  • Such a recording medium can be any entity or device capable of storing the program.
  • the medium can comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a USB key or a hard disk.
  • such a recording medium can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means, so that the program computer it contains can be executed remotely.
  • the program according to the invention can in particular be downloaded over a network, for example the Internet network.
  • the recording medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the aforementioned display control method.
  • the aforementioned storage method and corresponding computer program have at least the same advantages as those conferred by the storage system according to the present invention.
  • FIG 1 presents a general block diagram of a redundant data storage system according to one embodiment of the invention
  • FIG 2 illustrates in the form of a flowchart the different stages of the initialization phase of the redundant storage system of Fig 1;
  • FIG 3 describes the process of storing a record in a redundant data storage system according to one embodiment of the invention
  • FIG 4 shows the process of reading a record in a redundant data storage system according to one embodiment of the invention
  • FIG 5 shows the hardware structure of a DBMS database management system according to one embodiment of the invention.
  • the general principle of the invention is based on redundant data storage, ie storage of several copies of the same database on several separate storage devices, but in which the different copies of the database are not strictly identical, but of different forms, in particular in terms of the order of the records of the base on the storage device.
  • FIG. 1 A general block diagram of a redundant data storage system 1 according to one embodiment of the invention is now presented in relation to FIG.
  • Such a storage system 1 comprises a plurality of storage devices referenced SI to S3, of which only three examples have been shown by way of illustration in FIG. 1.
  • the number of storage devices is of course not limited to three, and all another number of storage devices greater than or equal to two can also be considered.
  • the greater the volume of data to be stored the more frequently access to the data is requested, the greater the number of fields of each record, and the more advantageous it is to have a large number of separate storage media. , this, in order to improve the availability and durability of the database.
  • the storage devices SI to S3 can be located in the same data processing center (in English “data center”), or be geographically distributed, if necessary located in different countries. Further, such storage devices can be storage servers, hard drives, flash memories, etc.
  • a database management system, or DBMS, 2 makes it possible to handle the content of the databases stored in the storage devices SI to S3.
  • DBMS database management system 2 is in the form of a set of software, and is used to perform ordinary operations such as finding, adding or deleting records (Create, Read, Update, Delete abbreviated CRUD), manipulate indexes, create or copy databases.
  • each of these records E comprises a plurality of fields (three in the example of Fig 1), denoted Ch, 1 , Ch, 2 and Ch, 3 .
  • each record E corresponds to an individual, whose name is recorded in a first field Ch, 1 , whose first name is contained in a second field Ch, 2 , and whose date of birth is stored in a third field Ch, 3 .
  • the first storage server SI is associated with a first type of storage TS1, according to which the records Ei to E N are ordered in ascending order of the values of the data contained in the first field Ch, 1 , or in this example in alphabetical order of the last name.
  • the first type of storage TS1 corresponds to an ordered sequence (Ei, E 2 , ..., E N ).
  • the second storage server S2 is associated with a second type of storage TS2, according to which the records Ei to E N are ordered in ascending order of the values of the data contained in the second field Ch 2 , ie in this example in alphabetical order of the first name .
  • the second type of storage TS2 corresponds for example to an ordered sequence (E 2 , E N , ..., Ei). All of the records Ei to E N are stored on each of the two servers SI and S2, which makes it possible to ensure the durability of the storage system: in fact, in the event of failure of one of the two servers, for example SI, the data remains accessible by addressing a request to the server S2.
  • the request aims to obtain a list of individuals whose first name begins with the letter A, and if it is sent by the DBMS 2 to the first storage server SI, its processing will not be optimized.
  • an index can be defined as a set of data intended to accelerate data search operations.
  • the structure of the index comprises values associated with pointers where each pointer makes it possible to find the data which has this value.
  • the database management system SGBD 2 can advantageously send it to the second storage server S2, in order to optimize it. processing time: the requested list can be quickly obtained by sequential reading of the content of the copy of the database stored on the second storage server S2.
  • the storage system of FIG. 1 furthermore comprises a third storage medium S3, on which only a subset of the records of the database, for example E IM and Ei, is stored.
  • this storage follows a type of storage TS3 which consists in classifying the records in ascending order of the value of the data item contained in the third field Ch j 3 , or according to an ordered sequence (E N ; Ei) in this example.
  • the subset (Ei, E N ) of records to be stored on the S3 server was chosen because they were the most frequently requested records (observation, during operation of the storage system 1, of a volume high number of requests concerning these records), or which were expected to be the subject of the most frequent requests, at the initialization of the storage system 1.
  • the choice of the storage type TS3 can result from a static choice, in relation to the types of requests expected, at the initialization of the storage system 1. It can also result from a dynamic choice, during the data life cycle, following a finding of a high frequency of queries relating to the third field of records.
  • a configuration phase, or initialization phase of the redundant storage system 1 is necessary, before any request can be processed. This initialization is illustrated by the method of Fig 2.
  • the step referenced 100 corresponds to the creation of the database in the redundant storage system 1.
  • the schema / model of database data namely the type of records E, the types of the fields Ch, j which compose them, etc ....
  • the fields Ch of the data diagram on which the storage optimizations will be made are chosen. Indeed, all the fields of the records do not necessarily have the same importance, and it may be advantageous to provide copies of the database sorted according to the value of some of the fields of the records, but not of others, which do the subject of less frequent requests.
  • the types of storage TS are defined with respect to the data fields Ch, chosen previously during step 102.
  • a default type of storage could also be defined.
  • step DEF_REP (TSi) 104 the replication factor REP is defined according to the type of storage TS i. For example, we can determine that it is necessary to have three copies of the database depending on the type of storage TS2, two copies of the base depending on the type of storage TS3, but only one copy depending on the type of storage. TS1.
  • TS storage types are then assigned (MATCH step (S ,, TS,) 105) to the various storage media S, (servers, hard disks, flash memories, etc.) which will store the data of the base of data.
  • S servers, hard disks, flash memories, etc.
  • This allocation can be done randomly if the storage media S i are identical or taking into account their specificities and the data to be stored. For example, the best performing S storage media might be assigned the TS storage types, which are likely to demand the most performance. This step can be based on data profiling and queries.
  • the type of requests Req is defined, to be optimized by taking into account the fields Ch, to be optimized. All or subsets of Req queries can be declared to be to optimize.
  • the types of requests Req are put into correspondence with the types of storage TS ,.
  • the records E are matched with the storage types TS ,.
  • All of the steps 100 to 108 described above can be carried out when there is more or less in-depth knowledge of the data to be stored and of the queries that will be performed on the database. Otherwise, it is possible to proceed, with the initialization of the redundant data storage system, only to step 100 of creation of the database, based on the determination of a type of default storage.
  • the steps referenced 101 to 108 could be implemented. works, one or more times, for example by successive iterations, to adapt the storage in relation to the activity observed on the database.
  • FIG. 3 illustrates the process of storing a record in a redundant data storage system according to one embodiment of the invention.
  • Such a storage system comprises N storage media or servers referenced SI to SN.
  • a client CLT sends to the first storage server SI a record Ei which must be stored in the database.
  • This Ei record can be composed of several fields Chi 1 , Chi 2 , Chi 3 , Chi 4 , etc.
  • This sending takes the form of an ST (Ei) command, addressed to the SI server, which can be a data storage server, or a DBMS 2 type server, which is in charge of distributing the recording requests to the servers. appropriate storage.
  • the server SI is also a data storage server, depending on the type of storage TS1.
  • the server SI On receipt of the record Ei, the server SI analyzes it, on the basis of information that it has previously stored relating to the matching of records and types of storage, and deduces from this that this record Ei must be associated to a TS2 storage type.
  • This analysis can, in one embodiment, be performed by a dedicated metadata server.
  • the server SI then sends (ST (Ei, TS2)) the record Ei to the servers S2 and S5, which are the storage servers storing replicas of the database according to the type of storage TS2.
  • a storage server Si can store several copies of the database, according to several distinct types of storage.
  • the server S2 manages copies of the database according to storage types TS2 to TSn and storage server S4 stores copies of the database according to storage types TS1 to TSn.
  • the S3 server only stores a copy of the database, corresponding to the ordered sequence of TS3 records; similarly, the servers S5 and SN keep only one copy of the database, respectively according to the type of storage TS2 and TSn.
  • the server SI which may be the database management system DBMS 2, therefore sends the request for storing the record E1 only to the servers S2 and S5 capable of managing the storage type TS2.
  • FIG. 4 illustrates the principle of reading a recording previously stored in a redundant data storage system 1 according to one embodiment of the invention.
  • the client CLT sends the server SI a request Req (Ei) to read the record Ei.
  • this IS server can be a database storage server, or a simple server responsible for directing requests to the appropriate storage servers: it then plays the role of DBMS 2.
  • the SI server On receipt of the request Req (Ei), the SI server operates a correspondence of the record Ei and the type of storage TS2, and determines a storage server from which it will be able to quickly extract the record Ei. This matching can be carried out on the basis of information available to the SI server, such as the order of the fields in El and the order of the fields in the different types of storage, or be carried out by a dedicated metadata server. .
  • the server SI determines that the optimum performance in terms of processing time of the request will be achieved by sending the request Req (Ei) to read Ei to the server S5. It therefore sends Req (Ei) to the server S5.
  • the server S5 can quickly extract the data relating to the record El from its storage space, and send it in response to the client CLT, via the SI server.
  • the performance of the redundant storage system 1 is thus optimized, by easily identifying the server associated with the type of storage most suited to the nature of the client's request.
  • the choice, by the server SI, of the storage device Si to which to transmit the request could be made randomly, or taking into account the load of the various storage media SI to SN.
  • the choice of the storage medium having the lowest load also makes it possible to optimize the processing time of the request, and therefore to improve the performance of the system 1.
  • the redundant data storage system described above in its various embodiments is particularly advantageous for the management of large databases, typically from one billion records, and has the following advantages:
  • management system can correspond to a software component as well as to a hardware component or a set of hardware and software components, a software component itself corresponding to one or more computer programs or subroutines or otherwise. more general to any element of a program capable of implementing a function or a set of functions.
  • such a DBMS database management system comprises a random access memory 13 (for example a RAM memory), a processing unit 12 equipped for example with a processor, and controlled by a computer program, stored in a read only memory 11 (for example a ROM memory or a hard disk).
  • a random access memory 13 notably contains the setting rules. correspondence of the types of requests with the types of storage, the rules for matching records with the types of storage, a description of the types of storage and the storage order of the records associated with them, etc.
  • the processor of the processing unit 12 controls the analysis of the requests and of the records received, to identify the types of storage which correspond to them, and the storage media managing these types of storage, to which to send the records to be stored, or requests for access to records.
  • Fig 5 illustrates only one particular way, among several possible, of implementing the database management system DBMS 2, so that it performs the steps of the method detailed above, in relation to Fig 1 to Fig 4 (in any of the different embodiments, or in a combination of these embodiments).
  • these steps can be carried out either on a reprogrammable computing machine (a PC computer, a DSP processor or a microcontroller) executing a program comprising a sequence of instructions, or on a dedicated computing machine (for example a set of logic gates such as an FPGA or ASIC, or any other hardware module).
  • a reprogrammable computing machine a PC computer, a DSP processor or a microcontroller
  • a program comprising a sequence of instructions
  • a dedicated computing machine for example a set of logic gates such as an FPGA or ASIC, or any other hardware module.
  • the corresponding program (that is to say the sequence of instructions) can be stored in a removable storage medium (such as for example a floppy disk, a CD-ROM or a DVD-ROM) or not, this storage medium being partially or totally readable by a computer or a processor.
  • a removable storage medium such as for example a floppy disk, a CD-ROM or a DVD-ROM

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention concerne un système de stockage (1) redondant de données, comprenant une pluralité de dispositifs de stockage de données (S1, S2, S3), les données étant structurées sous forme d'une pluralité d'enregistrements (E1, E2,... EN). Selon l'invention, un premier dispositif (S1) de la pluralité de dispositifs de stockage stocke les enregistrements selon une première séquence ordonnée d'enregistrements (TS1) et au moins un deuxième dispositif (S2, S3) 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 (TS2, TS3) distincte de la première séquence ordonnée pour ledit au moins un sous-ensemble.

Description

DESCRIPTION
TITRE : Système de stockage redondant de données, procédé et programme d'ordinateur correspondants.
Domaine technique
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
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.
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.
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 interrogeant un autre dispositif détenant une autre copie identique du contenu de la base de données.
Si cette technique de stockage redondant des données est intéressante, elle pourrait cependant être optimisée selon plusieurs aspects.
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.
Ensuite, si la redondance des données permet d'améliorer leur disponibilité, les performances 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. Il existe donc un besoin d'une technique de stockage redondant des données qui présente des performances accrues d'accès aux données. 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
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).
Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive du stockage redondant de données. En effet, une telle technique de stockage redondant de données repose, classiquement, sur une réplication du contenu de la base de données, mais 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.
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.
Selon un mode de réalisation particulier, chaque enregistrement comporte 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 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.
On considère par exemple un jeu 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 ce 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.
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.
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.
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.
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.
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ème(s) 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. 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 base 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.
Selon encore un autre aspect, un tel système de gestion de base 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.
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.
Selon encore un autre aspect, un tel système de gestion de base 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.
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.
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 de 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 ce ou ces sous-ensemble(s).
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.
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 de donnée reçue, pour optimiser un temps de récupération de la donnée requise.
L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en œuvre 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.
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.
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.
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.
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é.
Le procédé de stockage et le programme d'ordinateur correspondants 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.
Présentation des figures 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 :
[Fig 1] 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 ;
[Fig 2] illustre sous forme d'organigramme les différentes étapes de la phase d'initialisation du système de stockage redondant de Fig 1 ;
[Fig 3] 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 ;
[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 ;
[Fig 5] présente la structure matérielle d'un système de gestion de base de données SGBD selon un mode de réalisation de l'invention.
Description détaillée de modes de réalisation de l'invention
Le principe général de l'invention repose sur un stockage redondant de données, i.e. un stockage de plusieurs copies d'une même base de données sur plusieurs dispositifs de stockage distincts, mais dans lequel les différentes copies de la base de données ne sont pas strictement identiques, mais de formes différentes, notamment en termes d'ordre des enregistrements de la base sur le dispositif de stockage.
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 base de données.
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.
Un tel système de stockage 1 comprend une pluralité de dispositifs de stockage référencés SI à 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 supports de stockage distincts, ceci, afin d'améliorer la disponibilité et la durabilité de la base de données.
Les dispositifs de stockage SI à S3 peuvent être localisés dans un même centre de traitement de données (en anglais « data center »), ou être géographiquement distribués, le cas échéant localisés dans des pays différents. En outre, de tels dispositifs de stockage peuvent être des serveurs de stockage, des disques durs, des mémoires flash, etc.
Un système de gestion de base de données, ou SGBD, 2 permet de manipuler le contenu des bases de données stockées dans les dispositifs de stockage SI à S3. Un tel système de gestion de base 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 bases de données.
On considère par exemple une base de données contenant un ensemble d'enregistrements référencés Ei à EN. Chacun de ces enregistrements E, comprend une pluralité de champs (trois dans l'exemple de Fig 1), notés Ch,1, Ch,2 et Ch,3. Par exemple, chaque enregistrement E, correspond à un individu, dont le nom est enregistré dans un premier champ Ch,1, dont le prénom est contenu dans un deuxième champ Ch,2, et dont la date de naissance est stockée dans un troisième champ Ch,3.
Le premier serveur de stockage SI est associé à un premier type de stockage TS1, selon lequel les enregistrements Ei à EN sont ordonnés par ordre croissant des valeurs des données contenues dans le premier champ Ch,1, soit dans cet exemple par ordre alphabétique du nom. Ainsi, le premier type de stockage TS1 correspond à une séquence ordonnée (Ei, E2, ..., EN).
Le deuxième serveur de stockage S2 est associé à un deuxième type de stockage TS2, selon lequel les enregistrements Ei à EN sont ordonnés par ordre croissant des valeurs des données contenues dans le deuxième champ Ch 2, 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 (E2, EN, ..., Ei). L'intégralité des enregistrements Ei à 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.
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. Le temps de réponse est donc optimisée.
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é.
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 (Ei, E2, ..., 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.
Si donc un index existe sur le serveur de stockage SI, 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.
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 base 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 base de données stockée sur le deuxième serveur de stockage S2.
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 EIM et Ei. 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 Ch j 3, soit selon une séquence ordonnée (EN ;Ei) dans cet exemple.
Le sous-ensemble (Ei, 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. 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.
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.
L'étape référencée 100 correspond à la création de la base 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 base, à savoir le type d'enregistrements E,, les types des champs Ch,j qui les composent, etc....
Au cours d'une étape SEL_Ch référencée 102, sont choisis les champs Ch, 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 base 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.
Au cours d'une étape DEF_TSi référencée 103, on définit les types de stockage TS, par rapport aux champs de données Ch, choisis précédemment lors de l'étape 102. Un type de stockage par défaut pourrait aussi être défini.
Lors de l'étape DEF_REP(TSi) 104, on définit le facteur de réplication REP selon le type de stockage TS,. On peut par exemple déterminer qu'il est nécessaire de disposer de trois copies de la base de données selon le type de stockage TS2, de deux copies de la base selon le type de stockage TS3, mais de seulement une copie selon le type de stockage TS1.
On attribue ensuite (étape MATCH (S,, TS,) 105) des types de stockage TS, aux différents supports de stockage S, (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 S, sont identiques ou en tenant compte de leurs spécificités et des données à stocker. Par exemple, les supports de stockage S, les plus performants pourraient se voir attribuer les types de stockage TS, susceptibles de demander le plus de performance. Cette étape peut être basée sur un profiling des données et des requêtes.
Au cours d'une étape SEL_Reqi référencée 106, on définit le type de requêtes Req, à optimiser en tenant compte des champs Ch, à optimiser. L'intégralité ou des sous-ensembles des requêtes Req, peuvent être déclarés comme étant à optimiser.
Lors de l'étape référencée 107 MATCH (Req,, TS,), on procède à la mise en correspondance des types de requêtes Req, avec les types de stockage TS,. Puis, lors de l'étape référencée 108 MATCH (Ej, TS,), on procède à la mise en correspondance des enregistrements E, avec les types de stockage TS,.
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 base 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 ce processus, les étapes référencées 101 à 108 pourraient être mises en œuvre, 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.
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.
Un tel système de stockage comprend N supports ou serveurs de stockage référencés SI à SN. Un client CLT envoie au premier serveur de stockage SI un enregistrement Ei qui doit être mémorisé dans la base de données. Cet enregistrement Ei peut être composé de plusieurs champs Chi1, Chi2, Chi3, Chi4, etc. Cet envoi prend la forme d'une commande ST(Ei), adressée au serveur SI, 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 SI est également un serveur de stockage des données, selon le type de stockage TS1.
A réception de l'enregistrement Ei, le serveur SI 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 Ei 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é.
Le serveur SI envoie alors (ST(Ei, TS2)) l'enregistrement Ei 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. 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.
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.
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 l'invention.
Le client CLT adresse au serveur SI une requête Req(Ei) de lecture de l'enregistrement Ei. Comme précédemment, ce serveur SI peut être un serveur de stockage de la base 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. A réception de la requête Req(Ei), le serveur SI opère une mise en correspondance de l'enregistrement Ei et du type de stockage TS2, et détermine un serveur de stockage duquel il va pouvoir extraire rapidement l'enregistrement Ei. Cette mise en correspondance peut être effectuée sur la base d'informations à disposition du serveur SI, 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é.
Dans l'exemple de Fig 4, le serveur SI détermine que les performances optimales en termes de temps de traitement de la requête seront atteintes en adressant la requête Req(Ei) de lecture de Ei au serveur S5. Il envoie donc Req(Ei) au serveur S5.
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 SI.
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.
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(Ei) 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.
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 ;
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.
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. Le terme système de 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 œuvre une fonction ou un ensemble de fonctions.
Plus généralement, un tel système de gestion de base de 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.
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).
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 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.

Claims

REVENDICATIONS
1. Système (1) de stockage redondant de données, comprenant une pluralité de dispositifs (Sl-SN) de stockage de données, lesdites données étant structurées sous forme d'une pluralité d'enregistrements (EJ,
caractérisé en ce qu'un premier dispositif (SI) de ladite pluralité de dispositifs de stockage stocke lesdits enregistrements (EJ selon une première séquence ordonnée d'enregistrements (TS1) et en ce qu'au moins un deuxième dispositif (S2-SN) de ladite pluralité de dispositifs de stockage stocke au moins un sous-ensemble desdits enregistrements (EJ 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.
2. Système de stockage selon la revendication 1, caractérisé en ce que, chaque enregistrement (EJ comportant au moins deux champs (Ch,j) dans chacun desquels est enregistré une donnée, ladite première séquence ordonnée d'enregistrements (TS1) est obtenue par tri desdits enregistrements (EJ à partir des données enregistrées dans un premier (Ch,1) 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 (Ch,2) desdits au moins deux champs.
3. Système de stockage selon l'une 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.
4. 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.
5. Système de stockage selon l'une quelconque des revendications 3 et 4, caractérisé en ce que ledit système de gestion de base de données est é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.
6. Système de stockage selon l'une quelconque des revendications 3 à 5, caractérisé en ce que ledit système de gestion de base 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.
7. 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.
8. 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.
9. 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.
10. Produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en œuvre d'un procédé selon l'une quelconque des revendications 7 à 9, lorsqu'il est exécuté par un processeur.
EP20713039.4A 2019-03-28 2020-03-27 Système de stockage redondant de données, procédé et programme d'ordinateur correspondants Pending EP3948574A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1903250A FR3094509A1 (fr) 2019-03-28 2019-03-28 Système de stockage redondant de données, procédé et programme d’ordinateur correspondants.
PCT/EP2020/058756 WO2020193761A1 (fr) 2019-03-28 2020-03-27 Système de stockage redondant de données, procédé et programme d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
EP3948574A1 true EP3948574A1 (fr) 2022-02-09

Family

ID=67441403

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20713039.4A Pending EP3948574A1 (fr) 2019-03-28 2020-03-27 Système de stockage redondant de données, procédé et programme d'ordinateur correspondants

Country Status (4)

Country Link
US (1) US20220188201A1 (fr)
EP (1) EP3948574A1 (fr)
FR (1) FR3094509A1 (fr)
WO (1) WO2020193761A1 (fr)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293024B2 (en) * 2002-11-14 2007-11-06 Seisint, Inc. Method for sorting and distributing data among a plurality of nodes
US8566326B2 (en) * 2004-11-05 2013-10-22 Oracle International Corporation High-performance log-based processing
CN103514229A (zh) * 2012-06-29 2014-01-15 国际商业机器公司 用于在分布式数据库系统中处理数据库数据的方法和装置
US9639589B1 (en) * 2013-12-20 2017-05-02 Amazon Technologies, Inc. Chained replication techniques for large-scale data streams
US10599672B2 (en) * 2015-11-24 2020-03-24 Cisco Technology, Inc. Cursor-based state-collapse scheme for shared databases
US11150964B1 (en) * 2020-05-14 2021-10-19 Sap Se Sequential processing of changes in a distributed system

Also Published As

Publication number Publication date
FR3094509A1 (fr) 2020-10-02
WO2020193761A1 (fr) 2020-10-01
US20220188201A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
EP1470501B1 (fr) Procedes et systemes de recherche et d'association de ressources d'information telles que des pages web
EP1193625B1 (fr) Moteur de recherche collaboratif
JP6185080B2 (ja) ストリーミング照合システムにおける結果のホールドバックおよびリアルタイムランキング
FR2824160A1 (fr) Conteneur generique configurable de facon dynamique
FR3043816B1 (fr) Procede de suggestion de contenus extraits d’un ensemble de sources d’information
WO2018154197A1 (fr) Procédé, équipement et système de gestion du système de fichiers
FR2801991A1 (fr) Procede et dispositif de recherche d'images basee sur le contenu prenant en compte le contenu de regions d'interet
FR3103299A1 (fr) Système informatique distribué pour délivrer des données
US20220027776A1 (en) Content cold-start machine learning system
Dunning et al. Real-world hadoop
EP4026016A1 (fr) Migration d'une chaîne de blocs de données
EP1727060A1 (fr) Procédé et dispositif de construction et d'utilisation d'une table de profils réduits de parangons, produit programme d'ordinateur correspondant
EP3948574A1 (fr) Système de stockage redondant de données, procédé et programme d'ordinateur correspondants
US20220027373A1 (en) Intuitive content search results suggestion system
FR3074939A1 (fr) Procede de gestion du systeme de fichiers d'un terminal informatique
EP4025988A1 (fr) Procede de gestion d'un groupe de donnees dans un systeme informatique
WO2019129958A1 (fr) Procede de stockage de donnees et procede d'execution d'application avec reduction du temps d'acces aux donnees stockees
FR3100350A1 (fr) migration d’une chaîne de blocs de données
WO2023275462A1 (fr) Système et procédé de gestion de données dans un environnement multi-stockage
FR3100351A1 (fr) connexion à chaîne de blocs de données
CA2938678A1 (fr) Equipement electronique comprenant un programme de demarrage partitionne, vehicule ferroviaire et systeme ferroviaire associes
EP3853784A1 (fr) Procédé d'analyse des dysfonctionnements d'un système et dispositifs associés
WO2019086786A1 (fr) Procédé de communication entre processus, programme d'ordinateur et installation informatique correspondants
EP1467283A1 (fr) Système de sauvegarde centralisée d'informations.
WO2005004000A1 (fr) Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20210902

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE