WO1997020270A1 - Storage unit data saving method - Google Patents
Storage unit data saving method Download PDFInfo
- Publication number
- WO1997020270A1 WO1997020270A1 PCT/FR1995/001581 FR9501581W WO9720270A1 WO 1997020270 A1 WO1997020270 A1 WO 1997020270A1 FR 9501581 W FR9501581 W FR 9501581W WO 9720270 A1 WO9720270 A1 WO 9720270A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- backup
- data
- granule
- granules
- unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Definitions
- the present invention relates to data processing systems equipped with a storage unit and a backup unit, and, more particularly, a method for instant backup of the image of the data of said storage unit and its transfer. to said backup unit.
- a data backup operation from a storage unit to a backup unit generally consists of copying the data from one unit to the other through one or more data transfer means.
- these transfer means offer specific data transfer rates and impose a minimum time for the completion of said backup operation in its entirety.
- the techniques for backing up data from a storage unit require knowing the organization of the data on the storage unit and the associated access methods. .
- the data is saved one group at a time, a group forming a coherent set of data.
- no data contained in this group can be modified. If a group is being modified, saving the group is postponed until it is available. If a group is never available, it cannot be saved.
- the improvement provided by this invention consists of a method allowing the instantaneous backup of the image of the data from a storage unit and its transfer to a backup unit.
- the method consists in describing the image of the data by a backup counter, a pointer to a root node and a data structure comprising a root node and nodes containing either pointers to other nodes, either data blocks, said nodes being contained in allocated granules either in a random access memory, or on a storage unit, or a backup unit, said granules being provided with a backup number, to save the image of the data by increasing the counter by one backup, allocating a granule, copying the root node into said granule and updating the root node pointer, recovering the data by browsing the data structure, modifying the data by browsing the data structure, creating said nodes which do not exist, by duplicating said nodes which must be modified and whose said backup number is not equal to said backup counter, to transfer the duplicated granules to said backup unit, by allocating granules on said unit backup, by copying the content of the granules to be transferred, updating said pointers
- FIG. 1 is a logic diagram of the data processing system implementing the invention.
- Figure 2 is a logic diagram which details a block number used to identify the data contained in a data block.
- FIG. 3 is a logic diagram which details the data structure which describes the image of the data.
- FIG. 4 is a logic diagram which details a pointer to a granule.
- FIG. 5 is a logic diagram which details the control structure of a granule.
- the invention is particularly suitable for a system comprising at least one processing unit 1, a random access memory 2, a storage unit and backup unit controller 3, a storage unit 4, a backup unit 5 and an optional computer interface controller 6.
- the processing unit 1 can be a processor card conforming to the EXTENDED INDUSTRY STANDARD specifications.
- Said processing unit 1 accesses a random access memory 2 which can be composed of SIM memory modules and whose capacity can be one or more megabytes which can contain the programs and data necessary for the operation of the systems as well as, optionally , application programs modifying the data stored on the storage unit.
- the storage unit and backup unit controller 3 which may conform to the ANSI X3.131 standard, for example the ADAPTEC controller AHA-1740, allows the connection of the processing unit 1 and the random access memory for storage unit 4 and backup unit 5.
- Storage unit 4 can be a 3.5-inch hard drive having an interface conforming to the ANSI X3.131 standard, for example the SPITFLRE S12 disk from LMB.
- the backup unit 5 can be a digital optical disc reader-writer having an interface conforming to the ANSI X3.131 standard, for example the GD 9001 reader-recorder from ATG-CIGNET, possibly associated with a jukebox. like the ATG-CIGNET 1800 Series.
- the computer interface controller 6, which can comply with the ANSI X3.131 standard, for example the TARGET E-10F controller from ATON Systèmes, is only necessary when the programs of the applications modifying the data stored on said storage unit 4 are not contained in said random access memory 2 and executed by said processing unit 1, but contained in random access memory and executed by the processing unit of a computer connected to said system.
- the data are grouped into data blocks 30, of fixed size, for example 512 bytes, identified by a unique block number 7.
- Said block number can comprise for example 32 bits grouped into four parts each forming a first level node number 8 (eight bits), a second level node number 9 (ten bits), a data node number 10 ( ten bits) and a data block number 11 (four bits)
- the data structure which describes the image of the data of the storage unit by the location of the data blocks 30 which compose it can be contained entirely or in part in said random access memory 2, stored entirely or in part on the storage unit 4, and saved in whole or in part on the backup unit 5.
- Said data structure comprises for example: a root node 12; zero, one or more first level nodes 13; zero, one or more second level nodes 14; zero, one or more data nodes 15.
- the root node 12 contains at least as many pointers to a first level node 16 as there can be first level node numbers 8 per root node 12, for example two hundred and fifty six.
- a first level node 13 contains at least as many pointers to a second level node 17 as there can be second level node numbers 9 per first level node, for example one thousand twenty four
- a second level node 14 contains at least as many pointers to a data node 18 as there can be data node numbers 10 per second level node, for example one thousand twenty four.
- Said pointers contain a memory granule index 19 and / or a storage unit granule index 20 and / or a backup unit granule index 21
- Said root nodes 12, first level nodes 13 and second level nodes 14 contained in said random access memory 2 can contain pointers themselves containing a memory granule index 19, a storage unit granule index 20 and a unit granule index backup 21.
- Said nodes stored on said storage unit 4 may contain pointers themselves containing a granule index of storage unit 20 and a granule index of backup unit 21, but no memory granule index 19.
- Said nodes saved on said backup unit 5 can contain pointers themselves containing a granule backup unit index 21, but no granule index memory 19 or granule index storage unit 20. To avoid data loss, it may be imposed that said nodes contained in the random access memory 2 have at least one copy on said storage unit 4 or said unit backup 5.
- a data node 15 contains at least as many data blocks 30 as there can be data block numbers 11 per data node, for example sixteen.
- Said nodes are arranged in granules of fixed size, for example equal to sixteen times the size of a data block.
- a granule control structure 22 is associated with each of said granules.
- Said control structure comprises for example: a pointer to the parent granule 23, a backup number 24 and a node number 25 for managing the backup, control data 26 for managing the allocation of said granule and possibly the address 27 of said granule in the random access memory 2, on the storage unit 4 or on the backup unit 5.
- the current image of the data of the storage unit is defined by the pointer to the root node 28 and the backup counter 29
- said data structure may not include all the nodes necessary for the description of the image of the data. In this case, only the nodes necessary for locating the data blocks written at least once can exist.
- the allocation and the release of the granules contained in the random access memory 2 can be carried out according to well-known memory management techniques.
- the corresponding granule control structures 22 can be grouped in a region of said memory to random access 2 in order to be indexed directly by the memory granule index 19
- a similar method can be used to allocate and release the granules stored on the storage unit 4 and indexed by the granule storage unit index 20. In this case, a region of sufficient size can be reserved on said storage unit for the granule control structures. 22
- the granules saved on the backup unit 5 can be allocated sequentially on said unit and indexed by the backup unit index 21.
- the granule control structures 22 can be placed in front of the corresponding granule
- FIGS. 1 to 5 in relation to the assembly language programs contained in binary form in the random access memory 2 and executed by the processing unit 1, a description of the process is given. according to the invention allowing the instantaneous backup of the image of the data of the storage unit 4 and its transfer to the backup unit 5
- a granule is allocated in the random access memory and / or on the storage unit 4 and the content of the node root 12 is copied there.
- the pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the root node 12.
- the pointer to the root node 28 is modified to point to the granule which has just been allocated and which now contains the new root node 12
- the backup counter 29 is increased by one
- the number 24 of said granule control structure is packed with the content of said backup counter.
- the granule containing the old root node is declared transferable to the backup unit 5.
- the root node 12 is located from the pointer to the root node 28.
- a pointer to a first level node 16 is selected in said root node according to the first level node number 8.
- the node first level 13 is located from said first level node pointer.
- a pointer to a second level node 17 is selected from said first level node based on the second level node number 9.
- the second level node 14 is located from said second level node pointer.
- a pointer to a data node 18 is selected from said second level node as a function of the data node number 10.
- the data node 15 is located from said pointer to a data node.
- Said data block is located in said data node as a function of the data block number 11.
- the data structure describing the image of the data is traversed as a function of the block number 7 specified according to the following steps.
- the root node 12 is located from the pointer to the root node 28.
- a pointer to a first level node 16 is selected in said root node according to the number of first level node 8.
- the first level node 13 is located from said first level node pointer. If said first level node exists, processing continues at step (8).
- a granule is allocated in the random access memory 2 and / or on the storage unit 4 and initialized with pointers to an empty second level node 17, the corresponding granule control structure is furnished with a number node 25 equal to the first level node number 8, a backup number 24 equal to the backup counter 29 and a pointer to the empty parent granule 23. Said pointer to a first level node 16 is modified to point to said granule which now contains the first level node 13.
- a pointer to a second level node 17 is selected from said first level node 13 based on the second level node number 9.
- the second level node 14 is located from said second level node pointer. If said second level node exists, processing continues at step (11).
- a granule is allocated in random access memory 2 and / or on the storage 4 and initialized with pointers to an empty data node 18, the corresponding granule control structure is filled with a node number 25 equal to the first level node number 8 associated with the second level node number 9, a backup number 24 equal to the backup counter 29 and a pointer to the empty parent granule 23.
- step (11) If the backup number 24 of the granule control structure 22 corresponding to said first level node 13 is equal to said backup counter 29, said pointer to a second level node 17 is modified to point to said granule which now contains the node second level 14, and processing continues at step (11). (10) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of said first level node 13 is copied there.
- the pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old first level node 13, the save number 24 of said granule control structure is filled with the contents of the backup counter 29 and the node number 25 of said granule control structure is populated with the first level node number 8.
- the pointer to the first level node 16 contained in said root node 12 is modified to point to the granule which has just been allocated and which now contains the new first level node 13.
- the granule containing the old first level node is declared transferable to the backup unit 5.
- the pointer to a second level node 17 contained in the new first level node 13 is modified to point to the granule which contains the second level node 14.
- a pointer to a data node 18 is selected from said second level node based on the data node number 10.
- the data node 15 is located from said pointer to a data node. If said data node exists and if the backup number 24 of the granule control structure 22 corresponding to said data node 15 is equal to said backup counter 29, the processing continues at step (17).
- a granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of the old data node, if it exists, is copied there.
- the pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old data node if it exists, the backup number 24 of said granule control structure is filled with the content of the backup counter 29 and the node number 25 of said granule control structure is filled with the first level node number 8 associated with the second level node number 9 and the data node number 10.
- step (16) If the backup number 24 of the granule control structure 22 corresponding to said second level node 14 is equal to said backup counter 29, said pointer to a data node 18 is modified to point to the granule which now contains the new node 15, and processing continues at step (16). (13) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of said second level node 14 is copied there.
- the pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old second level node 14, the backup number 24 of said granule control structure is filled with the content of the backup counter 29 and the node number 25 of said granule control structure is packed with the first level node number 8 associated with the second level node number 9. If the backup number 24 of the granule control structure 22 corresponding to said first level node 13 is equal to said backup counter 29, said pointer to a second level node 17 is modified to point to the granule which has just been allocated and which now contains the new second level node 14, and the continuous treatment in step (15)
- a granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of said first level node 13 is copied there.
- the pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old first level node 13, the backup number 24 of said granule control structure is filled with the content of the backup counter 29 and the node number 25 of said granule control structure is populated with the first level node number 8
- the pointer to the first level node 16 contained in said root node 12 is modified to point to the granule which has just been allocated and which now contains the new first level node 13
- the granule containing the old first level node is declared transferable to the backup unit 5
- the pointer to the second level node 17 contained in said new u first level node 13 is modified to point to the granule which contains the new second level node 14
- the granule containing the old data node is declared transferable to the backup unit 5 (17)
- Said data block is located in the data node 15 according to the data block number 11 Said data block is populated by the data transmitted by the application either from the random access memory 2 or through the computer interface controller 6
- step (32) If the pointer to the parent granule 23 of the granule control structure 22 of said granule declared transferable does not contain a backup unit granule index 21, the processing continues at step (32) (20) If said granule declared transferable contains a data node 15, the continuous processing in step (22)
- a granule is allocated on the backup unit 5.
- the content of said granule declared transferable is copied therein
- the content of the granule control structure 22 of said granule declared transferable can be copied into the granule control structure 22 of the just allocated granule
- the data structure describing the image of the data is traversed from the pointer to the root node 28 as a function of the node number 25 of the granule control structure 22 of said granule declared transferable in order to locate a root node 12 , a first level node 13 or a second level node 14 depending on whether the granule declared transferable contains a first level node 13, a second level node 14 or a data node 15.
- the node number 25 of the granule control structure 22 of said granule declared transferable is used to locate the pointer to a first level node 16, to a second level node 17 or to a data node 18 contained in said node If said pointer points to said granule declared transferable, the granule index backup unit 21 of said pointer is filled with the index of said granule allocated on the backup unit 5 and the granule memory 19 and granule storage unit indexes 20 said pointer are deleted
- step (28) If the backup number 24 of the granule control structure 22 of the granule containing said node is equal to the backup counter 29, the processing continues at step (28).
- the data structure describing the image of the data is traversed from the pointer to the root node 28 as a function of the node number 25 of the granule control structure 22 of said granule declared transferable in order to locate a root node 12 , a first level node 13, a second level node 14 or a data node 15 depending on whether the granule declared transferable contains a root node 12, a first level node 13, a second level node 14 or a data node 15
- the granule index backup unit 21 of said pointer is lined with the index of said granule allocated on the backup unit 5, the memory granule 19 and granule storage unit 20 indices of said pointer are deleted, and the processing continues at step (31) .
- step (18) The following declared transferable granule is located. If there is continuous treatment in step (19). (33) If it still has at least one granule declared transferable, the processing continues at step (18).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A method for instantaneously saving an image of storage unit data in a data processing system and transferring it to a save unit. The data image is described by a save counter (29), a root node pointer (28) and a data structure including a root node (12) and nodes (13, 14, 15) containing pointers to other nodes (16, 17, 18) or data blocks (30). The data image is saved by incrementing the save counter by one, copying the root node and updating the root node pointer. The system is particularly suitable for saving computer data.
Description
PROCEDE POUR LA SAUVEGARDE DES DONNEES D ' UNE UNITE DE STOCKAGE METHOD FOR BACKING UP DATA FROM A STORAGE UNIT
La présente invention concerne les systèmes de traitement de données équipés d'une unité de stockage et d'une unité de sauvegarde, et, plus particulièrement, un procédé pour la sauvegarde instantanée de l'image des données de ladite unité de stockage et son transfert vers ladite unité de sauvegarde.The present invention relates to data processing systems equipped with a storage unit and a backup unit, and, more particularly, a method for instant backup of the image of the data of said storage unit and its transfer. to said backup unit.
Une opération de sauvegarde des données d'une unité de stockage vers une unité de sauvegarde consiste généralement en la copie des données d'une unité vers l'autre à travers un ou plusieurs moyens de transfert de données. Par nature, ces moyens de transfert offrent des débits de transfert de données spécifiques et imposent un temps minimum pour la réalisation de ladite opération de sauvegarde dans sa totalité.A data backup operation from a storage unit to a backup unit generally consists of copying the data from one unit to the other through one or more data transfer means. By nature, these transfer means offer specific data transfer rates and impose a minimum time for the completion of said backup operation in its entirety.
Lorsque l'unité de stockage reste opérationnelle pendant l'opération de sauvegarde, certaines données stockées sur cette unité peuvent être modifiées alors que ladite opération est en cours. Suivant l'instant où intervient la modification d'une donnée et sa position sur l'unité de stockage, ladite donnée est sauvegardée soit non modifiée, soit modifiée. Si, pendant ladite opération de sauvegarde, plusieurs données sont modifiées sur l'unité de stockage, certaines desdites données sont sauvegardées non modifiées, les autres sont sauvegardées modifiés. En conséquence, l'ensemble des données sauvegardées sur l'unité de sauvegarde ne correspond pas à l'image exacte de l'ensemble des données de l'unité de stockage à un instant précis. Ainsi, des incohérences entre les différentes données sauvegardées peuvent les rendre inexploitables.When the storage unit remains operational during the backup operation, certain data stored on this unit can be modified while said operation is in progress. Depending on the moment when the modification of a data item and its position on the storage unit occurs, said data is saved either unmodified or modified. If, during said backup operation, several data are modified on the storage unit, some of said data are saved unmodified, the others are saved modified. Consequently, all of the data saved on the backup unit does not correspond to the exact image of all the data of the storage unit at a precise instant. Thus, inconsistencies between the different data saved can make them unusable.
Afin de garantir un certain niveau de cohérence des données, les techniques de sauvegarde des données d'une unité de stockage, utilisées à ce jour, imposent de connaître l'organisation des données sur l'unité de stockage et les méthodes d'accès associées. Suivant ces techniques, les données sont sauvegardées un groupe à la fois, un groupe formant un ensemble cohérent de données. Durant la sauvegarde d'un groupe, aucune donnée contenue dans ledit groupe ne peut être modifiée. Si un groupe est en cours de modification, la sauvegarde dudit groupe est reportée jusqu'à ce qu'il soit disponible. Si un groupe n'est jamais disponible, il ne peut pas être sauvegardé.In order to guarantee a certain level of data consistency, the techniques for backing up data from a storage unit, used to date, require knowing the organization of the data on the storage unit and the associated access methods. . According to these techniques, the data is saved one group at a time, a group forming a coherent set of data. During the saving of a group, no data contained in this group can be modified. If a group is being modified, saving the group is postponed until it is available. If a group is never available, it cannot be saved.
Le perfectionnement apporté par cette invention consiste en un procédé permettant la sauvegarde instantanée de l'image des données d'une unité de stockage et son transfert vers une unité de sauvegarde.The improvement provided by this invention consists of a method allowing the instantaneous backup of the image of the data from a storage unit and its transfer to a backup unit.
D'après cette invention, le procédé consiste à décrire l'image des données par un compteur de sauvegarde, un pointeur vers un noeud racine et une structure de données comprenant un noeud racine et des noeuds contenant soit des pointeurs vers d'autres noeuds, soit des blocs de données, lesdits noeuds étant contenus dans des granules alloués soit dans une mémoire à accès aléatoires, soit sur une unité de stockage, soit une unité de sauvegarde, lesdits granules étant pourvus d'un numéro de sauvegarde, à sauvegarder l'image des données en augmentant de un le compteur de
sauvegarde, en allouant un granule, en recopiant le noeud racine dans ledit granule et en mettant à jour ie pointeur de noeud racine, à récupérer les données en parcourant la structure de données, à modifier les données en parcourant la structure de données, en créant lesdits noeuds qui n'existent pas, en dupliquant lesdits noeuds qui doivent être modifiés et dont ledit numéro de sauvegarde n'est pas égal audit compteur de sauvegarde, à transférer les granules dupliqués vers ladite unité de sauvegarde, en allouant des granules sur ladite unité de sauvegarde, en copiant le contenu des granules à transférer, en mettant à jour lesdits pointeurs de la structure de données qui pointent vers lesdits granules, en libérant lesdits granules, à répéter lesdites opérations de récupération, de modification et de transfert pour satisfaire les demandes du système de traitement des données.According to this invention, the method consists in describing the image of the data by a backup counter, a pointer to a root node and a data structure comprising a root node and nodes containing either pointers to other nodes, either data blocks, said nodes being contained in allocated granules either in a random access memory, or on a storage unit, or a backup unit, said granules being provided with a backup number, to save the image of the data by increasing the counter by one backup, allocating a granule, copying the root node into said granule and updating the root node pointer, recovering the data by browsing the data structure, modifying the data by browsing the data structure, creating said nodes which do not exist, by duplicating said nodes which must be modified and whose said backup number is not equal to said backup counter, to transfer the duplicated granules to said backup unit, by allocating granules on said unit backup, by copying the content of the granules to be transferred, updating said pointers in the data structure which point to said granules, by releasing said granules, to repeat said recovery, modification and transfer operations to satisfy the requests of the data processing system.
La description de l'invention qui suit fait référence aux dessins annexés :The description of the invention which follows refers to the accompanying drawings:
La figure 1 est un schéma logique du système de traitement de données mettant en oeuvre l'invention. La figure 2 est un schéma logique qui détaille un numéro de bloc utilisé pour identifier les données contenues dans un bloc de données.FIG. 1 is a logic diagram of the data processing system implementing the invention. Figure 2 is a logic diagram which details a block number used to identify the data contained in a data block.
La figure 3 est un schéma logique qui détaille la structure de données qui décrit l'image des données.FIG. 3 is a logic diagram which details the data structure which describes the image of the data.
La figure 4 est un schéma logique qui détaille un pointeur vers un granule. La figure 5 est un schéma logique qui détaille la structure de contrôle d'un granule. En référence aux figures 1 à 5 est donnée une description d'un système gérant une unité de stockage et une unité de sauvegarde réalisant la sauvegarde instantanée de l'image des données de l'unité de stockage et son transfert vers l'unité de sauvegarde. L'invention est particulièrement adaptée à un système comprenant au moins une unité de traitement 1, une mémoire à accès aléatoires 2, un contrôleur d'unité de stockage et d'unité de sauvegarde 3, une unité de stockage 4, une unité de sauvegarde 5 et un contrôleur d'interface ordinateur 6 optionnel.Figure 4 is a logic diagram which details a pointer to a granule. FIG. 5 is a logic diagram which details the control structure of a granule. With reference to FIGS. 1 to 5, a description is given of a system managing a storage unit and a backup unit carrying out the instantaneous backup of the image of the data of the storage unit and its transfer to the backup unit. . The invention is particularly suitable for a system comprising at least one processing unit 1, a random access memory 2, a storage unit and backup unit controller 3, a storage unit 4, a backup unit 5 and an optional computer interface controller 6.
Dans le système mettant en oeuvre le procédé décrit, l'unité de traitement 1 peut être une carte processeur conforme aux spécifications EXTENDED INDUSTRY STANDARDIn the system implementing the method described, the processing unit 1 can be a processor card conforming to the EXTENDED INDUSTRY STANDARD specifications.
ARCHITECTURE de BCPR SERVICES équipée d'un processeur du type i486SX qui fait partie de la famille des processeurs 32 bits d'INTEL. Ladite unité de traitement 1 accède à une mémoire à accès aléatoires 2 qui peut être composée de barrettes mémoire SIM et dont la capacité peut être de un ou plusieurs méga-octets pouvant contenir les programmes et les données nécessaires au fonctionnement du systèmes ainsi que, éventuellement, les programmes des applications modifiant les données stockées sur l'unité de stockage. Le contrôleur d'unité de stockage et d'unité de sauvegarde 3, qui peut être conforme au standard ANSI X3.131, par exemple le contrôleur AHA-1740 d'ADAPTEC, permet la connexion de l'unité de traitement 1 et de la mémoire à accès aléatoires à l'unité de stockage 4 et à l'unité de sauvegarde 5. L'unité de stockage 4 peut être un disque dur de 3,5 pouces
disposant d'une interface conforme au standard ANSI X3.131, par exemple le disque SPITFLRE S12 d'LBM. L'unité de sauvegarde 5 peut être un lecteur-enregistreur de disque optique numérique disposant d'une interface conforme au standard ANSI X3.131, par exemple le lecteur-enregistreur GD 9001 d'ATG-CIGNET, éventuellement associé à un juke-box comme le Séries 1800 d'ATG-CIGNET.ARCHITECTURE of BCPR SERVICES equipped with an i486SX processor which is part of the 32-bit processor family of INTEL. Said processing unit 1 accesses a random access memory 2 which can be composed of SIM memory modules and whose capacity can be one or more megabytes which can contain the programs and data necessary for the operation of the systems as well as, optionally , application programs modifying the data stored on the storage unit. The storage unit and backup unit controller 3, which may conform to the ANSI X3.131 standard, for example the ADAPTEC controller AHA-1740, allows the connection of the processing unit 1 and the random access memory for storage unit 4 and backup unit 5. Storage unit 4 can be a 3.5-inch hard drive having an interface conforming to the ANSI X3.131 standard, for example the SPITFLRE S12 disk from LMB. The backup unit 5 can be a digital optical disc reader-writer having an interface conforming to the ANSI X3.131 standard, for example the GD 9001 reader-recorder from ATG-CIGNET, possibly associated with a jukebox. like the ATG-CIGNET 1800 Series.
Le contrôleur d'interface ordinateur 6, qui peut être conforme au standard ANSI X3.131, par exemple le contrôleur TARGET E-10F d'ATON Systèmes, est seulement nécessaire lorsque les programmes des applications modifiant les données stockées sur ladite unité de stockage 4 ne sont pas contenus dans ladite mémoire à accès aléatoires 2 et exécutés par ladite unité de traitement 1, mais contenus dans la mémoire à accès aléatoires et exécutés par l'unité de traitement d'un ordinateur connecté audit système.The computer interface controller 6, which can comply with the ANSI X3.131 standard, for example the TARGET E-10F controller from ATON Systèmes, is only necessary when the programs of the applications modifying the data stored on said storage unit 4 are not contained in said random access memory 2 and executed by said processing unit 1, but contained in random access memory and executed by the processing unit of a computer connected to said system.
Les données sont regroupées en blocs de données 30, de taille fixe, par exemple 512 octets, identifiés par un numéro de bloc 7 unique. Ledit numéro de bloc peut comporter par exemple 32 bits regroupés en quatre parties formant chacune un numéro de noeud de premier niveau 8 (huit bits), un numéro de noeud de second niveau 9 (dix bits), un numéro de noeud de données 10 (dix bits) et un numéro de bloc de données 11 (quatre bits)The data are grouped into data blocks 30, of fixed size, for example 512 bytes, identified by a unique block number 7. Said block number can comprise for example 32 bits grouped into four parts each forming a first level node number 8 (eight bits), a second level node number 9 (ten bits), a data node number 10 ( ten bits) and a data block number 11 (four bits)
La structure de données qui décrit l'image des données de l'unité de stockage par la localisation des blocs de données 30 qui la composent peut être contenue entièrement ou en partie dans ladite mémoire à accès aléatoires 2, stockée entièrement ou en partie sur l'unité de stockage 4, et sauvegardée entièrement ou en partie sur l'unité de sauvegarde 5. Ladite structure de données comprend par exemple: un noeud racine 12; zéro, un ou plusieurs noeuds de premier niveau 13; zéro, un ou plusieurs noeuds de second niveau 14; zéro, un ou plusieurs noeuds de données 15.The data structure which describes the image of the data of the storage unit by the location of the data blocks 30 which compose it can be contained entirely or in part in said random access memory 2, stored entirely or in part on the storage unit 4, and saved in whole or in part on the backup unit 5. Said data structure comprises for example: a root node 12; zero, one or more first level nodes 13; zero, one or more second level nodes 14; zero, one or more data nodes 15.
Le noeud racine 12 contient au moins autant de pointeurs vers un noeud de premier niveau 16 qu'il peut y avoir de numéros de noeud de premier niveau 8 par noeud racine 12, par exemple deux cent cinquante six. Un noeud de premier niveau 13 contient au moins autant de pointeurs vers un noeud de second niveau 17 qu'il peut y avoir de numéros de noeud de second niveau 9 par noeud de premier niveau, par exemple mille vingt quatre Un noeud de second niveau 14 contient au moins autant de pointeurs vers un noeud de données 18 qu'il peut y avoir de numéros de noeud de données 10 par noeud de second niveau, par exemple mille vingt quatre. Lesdits pointeurs contiennent un index granule mémoire 19 et/ou un index granule unité de stockage 20 et/ou un index granule unité de sauvegarde 21The root node 12 contains at least as many pointers to a first level node 16 as there can be first level node numbers 8 per root node 12, for example two hundred and fifty six. A first level node 13 contains at least as many pointers to a second level node 17 as there can be second level node numbers 9 per first level node, for example one thousand twenty four A second level node 14 contains at least as many pointers to a data node 18 as there can be data node numbers 10 per second level node, for example one thousand twenty four. Said pointers contain a memory granule index 19 and / or a storage unit granule index 20 and / or a backup unit granule index 21
Lesdits noeuds racine 12, noeuds de premier niveau 13 et noeuds de second niveau 14 contenus dans ladite mémoire à accès aléatoires 2 peuvent contenir des pointeurs contenant eux-mêmes un index granule mémoire 19, un index granule unité de stockage 20 et un index granule unité de sauvegarde 21. Lesdits noeuds stockés sur ladite unité de stockage 4 peuvent contenir des pointeurs contenant eux-mêmes un index granule unité de stockage 20 et un index granule unité de sauvegarde 21, mais pas d'index granule mémoire 19. Lesdits noeuds sauvegardés sur ladite unité de sauvegarde 5 peuvent contenir des pointeurs contenant eux-mêmes un index granule unité de sauvegarde 21, mais pas d'index granule
mémoire 19 ni d'index granule unité de stockage 20. Pour éviter la perte de données, il peut être imposé que lesdits noeuds contenus dans la mémoire à accès aléatoires 2 disposent d'au moins un copie sur ladite unité de stockage 4 ou ladite unité de sauvegarde 5.Said root nodes 12, first level nodes 13 and second level nodes 14 contained in said random access memory 2 can contain pointers themselves containing a memory granule index 19, a storage unit granule index 20 and a unit granule index backup 21. Said nodes stored on said storage unit 4 may contain pointers themselves containing a granule index of storage unit 20 and a granule index of backup unit 21, but no memory granule index 19. Said nodes saved on said backup unit 5 can contain pointers themselves containing a granule backup unit index 21, but no granule index memory 19 or granule index storage unit 20. To avoid data loss, it may be imposed that said nodes contained in the random access memory 2 have at least one copy on said storage unit 4 or said unit backup 5.
Un noeud de données 15 contient au moins autant de blocs de données 30 qu'il peut y avoir de numéros de bloc de données 11 par noeud de données, par exemple seize.A data node 15 contains at least as many data blocks 30 as there can be data block numbers 11 per data node, for example sixteen.
Lesdits noeuds sont rangés dans des granules de taille fixe par exemple égale à seize fois la taille d'un bloc de données. Une structure de contrôle de granule 22 est associée à chacun desdits granules. Ladite structure de contrôle comprend par exemple: un pointeur vers le granule père 23, un numéro de sauvegarde 24 et un numéro de noeud 25 pour la gestion de la sauvegarde, des données de contrôle 26 pour la gestion de l'allocation dudit granule et éventuellement l'adresse 27 dudit granule dans la mémoire à accès aléatoires 2, sur l'unité de stockage 4 ou sur l'unité de sauvegarde 5.Said nodes are arranged in granules of fixed size, for example equal to sixteen times the size of a data block. A granule control structure 22 is associated with each of said granules. Said control structure comprises for example: a pointer to the parent granule 23, a backup number 24 and a node number 25 for managing the backup, control data 26 for managing the allocation of said granule and possibly the address 27 of said granule in the random access memory 2, on the storage unit 4 or on the backup unit 5.
L'image courante des données de l'unité de stockage est définie par le pointeur vers le noeud racine 28 et le compteur de sauvegarde 29 A un instant donné, ladite structure de données peut ne pas comprendre tous les noeuds nécessaires à la description de l'image des données. Dans ce cas seuls les noeuds nécessaires à la localisation des blocs de données au moins écrits une fois peuvent exister.The current image of the data of the storage unit is defined by the pointer to the root node 28 and the backup counter 29 At a given time, said data structure may not include all the nodes necessary for the description of the image of the data. In this case, only the nodes necessary for locating the data blocks written at least once can exist.
L'allocation et la libération des granules contenus dans la mémoire à accès aléatoires 2 peuvent être réaliser suivant les techniques bien connues de gestion mémoire Pour des raisons de simplification les structures de contrôle de granule 22 correspondantes peuvent être regroupées dans une région de ladite mémoire à accès aléatoires 2 afin d'être indexées directement par l'index granule mémoire 19 Une méthode similaire peut être utilisée pour réaliser l'allocation et la libération des granules stockés sur l'unité de stockage 4 et indexés par l'index granule unité de stockage 20. Dans ce cas une région de dimension suffisante peut être réservée sur ladite unité de stockage pour les structures de contrôle de granule 22 Les granules sauvegardés sur l'unité de sauvegarde 5 peuvent être alloués de manière séquentielle sur ladite unité et indexés par l'index unité de sauvegarde 21. Dans ce cas les structures de contrôle de granule 22 peuvent être placées devant le granule correspondant En référence aux figures 1 à 5, en relation avec les programmes en langage d'assemblage contenus sous forme binaire dans la mémoire à accès aléatoires 2 et exécutés par l'unité de traitement 1, est donnée une description du procédé suivant l'invention permettant la sauvegarde instantanée de l'image des données de l'unité de stockage 4 et son transfert vers l'unité de sauvegarde 5The allocation and the release of the granules contained in the random access memory 2 can be carried out according to well-known memory management techniques. For reasons of simplification, the corresponding granule control structures 22 can be grouped in a region of said memory to random access 2 in order to be indexed directly by the memory granule index 19 A similar method can be used to allocate and release the granules stored on the storage unit 4 and indexed by the granule storage unit index 20. In this case, a region of sufficient size can be reserved on said storage unit for the granule control structures. 22 The granules saved on the backup unit 5 can be allocated sequentially on said unit and indexed by the backup unit index 21. In this case, the granule control structures 22 can be placed in front of the corresponding granule With reference to FIGS. 1 to 5, in relation to the assembly language programs contained in binary form in the random access memory 2 and executed by the processing unit 1, a description of the process is given. according to the invention allowing the instantaneous backup of the image of the data of the storage unit 4 and its transfer to the backup unit 5
Lorsque, par un moyen approprié, la sauvegarde de l'image des données de l'unité de stockage 4 est requise, un granule est alloué dans la mémoire à accès aléatoires et/ou sur l'unité de stockage 4 et le contenu du noeud racine 12 y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer sur le granule contenant le noeud racine 12. Le pointeur vers le noeud racine 28 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud racine 12 Le compteur de sauvegarde 29 est augmenté de un Le numéro
de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu dudit compteur de sauvegarde. Le granule contenant l'ancien noeud racine est déclaré transférable vers l'unité de sauvegarde 5.When, by an appropriate means, the backup of the image of the data of the storage unit 4 is required, a granule is allocated in the random access memory and / or on the storage unit 4 and the content of the node root 12 is copied there. The pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the root node 12. The pointer to the root node 28 is modified to point to the granule which has just been allocated and which now contains the new root node 12 The backup counter 29 is increased by one The number 24 of said granule control structure is packed with the content of said backup counter. The granule containing the old root node is declared transferable to the backup unit 5.
Lorsque, par un moyen approprié, une application accède à un bloc de données pour en récupérer le contenu, la structure de données décrivant l'image des données est parcourue en fonction du numéro de bloc 7 spécifié selon les étapes suivantes :When, by appropriate means, an application accesses a data block to retrieve the content, the data structure describing the image of the data is traversed according to the block number 7 specified according to the following steps:
(1) Le noeud racine 12 est localisé à partir du pointeur vers le noeud racine 28. Un pointeur vers un noeud de premier niveau 16 est sélectionné dans ledit noeud racine en fonction du numéro de noeud de premier niveau 8. (2) Le noeud de premier niveau 13 est localisé à partir dudit pointeur de noeud de premier niveau. Un pointeur vers un noeud de second niveau 17 est sélectionné dans ledit noeud de premier niveau en fonction du numéro de noeud de second niveau 9.(1) The root node 12 is located from the pointer to the root node 28. A pointer to a first level node 16 is selected in said root node according to the first level node number 8. (2) The node first level 13 is located from said first level node pointer. A pointer to a second level node 17 is selected from said first level node based on the second level node number 9.
(3) Le noeud de second niveau 14 est localisé à partir dudit pointeur de noeud de second niveau. Un pointeur vers un noeud de données 18 est sélectionné dans ledit noeud de second niveau en fonction du numéro de noeud de données 10.(3) The second level node 14 is located from said second level node pointer. A pointer to a data node 18 is selected from said second level node as a function of the data node number 10.
(4) Le noeud de données 15 est localisé à partir dudit pointeur vers un noeud de données. Ledit bloc de données est localisé dans ledit noeud de données en fonction du numéro de bloc de données 11.(4) The data node 15 is located from said pointer to a data node. Said data block is located in said data node as a function of the data block number 11.
(5) Le contenu dudit bloc de données est retourné à l'application soit dans la mémoire à accès aléatoires 2, soit à travers le contrôleur d'interface ordinateur 6.(5) The content of said data block is returned to the application either in random access memory 2 or through the computer interface controller 6.
Lorsque, par un moyen approprié, une application accède à un bloc de données pour en modifier le contenu, la structure de données décrivant l'image des données est parcourue en fonction du numéro de bloc 7 spécifié selon les étapes suivantes.When, by appropriate means, an application accesses a data block to modify the content, the data structure describing the image of the data is traversed as a function of the block number 7 specified according to the following steps.
(6) Le noeud racine 12 est localisé à partir du pointeur vers le noeud racine 28. Un pointeur vers un noeud de premier niveau 16 est sélectionné dans ledit noeud racine en fonction du numéro de noeud de premier niveau 8. Le noeud de premier niveau 13 est localisé à partir dudit pointeur de noeud de premier niveau. Si ledit noeud de premier niveau existe le traitement continue à l'étape (8).(6) The root node 12 is located from the pointer to the root node 28. A pointer to a first level node 16 is selected in said root node according to the number of first level node 8. The first level node 13 is located from said first level node pointer. If said first level node exists, processing continues at step (8).
(7) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et initialisé avec des pointeurs vers un noeud de second niveau 17 vides, la structure de contrôle de granule correspondante est garnie avec un numéro de noeud 25 égal au numéro de noeud de premier niveau 8, un numéro de sauvegarde 24 égal au compteur de sauvegarde 29 et un pointeur vers le granule père 23 vide. Ledit pointeur vers un noeud de premier niveau 16 est modifié pour pointer vers ledit granule qui contient maintenant le noeud de premier niveau 13.(7) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and initialized with pointers to an empty second level node 17, the corresponding granule control structure is furnished with a number node 25 equal to the first level node number 8, a backup number 24 equal to the backup counter 29 and a pointer to the empty parent granule 23. Said pointer to a first level node 16 is modified to point to said granule which now contains the first level node 13.
(8) Un pointeur vers un noeud de second niveau 17 est sélectionné dans ledit noeud de premier niveau 13 en fonction du numéro de noeud de second niveau 9. Le noeud de second niveau 14 est localisé à partir dudit pointeur de noeud de second niveau. Si ledit noeud de second niveau existe le traitement continue à l'étape (11). (9) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de
stockage 4 et initialisé avec des pointeurs vers un noeud de données 18 vides, la structure de contrôle de granule correspondante est garnie avec un numéro de noeud 25 égal au numéro de noeud de premier niveau 8 associé au numéro de noeud de second niveau 9, un numéro de sauvegarde 24 égal au compteur de sauvegarde 29 et un pointeur vers le granule père 23 vide. Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de premier niveau 13 est égal audit compteur de sauvegarde 29, ledit pointeur vers un noeud de second niveau 17 est modifié pour pointer vers ledit granule qui contient maintenant le noeud de second niveau 14, et le traitement continue à l'étape (11). (10) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu dudit noeud de premier niveau 13 y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de premier niveau 13, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8. Le pointeur vers le noeud de premier niveau 16 contenu dans ledit noeud racine 12 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud de premier niveau 13. Le granule contenant l'ancien noeud de premier niveau est déclaré transférable vers l'unité de sauvegarde 5. Le pointeur vers un noeud de second niveau 17 contenu dans le nouveau noeud de premier niveau 13 est modifié pour pointer vers le granule qui contient le noeud de second niveau 14.(8) A pointer to a second level node 17 is selected from said first level node 13 based on the second level node number 9. The second level node 14 is located from said second level node pointer. If said second level node exists, processing continues at step (11). (9) A granule is allocated in random access memory 2 and / or on the storage 4 and initialized with pointers to an empty data node 18, the corresponding granule control structure is filled with a node number 25 equal to the first level node number 8 associated with the second level node number 9, a backup number 24 equal to the backup counter 29 and a pointer to the empty parent granule 23. If the backup number 24 of the granule control structure 22 corresponding to said first level node 13 is equal to said backup counter 29, said pointer to a second level node 17 is modified to point to said granule which now contains the node second level 14, and processing continues at step (11). (10) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of said first level node 13 is copied there. The pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old first level node 13, the save number 24 of said granule control structure is filled with the contents of the backup counter 29 and the node number 25 of said granule control structure is populated with the first level node number 8. The pointer to the first level node 16 contained in said root node 12 is modified to point to the granule which has just been allocated and which now contains the new first level node 13. The granule containing the old first level node is declared transferable to the backup unit 5. The pointer to a second level node 17 contained in the new first level node 13 is modified to point to the granule which contains the second level node 14.
(11) Un pointeur vers un noeud de données 18 est sélectionné dans ledit noeud de second niveau en fonction du numéro de noeud de données 10. Le noeud de données 15 est localisé à partir dudit pointeur vers un noeud de données. Si ledit noeud de données existe et si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de données 15 est égal audit compteur de sauvegarde 29, le traitement continue à l'étape (17).(11) A pointer to a data node 18 is selected from said second level node based on the data node number 10. The data node 15 is located from said pointer to a data node. If said data node exists and if the backup number 24 of the granule control structure 22 corresponding to said data node 15 is equal to said backup counter 29, the processing continues at step (17).
(12) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu de l'ancien noeud de données, s'il existe, y est recopié. Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de données s'il existe, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8 associé au numéro de noeud de second niveau 9 et au numéro de noeud de données 10. Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de second niveau 14 est égal audit compteur de sauvegarde 29, ledit pointeur vers un noeud de données 18 est modifié pour pointer vers le granule qui contient maintenant le nouveau noeud de données 15, et le traitement continue à l'étape (16).
(13) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu dudit noeud de second niveau 14 y est recopié Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de second niveau 14, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8 associé au numéro de noeud de second niveau 9. Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 correspondant audit noeud de premier niveau 13 est égal audit compteur de sauvegarde 29, ledit pointeur vers un noeud de second niveau 17 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud de second niveau 14, et le traitement continue à l'étape (15)(12) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of the old data node, if it exists, is copied there. The pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old data node if it exists, the backup number 24 of said granule control structure is filled with the content of the backup counter 29 and the node number 25 of said granule control structure is filled with the first level node number 8 associated with the second level node number 9 and the data node number 10. If the backup number 24 of the granule control structure 22 corresponding to said second level node 14 is equal to said backup counter 29, said pointer to a data node 18 is modified to point to the granule which now contains the new node 15, and processing continues at step (16). (13) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of said second level node 14 is copied there. The pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old second level node 14, the backup number 24 of said granule control structure is filled with the content of the backup counter 29 and the node number 25 of said granule control structure is packed with the first level node number 8 associated with the second level node number 9. If the backup number 24 of the granule control structure 22 corresponding to said first level node 13 is equal to said backup counter 29, said pointer to a second level node 17 is modified to point to the granule which has just been allocated and which now contains the new second level node 14, and the continuous treatment in step (15)
(14) Un granule est alloué dans la mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 et le contenu dudit noeud de premier niveau 13 y est recopié Le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule est initialisé pour pointer vers le granule contenant l'ancien noeud de premier niveau 13, le numéro de sauvegarde 24 de ladite structure de contrôle de granule est garni avec le contenu du compteur de sauvegarde 29 et le numéro de noeud 25 de ladite structure de contrôle de granule est garni avec le numéro de noeud de premier niveau 8 Le pointeur vers le noeud de premier niveau 16 contenu dans ledit noeud racine 12 est modifié pour pointer vers le granule qui vient d'être alloué et qui contient maintenant le nouveau noeud de premier niveau 13 Le granule contenant l'ancien noeud de premier niveau est déclaré transférable vers l'unité de sauvegarde 5 Le pointeur vers le noeud de second niveau 17 contenu dans ledit nouveau noeud de premier niveau 13 est modifié pour pointer vers le granule qui contient le nouveau noeud de second niveau 14(14) A granule is allocated in the random access memory 2 and / or on the storage unit 4 and the content of said first level node 13 is copied there. The pointer to the parent granule 23 of the granule control structure 22 of said granule is initialized to point to the granule containing the old first level node 13, the backup number 24 of said granule control structure is filled with the content of the backup counter 29 and the node number 25 of said granule control structure is populated with the first level node number 8 The pointer to the first level node 16 contained in said root node 12 is modified to point to the granule which has just been allocated and which now contains the new first level node 13 The granule containing the old first level node is declared transferable to the backup unit 5 The pointer to the second level node 17 contained in said new u first level node 13 is modified to point to the granule which contains the new second level node 14
(15) Le granule contenant l'ancien noeud de second niveau est déclaré transférable vers l'unité de sauvegarde 5(15) The granule containing the old second level node is declared transferable to the backup unit 5
(16) S'il existe, le granule contenant l'ancien noeud de données est déclaré transférable vers l'unité de sauvegarde 5 (17) Ledit bloc de données est localisé dans le noeud de données 15 en fonction du numéro de bloc de données 11 Ledit bloc de données est garni par les données transmises par l'application soit depuis la mémoire à accès aléatoires 2, soit à travers le contrôleur d'interface ordinateur 6(16) If it exists, the granule containing the old data node is declared transferable to the backup unit 5 (17) Said data block is located in the data node 15 according to the data block number 11 Said data block is populated by the data transmitted by the application either from the random access memory 2 or through the computer interface controller 6
Lorsqu'il y a au moins un granule déclaré transférable vers l'unité de sauvegarde 5, un transfert de données vers l'unité de sauvegarde est réalisé selon les étapes suivantesWhen there is at least one granule declared transferable to the backup unit 5, a data transfer to the backup unit is carried out according to the following steps
(18) Le premier granule déclaré transférable est localisé(18) The first granule declared transferable is located
(19) Si le pointeur vers le granule père 23 de la structure de contrôle de granule 22 dudit granule déclaré transférable ne contient pas d'index granule unité de sauvegarde 21, le traitement continu à l'étape (32) (20) Si ledit granule déclaré transférable contient un noeud de données 15, le
traitement continue à l'étape (22)(19) If the pointer to the parent granule 23 of the granule control structure 22 of said granule declared transferable does not contain a backup unit granule index 21, the processing continues at step (32) (20) If said granule declared transferable contains a data node 15, the continuous processing in step (22)
(21) Les pointeurs vers un noeud de premier niveau 16, vers un noeud de second niveau 17 ou vers un noeud de données 18, contenus dans ledit granule déclaré transférable, sont testés pour déterminer s'ils contiennent un index granule unité de sauvegarde 21 Si au moins un desdits pointeurs ne contient pas d'index granule unité de sauvegarde 21, le traitement continu à l'étape (32).(21) The pointers to a first level node 16, to a second level node 17 or to a data node 18, contained in said granule declared transferable, are tested to determine whether they contain a granule backup unit index 21 If at least one of said pointers does not contain a backup unit granule index 21, the processing continues at step (32).
(22) Un granule est alloué sur l'unité de sauvegarde 5. Le contenu dudit granule déclaré transférable y est recopié Le contenu de la structure de contrôle de granule 22 dudit granule déclaré transférable peut être recopié dans la structure de contrôle de granule 22 du granule qui vient d'être alloué(22) A granule is allocated on the backup unit 5. The content of said granule declared transferable is copied therein The content of the granule control structure 22 of said granule declared transferable can be copied into the granule control structure 22 of the just allocated granule
(23) Si ledit granule déclaré transférable contient un noeud racine, le traitement continue à l'étape (28)(23) If the said transferable granule contains a root node, the processing continues at step (28)
(24) La structure de données décrivant l'image des données est parcourue à partir du pointeur vers le noeud racine 28 en fonction du numéro de noeud 25 de la structure de contrôle de granule 22 dudit granule déclaré transférable afin de localiser un noeud racine 12, un noeud de premier niveau 13 ou un noeud de second niveau 14 selon que le granule déclaré transférable contient un noeud de premier niveau 13, un noeud de second niveau 14 ou un noeud de données 15.(24) The data structure describing the image of the data is traversed from the pointer to the root node 28 as a function of the node number 25 of the granule control structure 22 of said granule declared transferable in order to locate a root node 12 , a first level node 13 or a second level node 14 depending on whether the granule declared transferable contains a first level node 13, a second level node 14 or a data node 15.
(25) Le numéro de noeud 25 de la structure de contrôle de granule 22 dudit granule déclaré transférable est utilisé pour localisé le pointeur vers un noeud de premier niveau 16, vers un noeud de second niveau 17 ou vers un noeud de données 18 contenu dans ledit noeud Si ledit pointeur pointe sur ledit granule déclaré transférable, l'index granule unité de sauvegarde 21 dudit pointeur est garni avec l'index dudit granule alloué sur l'unité de sauvegarde 5 et les indexes granule mémoire 19 et granule unité de stockage 20 dudit pointeur sont supprimés(25) The node number 25 of the granule control structure 22 of said granule declared transferable is used to locate the pointer to a first level node 16, to a second level node 17 or to a data node 18 contained in said node If said pointer points to said granule declared transferable, the granule index backup unit 21 of said pointer is filled with the index of said granule allocated on the backup unit 5 and the granule memory 19 and granule storage unit indexes 20 said pointer are deleted
(26) Si le numéro de sauvegarde 24 de la structure de contrôle de granule 22 du granule contenant ledit noeud est égal au compteur de sauvegarde 29, le traitement continue à l'étape (28).(26) If the backup number 24 of the granule control structure 22 of the granule containing said node is equal to the backup counter 29, the processing continues at step (28).
(27) Si le pointeur vers le granule père 23 de la structure de contrôle de granule 22 du granule contenant ledit noeud pointe vers un granule en mémoire à accès aléatoires et/ou sur l'unité de stockage, le noeud contenu dans ledit granule est localisé et le traitement continue à l'étape (25).(27) If the pointer to the parent granule 23 of the granule control structure 22 of the granule containing said node points to a granule in random access memory and / or on the storage unit, the node contained in said granule is localized and treatment continues at step (25).
(28) La structure de données décrivant l'image des données est parcourue à partir du pointeur vers le noeud racine 28 en fonction du numéro de noeud 25 de la structure de contrôle de granule 22 dudit granule déclaré transférable afin de localiser un noeud racine 12, un noeud de premier niveau 13, un noeud de second niveau 14 ou un noeud de données 15 selon que le granule déclaré transférable contient un noeud racine 12, un noeud de premier niveau 13, un noeud de second niveau 14 ou un noeud de données 15(28) The data structure describing the image of the data is traversed from the pointer to the root node 28 as a function of the node number 25 of the granule control structure 22 of said granule declared transferable in order to locate a root node 12 , a first level node 13, a second level node 14 or a data node 15 depending on whether the granule declared transferable contains a root node 12, a first level node 13, a second level node 14 or a data node 15
(29) Si le pointeur vers le granule père 23 de la structure de contrôle de granule 22 du granule contenant ledit noeud pointe vers ledit granule déclaré transférable, l'index granule
unité de sauvegarde 21 dudit pointeur est garni avec l'index dudit granule alloué sur l'unité de sauvegarde 5, les indexes granule mémoire 19 et granule unité de stockage 20 dudit pointeur sont supprimés, et le traitement continue à l'étape (31).(29) If the pointer to the parent granule 23 of the granule control structure 22 of the granule containing said node points to said granule declared transferable, the granule index backup unit 21 of said pointer is lined with the index of said granule allocated on the backup unit 5, the memory granule 19 and granule storage unit 20 indices of said pointer are deleted, and the processing continues at step (31) .
(30) Le noeud pointé par ledit pointeur vers le granule père est localisé et le traitement continu à l'étape (29).(30) The node pointed by said pointer to the parent granule is located and the processing continues in step (29).
(31) Ledit granule déclaré transférable est libéré de la mémoire à accès aléatoires et/ou de l'unité de stockage 4.(31) Said granule declared transferable is freed from random access memory and / or from storage unit 4.
(32) Le granule déclaré transférable suivant est localisé. S'il existe le traitement continu à l'étape (19). (33) S'il a encore au moins un granule déclaré transférable, le traitement continue à l'étape (18).(32) The following declared transferable granule is located. If there is continuous treatment in step (19). (33) If it still has at least one granule declared transferable, the processing continues at step (18).
Lorsque le nombre de granules non alloués en mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4 devient insuffisant, certains granules alloués en mémoire à accès aléatoires 2 et/ou sur l'unité de stockage 4, par exemple les granules les moins souvent accèdes, peuvent être déclarés transférables vers l'unité de sauvegarde 5.
When the number of unallocated granules in random access memory 2 and / or on the storage unit 4 becomes insufficient, certain granules allocated in random access memory 2 and / or on the storage unit 4, for example the granules the least accessed, can be declared transferable to the backup unit 5.
Claims
1. Un procédé pour la sauvegarde instantanée de l'image des données d'une unité de stockage (4) d'un système de traitement de données et son transfert vers une unité de sauvegarde (5), ce systèmes comprenant une unité de traitement (1), une mémoire à accès aléatoires (2) et un contrôleur d'unité de stockage et d'unité de sauvegarde (3), l'image des données étant décrite par un compteur de sauvegarde (29), un pointeur vers le noeud racine (28) et un structure de données comprenant un noeud racine (12) et des noeuds contenant soit des pointeurs vers d'autres noeuds, soit des blocs de données, lesdits noeuds étant contenus dans des granules alloués soit dans ladite mémoire à accès aléatoires, soit sur ladite unité de stockage, soit sur ladite unité de sauvegarde, lesdits granules étant pourvus d'un numéro de sauvegarde (24), ledit procédé étant caractérisé en ce qu'il comprend les étapes d'augmentation de un du compteur de sauvegarde, d'allocation d'un granule, de recopie dudit noeud racine dans ledit granule et de mise à jour dudit pointeur de noeud racine, ledit procédé comprenant en outre les opérations : de récupération du contenu d'un bloc de données en parcourant la structure de données, de modification du contenu d'un bloc de données en parcourant la structure de données, en créant lesdits noeuds qui n'existent pas, en dupliquant lesdits noeuds qui doivent être modifiés et dont ledit numéro de sauvegarde n'est pas égal audit compteur de sauvegarde, de transfert des granules dupliqués vers ladite unité de sauvegarde, en allouant des granules sur ladite unité de sauvegarde, en copiant le contenu des granules à transférer, en mettant à jour lesdits pointeurs de la structure de données qui pointent vers lesdits granules, en libérant lesdits granules, de répétition desdites opérations de récupération, de modification et de transfert pour satisfaire les demandes du système de traitement des données.1. A method for the instantaneous backup of the image of the data of a storage unit (4) of a data processing system and its transfer to a backup unit (5), these systems comprising a processing unit (1), a random access memory (2) and a storage unit and backup unit controller (3), the image of the data being described by a backup counter (29), a pointer to the root node (28) and a data structure comprising a root node (12) and nodes containing either pointers to other nodes or data blocks, said nodes being contained in allocated granules or in said access memory random, either on said storage unit or on said backup unit, said granules being provided with a backup number (24), said method being characterized in that it comprises the steps of increasing the counter by one backup, u allocation n granule, of copying said root node into said granule and updating of said root node pointer, said method further comprising the operations of: recovering the content of a data block by browsing the data structure, modifying the content of a data block by traversing the data structure, by creating said nodes which do not exist, by duplicating said nodes which must be modified and whose said backup number is not equal to said backup, transfer counter duplicate granules to said backup unit, by allocating granules to said backup unit, by copying the content of the granules to be transferred, by updating said pointers of the data structure which point to said granules, by releasing said granules, repetition of said recovery, modification and transfer operations to satisfy the requests of the data processing system.
2. Le procédé selon la revendication 1 comprenant en outre une opération de transfert vers ladite unité de sauvegarde des granules les moins accèdes lorsque le nombre de granules non alloués dans ladite mémoire à accès aléatoires ou sur ladite unité de stockage est insuffisant.2. The method according to claim 1 further comprising an operation of transferring to said backup unit the least accessed granules when the number of unallocated granules in said random access memory or on said storage unit is insufficient.
3. Un système de traitement des données comprenant une unité de traitement (1), une mémoire à accès aléatoires (2), un contrôleur d'unité de stockage et d'unité de sauvegarde (3), une unité de stockage (4) et une unité de sauvegarde (5), l'image des données étant décrite par un compteur de sauvegarde (29), un pointeur vers le noeud racine (28) et un structure de données comprenant un noeud racine (12) et des noeuds contenant soit des pointeurs vers d'autres noeuds, soit des blocs de données, lesdits noeuds étant contenus dans des granules alloués soit dans ladite mémoire à accès aléatoires, soit sur ladite unité de stockage, soit sur ladite unité de sauvegarde, lesdits granules étant pourvus d'un numéro de sauvegarde (24), ledit système étant caractérisé en ce que pour la sauvegarde d'une image des données, ledit compteur de sauvegarde est augmenté de un, un granule est alloué, ledit noeud racine est recopié dans ledit granule et ledit pointeur de noeud racine est mise a jour.3. A data processing system comprising a processing unit (1), a random access memory (2), a storage unit and backup unit controller (3), a storage unit (4) and a backup unit (5), the data image being described by a backup counter (29), a pointer to the root node (28) and a data structure comprising a root node (12) and nodes containing either pointers to other nodes or blocks of data, said nodes being contained in allocated granules either in said random access memory, either on said storage unit, or on said backup unit, said granules being provided with '' a backup number (24), said system being characterized in that for saving an image of the data, said backup counter is increased by one, a granule is allocated, said root node is copied into said granule and said root node pointer is updated.
4. Le système suivant la revendication 3 comprenant en outre les opérations: de récupération du contenu d'un bloc de données en parcourant la structure de données, de modification du contenu d'un bloc de données en parcourant la structure de données, en créant lesdits noeuds qui n'existent pas, en dupliquant lesdits noeuds qui doivent être modifiés et dont ledit numéro de sauvegarde n'est pas égal audit compteur de sauvegarde, de transfert des granules dupliqués vers ladite unité de sauvegarde, en allouant des granules sur ladite unité de sauvegarde, en copiant le contenu des granules à transférer, en mettant à jour lesdits pointeurs de la structure de données qui pointent vers lesdits granules, en libérant lesdits granules.The system of claim 3 further comprising the steps of: retrieving the content of a data block by browsing the data structure, modifying the content of a data block by browsing the data structure, creating said nodes which do not exist, by duplicating said nodes which must be modified and whose said backup number is not equal to said backup counter, for transferring the duplicated granules to said backup unit, by allocating granules on said unit backup, by copying the content of the granules to be transferred, by updating said pointers of the data structure which point to said granules, by releasing said granules.
5. Le système suivant la revendication 4 comprenant en outre une opération de transfert vers ladite unité de sauvegarde des granules les moins accèdes lorsque le nombre de granules non allouées dans ladite mémoire à accès aléatoires ou sur ladite unité de stockage est insuffisant.5. The system according to claim 4 further comprising an operation of transferring to said backup unit the least accessed granules when the number of unallocated granules in said random access memory or on said storage unit is insufficient.
6. Le système suivant la revendication 3, 4 ou 5 comprenant en outre un contrôleur d'interface ordinateur (6) permettant de répondre aux demandes de récupération et de modification de données provenant d'un ordinateur connecté audit système. 6. The system of claim 3, 4 or 5 further comprising a computer interface controller (6) for responding to requests for retrieval and modification of data from a computer connected to said system.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/FR1995/001581 WO1997020270A1 (en) | 1995-11-30 | 1995-11-30 | Storage unit data saving method |
AU43064/96A AU4306496A (en) | 1995-11-30 | 1995-11-30 | Storage unit data saving method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/FR1995/001581 WO1997020270A1 (en) | 1995-11-30 | 1995-11-30 | Storage unit data saving method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1997020270A1 true WO1997020270A1 (en) | 1997-06-05 |
Family
ID=9476049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR1995/001581 WO1997020270A1 (en) | 1995-11-30 | 1995-11-30 | Storage unit data saving method |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU4306496A (en) |
WO (1) | WO1997020270A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163148A (en) * | 1989-08-11 | 1992-11-10 | Digital Equipment Corporation | File backup system for producing a backup copy of a file which may be updated during backup |
EP0566966A2 (en) * | 1992-04-20 | 1993-10-27 | International Business Machines Corporation | Method and system for incremental backup copying of data |
-
1995
- 1995-11-30 AU AU43064/96A patent/AU4306496A/en not_active Abandoned
- 1995-11-30 WO PCT/FR1995/001581 patent/WO1997020270A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163148A (en) * | 1989-08-11 | 1992-11-10 | Digital Equipment Corporation | File backup system for producing a backup copy of a file which may be updated during backup |
EP0566966A2 (en) * | 1992-04-20 | 1993-10-27 | International Business Machines Corporation | Method and system for incremental backup copying of data |
Non-Patent Citations (1)
Title |
---|
"Storage management mechanism for managing snapshot pages", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 35, no. 4B, September 1992 (1992-09-01), NEW YORK US, pages 26 - 29, XP002001557 * |
Also Published As
Publication number | Publication date |
---|---|
AU4306496A (en) | 1997-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799603B2 (en) | Efficient use of memory and accessing of stored records | |
US5535381A (en) | Apparatus and method for copying and restoring disk files | |
FR2681707A1 (en) | FILE SYSTEM FOR SELECTIVELY REDISTRIBUTING FILES AND METHOD FOR AFFECTING MEMORY SPACE IN A COMPUTER SYSTEM COMPRISING MULTIPLE DATA STORAGE DEVICES. | |
US6505216B1 (en) | Methods and apparatus for backing-up and restoring files using multiple trails | |
US8527455B2 (en) | Seeding replication | |
JP6033241B2 (en) | Backup and restore strategies for data deduplication | |
EP0030504B1 (en) | Device for the synchronization and allocation of processes between several processors in a data processing system | |
KR101539813B1 (en) | Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps | |
US8271456B2 (en) | Efficient backup data retrieval | |
FR2613505A1 (en) | METHOD OF FAST OPENING OF DISC FILES IDENTIFIED BY THE NAME OF PATHS | |
EP0098928A2 (en) | Method and apparatus for logging journal data using a log write ahead data set | |
FR2931970A1 (en) | METHOD FOR GENERATING HANDLING REQUIREMENTS OF SERVER CLUSTER INITIALIZATION AND ADMINISTRATION DATABASE, DATA CARRIER AND CLUSTER OF CORRESPONDING SERVERS | |
FR2824160A1 (en) | DYNAMICALLY CONFIGURABLE GENERIC CONTAINER | |
EP0263014A1 (en) | Method for file management on a read-only information carrier | |
US8001087B1 (en) | Method and apparatus for performing selective backup operations based on file history data | |
US6910038B1 (en) | Methods for efficient host processing of data files selected for recording to an optical disc media | |
EP0805392B1 (en) | Method and computer program product to reuse directory search handles | |
Fasheh | OCFS2: The Oracle clustered file system, version 2 | |
US11487731B2 (en) | Read iterator for pre-fetching nodes of a B-tree into memory | |
FR2720529A1 (en) | Computer data back-up configuring and transferring method | |
WO1997020270A1 (en) | Storage unit data saving method | |
FR2811784A1 (en) | MEMORY MANAGEMENT DEVICE FOR RECORDING DATA BLOCKS BY SUBSTITUTION | |
EP3506110A1 (en) | Multi-access to a data file stored in a data storage system related to a buffer memory | |
CN112597102B (en) | High-efficiency mirror image file system implementation method | |
US7069379B2 (en) | Multistage information recording method and system using magnetic recording disk units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU CA JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |