[go: up one dir, main page]

FR2940570A1 - Computing data storage tool for network of nodes in computer system, has constructor constructing ordered sequence of calls of elements, where call sequence comprises conveyor call and previous call of lock, for each next call of conveyor - Google Patents

Computing data storage tool for network of nodes in computer system, has constructor constructing ordered sequence of calls of elements, where call sequence comprises conveyor call and previous call of lock, for each next call of conveyor Download PDF

Info

Publication number
FR2940570A1
FR2940570A1 FR0807391A FR0807391A FR2940570A1 FR 2940570 A1 FR2940570 A1 FR 2940570A1 FR 0807391 A FR0807391 A FR 0807391A FR 0807391 A FR0807391 A FR 0807391A FR 2940570 A1 FR2940570 A1 FR 2940570A1
Authority
FR
France
Prior art keywords
access
data
call
access manager
parity
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.)
Granted
Application number
FR0807391A
Other languages
French (fr)
Other versions
FR2940570B1 (en
Inventor
Michael Dussere
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.)
Seanodes
Original Assignee
Seanodes
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 Seanodes filed Critical Seanodes
Priority to FR0807391A priority Critical patent/FR2940570B1/en
Publication of FR2940570A1 publication Critical patent/FR2940570A1/en
Application granted granted Critical
Publication of FR2940570B1 publication Critical patent/FR2940570B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The tool has a storage address accessing manager (44) including an access actuator carrying out accessing of a storage address on a storage space (38) i.e. direct-access local memory, of a network of user stations. The accessing manager has a constructor that constructs an ordered sequence of calls of elements of the accessing manager from storage address accessing request data. The ordered sequence of calls comprises a conveyor call and a previous call of a lock of a conveyor accessing manager (40), for each next call of a conveyor.

Description

SEANODES4.FRD 1 Système de stockage comprenant plusieurs noeuds en réseau avec gestion de la parité SEANODES4.FRD 1 Storage system with multiple network nodes with parity management

L'invention concerne les systèmes informatiques comprenant plusieurs postes informatiques dits noeuds interconnectés en un réseau. Les réseaux modernes comportent des stations utilisateurs qui sont reliées à un ou plusieurs serveurs et peuvent partager des applications etlou des espaces de stockage de manière locale ou distante. The invention relates to computer systems comprising several computer stations called nodes interconnected in a network. Modern networks include user stations that are connected to one or more servers and can share applications and / or storage space locally or remotely.

10 Dans le cadre d'applications partagées faisant usage d'une quantité importante de données ou dans le cadre du partage d'une quantité importante de données, il est fréquent de faire appel à des systèmes de stockage spécialisés, tels que les Storage Area Network (ou SAN). In shared applications that use a large amount of data or share a large amount of data, specialized storage systems, such as the Storage Area Network, are often used. (or SAN).

L'utilisation de ces systèmes perfectionnés présente certains désavantages, comme les coûts 15 associés, les limitations de performance et d'extensibilité, et la lourdeur générale de l'installation qui leur correspond. The use of these advanced systems has certain disadvantages, such as the associated costs, the limitations of performance and extensibility, and the overall heaviness of the installation that corresponds to them.

Par ailleurs, avec les réseaux modernes, l'utilisation de ces systèmes perfectionnés représente une sous utilisation du matériel déjà présent dans le réseau. Enfin, les systèmes qui ont été proposés qui utilisent le matériel déjà présent dans le réseau ont des performances insatisfaisantes, notamment en termes de gestion des pannes ainsi que dans la quantité d'espace allouée à la redondance des données. Moreover, with modern networks, the use of these advanced systems represents an underutilization of the hardware already present in the network. Finally, the systems that have been proposed that use the hardware already present in the network have unsatisfactory performance, especially in terms of fault management as well as in the amount of space allocated to data redundancy.

25 L'invention vient améliorer la situation. The invention improves the situation.

A cet effet, l'invention propose un outil informatique de stockage de données dans un réseau de stations, chaque station comprenant une ou plusieurs unités de stockage dont certaines au moins comportent des adresses de stockage propres à recevoir des données de stockage et des 30 données de parité, l'outil étant implanté sur chaque station et comprenant d'une part un virtualiseur associant des adresses virtuelles et des adresses de stockage, et d'autre part un gestionnaire d'accès aux adresses de stockage. 20 Dans cet outil, le virtualiseur établit une correspondance entre un groupe d'adresses virtuelles et un groupe d'adresses de stockage donnés pour stocker les données de stockage correspondantes ainsi que des données de parité, les adresses de stockage de chaque groupe étant réparties sur des unités de stockage distinctes. For this purpose, the invention proposes a computer tool for storing data in a network of stations, each station comprising one or more storage units, at least some of which have storage addresses suitable for receiving storage data and data. parity, the tool being implanted on each station and comprising on the one hand a virtualizer associating virtual addresses and storage addresses, and on the other hand an access manager to the storage addresses. In this tool, the virtualizer maps a group of virtual addresses and a group of given storage addresses to store the corresponding storage data as well as parity data, the storage addresses of each group being distributed over separate storage units.

En outre, le gestionnaire d'accès comprend les éléments suivants : - un verrouilleur, agencé pour verrouiller ou déverrouiller l'accès à une adresse de stockage sur une unité de stockage de la station sur laquelle est implanté l'outil, - un actionneur d'accès, agencé pour effectuer un accès à une adresse de stockage sur unité de 10 stockage de la station sur laquelle est implanté l'outil, - un contrôleur de parité, agencé pour calculer des données de parité, - un connecteur, agencé pour permettre un échange de données entre le gestionnaire d'accès et un autre gestionnaire d'accès, - un relayeur, agencé pour transmettre des données caractéristiques d'une requête d'accès, du 15 gestionnaire d'accès vers un autre gestionnaire d'accès, - un constructeur, agencé pour construire, à partir de données de requête d'accès à une adresse de stockage, une séquence ordonnée d'appel de certains au moins des éléments des gestionnaires d'accès des stations comportant les adresses de stockage du groupe d'adresses désigné par ladite requête d'accès, 20 ladite séquence ordonnée comprenant au moins un appel au relayeur, et comprenant, pour chaque appel ultérieur d'un relayeur, un appel préalable au verrouilleur du gestionnaire d'accès de ce relayeur. In addition, the access manager comprises the following elements: a locker, arranged to lock or unlock access to a storage address on a storage unit of the station on which the tool is implanted; access, arranged to make an access to a storage unit storage address of the station on which the tool is implanted, - a parity controller, arranged to calculate parity data, - a connector, arranged to enable an exchange of data between the access manager and another access manager, - a relay, arranged to transmit data characteristic of an access request, from the access manager to another access manager, a constructor, arranged to construct, based on access request data for a storage address, an ordered sequence of calling at least some of the elements of the access managers of the shared stations; carrying the storage addresses of the address group designated by said access request, said ordered sequence comprising at least one call to the relayer, and comprising, for each subsequent call of a relay, a prior call to the locker of the manager of the this runner's access.

D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la 25 description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : - la figure 1 montre une vue fonctionnelle générale d'un système informatique selon l'invention, - la figure 2 montre un exemple d'implémentation logique du système de la figure 1, 30 - la figure 3 montre un exemple de composition d'un élément de la figure 2, - la figure 4 montre un exemple de composition d'un élément de la figure 3, - la figure 5 montre un procédé d'accès à un fichier dans le système de la figure 1, - la figure 6 montre un exemple de mise en oeuvre d'une opération de la figure 5, et - les figures 7 à I l représentent des séquences d'opérations de la figure 6 pour divers accès selon le procédé de la figure 5. Other characteristics and advantages of the invention will appear better on reading the following description, taken from examples given for illustrative and non-limiting purposes, taken from the drawings in which: FIG. 1 shows a general functional view of FIG. 2 shows an example of a logical implementation of the system of FIG. 1; FIG. 3 shows an exemplary composition of an element of FIG. 2; FIG. shows an example of composition of an element of FIG. 3, - FIG. 5 shows a method of accessing a file in the system of FIG. 1, - FIG. 6 shows an example of carrying out an operation. of FIG. 5, and FIGS. 7 to 11 represent sequences of operations of FIG. 6 for various accesses according to the method of FIG. 5.

Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. The drawings and the description below contain, for the most part, elements of a certain character. They can therefore not only serve to better understand the present invention, but also contribute to its definition, if any.

La présente description est de nature à faire intervenir des éléments susceptibles de protection par le droit d'auteur et/ou le copyright. Le titulaire des droits n'a pas d'objection à la reproduction à l'identique par quiconque du présent document de brevet ou de sa description, telle qu'elle apparaît dans les dossiers officiels. Pour le reste, il réserve intégralement ses droits. This description is likely to involve elements likely to be protected by copyright and / or copyright. The rights holder has no objection to the identical reproduction by anyone of this patent document or its description, as it appears in the official records. For the rest, he reserves his rights in full.

La figure 1 représente un schéma général d'un système informatique selon l'invention. Dans ce système, un environnement d'application 2 a accès à un gestionnaire de système de fichiers 4. Une couche de virtualisation 6 établit la correspondance entre le gestionnaire de système de fichiers 4 et des serveurs de stockage 8. FIG. 1 represents a general diagram of a computer system according to the invention. In this system, an application environment 2 has access to a file system manager 4. A virtualization layer 6 establishes the correspondence between the file system manager 4 and storage servers 8.

La figure 2 représente une implémentation logique du système de la figure 1. Dans cette implémentation, un ensemble de stations 10, également appelées ici noeuds sont interconnectées en un réseau dont elles constituent les ressources physiques et applicatives. FIG. 2 represents a logical implementation of the system of FIG. 1. In this implementation, a set of stations 10, also referred to herein as nodes, are interconnected in a network of which they constitute the physical and application resources.

Dans l'exemple ici décrit, le réseau est constitué de 5 stations, notées Ni avec i variant entre 1 et 5. L'environnement d'application 2 est réalisé en une couche applicative répartie 12 sur les Ni, N2 et N3, en une couche applicative 14 sur le N4 et une couche applicative 16 sur le N5. In the example described here, the network consists of 5 stations, denoted Ni with i varying between 1 and 5. The application environment 2 is made of a distributed application layer 12 on the Ni, N2 and N3, in one application layer 14 on the N4 and an application layer 16 on the N5.

On notera que le terme poste ou station utilisé ici doit être interprété de manière générale, et comme désignant des éléments informatiques du réseau sur lesquels tournent des applications ou des programmes de serveur, ou les deux. Le gestionnaire de système de fichiers 4 est réalisé en un système de fichiers réparti 18, et deux systèmes de fichiers non répartis 20 et 22. Le système 18 est réparti sur les N1, N2 et N3 et définit l'ensemble des fichiers accessibles depuis la couche applicative répartie 12. Les30 systèmes de fichiers 20 et 22 définissent respectivement l'ensemble des fichiers accessibles depuis les couches applicatives 14 et 16. Note that the term station or station used here should be interpreted broadly, and as designating network computing elements on which applications or server programs run, or both. The file system manager 4 is produced in a distributed file system 18, and two non-distributed file systems 20 and 22. The system 18 is distributed over the N1, N2 and N3 and defines all the files accessible from the distributed application layer 12. The file systems 20 and 22 respectively define the set of files accessible from the application layers 14 and 16.

Les fichiers désignés par les systèmes de fichiers 18, 20 et 22 sont stockés dans un espace de stockage virtuel 24 qui est réparti sur l'ensemble des Ni avec i variant entre 1 et 5. L'espace de stockage virtuel 24 est ici réparti en un espace logique partagé 26, et deux espaces logiques privés 28 et 30. The files designated by the file systems 18, 20 and 22 are stored in a virtual storage space 24 which is distributed over the set of Ni with i varying between 1 and 5. The virtual storage space 24 is here divided into a shared logical space 26, and two private logical spaces 28 and 30.

L'espace logique partagé 26 correspond à l'espace accessible depuis la couche applicative répartie 12 au moyen du système de fichiers réparti 18, et les espaces logiques privés 28 et 30 à l'espace accessible depuis les couches applicatives 14 et 16 au moyen des systèmes de fichiers 20 et 22. The shared logical space 26 corresponds to the space accessible from the distributed application layer 12 by means of the distributed file system 18, and the private logical spaces 28 and 30 to the space accessible from the application layers 14 and 16 by means of the file systems 20 and 22.

L'espace logique 26 est réparti sur les N1, N2 et N3, l'espace logique privé 28 sur les N3 et N4, et l'espace logique privé 30 sur le N5. The logical space 26 is distributed over the N1, N2 and N3, the private logical space 28 on the N3 and N4, and the private logical space 30 on the N5.

Ainsi, une application de la couche 12 (respectivement 14, 16) "voit" les données stockées dans l'espace logique 26 (respectivement 28, 30) au moyen du système de fichiers 18 (respectivement 20, 22), bien que celles-ci ne soient pas forcément physiquement présentes sur l'un des disques de stockage de la station 10 qui utilise cette application. Thus, an application of the layer 12 (respectively 14, 16) "sees" the data stored in the logical space 26 (respectively 28, 30) by means of the file system 18 (respectively 20, 22), although these they are not necessarily physically present on one of the storage disks of the station 10 that uses this application.

Par ailleurs, les espaces 26, 28 et 30 sont purement logiques, c'est-à-dire qu'ils ne représentent pas directement des espaces de stockage physiques. Les espaces logiques sont cartographiés au moyen d'adresses virtuelles qui sont référencées ou contenues dans les systèmes de fichiers 18, 20 et 22. Furthermore, the spaces 26, 28 and 30 are purely logical, that is, they do not directly represent physical storage spaces. Logical spaces are mapped using virtual addresses that are referenced or contained in file systems 18, 20, and 22.

Pour accéder aux données de ces fichiers, il est nécessaire de faire appel à un module de correspondance. Le module de correspondance contient une table de correspondance entre les adresses virtuelles des données dans les espaces logiques et des adresses physiques qui désignent les espaces de stockage physiques dans lesquels ces données sont réellement stockées. To access the data of these files, it is necessary to use a correspondence module. The correspondence module contains a table of correspondence between the virtual addresses of the data in the logical spaces and physical addresses that designate the physical storage spaces in which these data are actually stored.

Plusieurs réalisations sont possibles pour le module de correspondance. La répartition des espaces de stockage physiques décrite ici est un exemple destiné à montrer la portée très générale de l'invention. Several achievements are possible for the correspondence module. The distribution of the physical storage spaces described here is an example intended to show the very general scope of the invention.

Comme on peut le voir dans l'exemple présenté, chaque station est utilisée à la fois pour la couche applicative et pour la couche de stockage. Cette multifonctionnalité permet d'utiliser l'espace libre sur l'ensemble des stations du réseau, plutôt que laisser cet espace inoccupé. As can be seen in the example presented, each station is used for both the application layer and the storage layer. This multifunctionality makes it possible to use the free space on all the stations of the network, rather than leaving this space unoccupied.

Dans le cadre de l'invention, il serait cependant possible de spécialiser certaines des stations, 10 et de créer un noeud dédié au stockage ou un noeud dédié à des applications. In the context of the invention, however, it would be possible to specialize some of the stations, and create a node dedicated to storage or a node dedicated to applications.

Cela signifie que, dans le cadre de l'invention, toute station peut jouer un rôle de noeud applicatif, un rôle de noeud stockant, ou encore ces deux rôles à la fois. This means that, in the context of the invention, any station can play an application node role, a storage node role, or both roles at once.

15 L'ensemble des ressources applicatives, de stockage et de système de fichiers peuvent être intégrées localement sur chaque station, ou bien réparties sur les stations du réseau. All the application, storage and file system resources can be integrated locally on each station, or else distributed on the stations of the network.

C'est par exemple le cas des stations N1, N2 et N3, dont les ressources sont intégralement réparties, tant au niveau applicatif qu'au niveau du système de fichiers et du stockage. La figure 3 représente un exemple d'architecture d'une station 10 de la figure 2. La station représentée dans cet exemple peut représenter l'une des stations N1, N2 ou N3. This is for example the case of N1, N2 and N3 stations, whose resources are fully distributed, both at the application level and at the level of the file system and storage. FIG. 3 represents an exemplary architecture of a station 10 of FIG. 2. The station represented in this example can represent one of the stations N1, N2 or N3.

La station Nx présente individuellement une structure semblable à celle de la structure globale 25 représentée sur la figure 1. Elle comporte ainsi une couche applicative 32, un système de fichiers 34, une couche de virtualisation 36 et un espace de stockage 38 sous la forme d'une mémoire locale à accès direct. The Nx station individually has a structure similar to that of the overall structure shown in FIG. 1. It thus comprises an application layer 32, a file system 34, a virtualization layer 36 and a storage space 38 in the form of FIG. a local memory with direct access.

La couche de virtualisation 36 comporte un moteur 40 et une table de correspondance 42. 30 L'accès direct à l'espace de stockage 38 est géré par un gestionnaire d'accès 44. The virtualization layer 36 includes a motor 40 and a look-up table 42. The direct access to the storage space 38 is managed by an access manager 44.

L'exemple décrit ici représente un mode de réalisation perfectionné de l'invention, dans lequel toutes les ressources, tant applicatives que de stockage, sont réparties sur le réseau. 20 Cela signifie par exemple que le système de fichiers 34 n'est pas intégralement présent sur cette station, mais réparti sur plusieurs d'entre elles, et que l'accès à celui-ci implique la communication avec d'autres noeuds du réseau qui contiennent les données recherchées. The example described here represents an improved embodiment of the invention, in which all the resources, both application and storage, are distributed over the network. This means, for example, that the file system 34 is not entirely present on this station, but distributed over several of them, and that access to it implies communication with other nodes of the network which contain the desired data.

Il en est de même pour la couche de virtualisation 36 et le gestionnaire d'accès 44. La répartition de ces éléments est gérée au moyen d'un module d'administration 46. It is the same for the virtualization layer 36 and the access manager 44. The distribution of these elements is managed by means of a management module 46.

Pour la suite de la description, il importe peu que les ressources considérées soient réparties ou pas. For the rest of the description, it does not matter whether the resources in question are distributed or not.

Le module d'administration 46 est principalement utilisé lors de la création et de la mise à jour des espaces logiques. Lors de la création ou de la modification d'un espace logique, le module d'administration 46 appelle la couche de virtualisation 36 pour créer la table de correspondance entre chaque adresse virtuelle de l'espace logique et une adresse physique sur un noeud de stockage donné. The administration module 46 is mainly used during the creation and updating of the logical spaces. When creating or modifying a logical space, the administration module 46 calls the virtualization layer 36 to create the correspondence table between each virtual address of the logical space and a physical address on a storage node given.

Ensuite, les correspondances entre un fichier accessible par ce système de fichiers et les adresses virtuelles des données qui composent ce fichier sont réalisées au niveau du système de fichiers qui exploite cet espace logique, les données "physiques" étant stockées aux adresses physiques associées dans la table de correspondance aux adresses virtuelles, conformément à la cartographie établie lors de la création de l'espace logique. Then, the correspondences between a file accessible by this file system and the virtual addresses of the data that make up this file are made at the level of the file system that exploits this logical space, the "physical" data being stored at the associated physical addresses in the file. correspondence table to the virtual addresses, in accordance with the mapping established during the creation of the logical space.

Cela signifie que, dès la création d'un espace logique par le module d'administration, les correspondances entre les adresses virtuelles et les adresses physiques sont établies. Les adresses virtuelles apparaissent ainsi "vides" au système de fichier accédant à l'espace logique, bien que les adresses physiques qui leur correspondent soient déjà "réservées" par le biais de la table de correspondance. This means that, as soon as a logical space is created by the administration module, the correspondences between the virtual addresses and the physical addresses are established. The virtual addresses appear "empty" to the file system accessing the logical space, although the physical addresses that correspond to them are already "reserved" through the correspondence table.

C'est lorsque le lien entre les données des fichiers de cet espace et les adresses virtuelles de 30 ces données est établi que les adresses physiques sont remplies. It is when the link between the file data of this space and the virtual addresses of this data is established that the physical addresses are fulfilled.

Dans le mode de réalisation décrit ici, la table de correspondance 42 est un tableau qui contient des informations permettant de retrouver les correspondances. Lorsqu'une application fait appel à un espace mémoire donné, le moteur 40 interagit avec la table 42 pour établir l'adresse physique correspondante. In the embodiment described here, the look-up table 42 is a table that contains information for retrieving matches. When an application uses a given memory space, the engine 40 interacts with the table 42 to establish the corresponding physical address.

On comprendra qu'ici, la table 42 n'est pas une look-up table classique, mais plutôt une table qui stocke un nombre d'informations restreint mais qui permet au moteur 40 de recouvrer les adresses physiques. It will be understood that here, the table 42 is not a conventional look-up table, but rather a table which stores a limited number of information but which allows the engine 40 to recover the physical addresses.

En effet, comme cela sera explicité plus bas, les adresses sur les différentes unités de stockage sont associées par bloc, ce qui permet de retrouver une adresse rapidement, sans avoir à stocker toutes les correspondances possibles. Indeed, as will be explained below, the addresses on the different storage units are associated by block, which allows to find an address quickly, without having to store all possible matches.

La figure 5 représente un procédé mis en oeuvre par le système pour accéder à un fichier. Figure 5 shows a method implemented by the system to access a file.

L'accès à un fichier par une application de la couche applicative d'un noeud donné est initialisé par une requête d'accès fichier 50. La requête d'accès fichier 50 comporte : - un identifiant du fichier concerné pour le système de fichiers et une adresse dans ce fichier, - la taille de la requête, c'est-à-dire le nombre de bits à accéder à la suite de l'adresse du fichier visé, - le type de requête, à savoir la lecture ou l'écriture, et - un identifiant de tampon pour stocker les données lues ou obtenir les données à écrire. The access to a file by an application of the application layer of a given node is initialized by a file access request 50. The file access request 50 comprises: an identifier of the file concerned for the file system and an address in this file, - the size of the request, that is to say the number of bits to access following the address of the targeted file, - the type of request, namely the reading or the write, and - a buffer identifier for storing the read data or obtaining the data to be written.

Dans une opération 52, le système de fichiers détermine une ou plusieurs adresses virtuelles pour les données de ce fichier, et génère une ou plusieurs requêtes d'accès virtuel sur la base de la requête 50 et de ces adresses virtuelles. In an operation 52, the file system determines one or more virtual addresses for the data in this file, and generates one or more virtual access requests based on the request 50 and these virtual addresses.

Les requêtes d'accès virtuel comportent chacune : - l'adresse virtuelle visée, - la taille de la requête, c'est-à-dire le nombre de bits à accéder à la suite de l'adresse virtuelle visée, - le type de requête, qui est identique à celui de la requête 50, et - un identifiant de tampon pour stocker les données lues ou obtenir les données à écrire. The virtual access requests each comprise: the targeted virtual address, the size of the request, that is to say the number of bits to be accessed following the targeted virtual address, the type of request. query, which is identical to that of the request 50, and - a buffer identifier for storing the read data or obtaining the data to be written.

Si l'on se rapporte au système décrit sur la figure 2, l'opération 52 consiste à déterminer l'espace logique et la ou les adresses virtuelles sur cet espace désignées par la requête 50, et à produire une ou plusieurs requêtes d'accès virtuel. With reference to the system described in FIG. 2, the operation 52 consists in determining the logical space and the virtual address or addresses on this space designated by the request 50, and producing one or more access requests. virtual.

Le terme d'accès virtuel signifie que l'on accède à des adresses de la couche virtuelle. Cependant, comme il ressort clairement de ce qui précède, cet accès n'est pas virtuel en lui-même et implique un accès à des données physiques correspondantes. The term virtual access means that access is made to addresses of the virtual layer. However, as is clear from the foregoing, this access is not virtual in itself and involves access to corresponding physical data.

Il existe une différence de niveau entre les requêtes d'accès fichiers et les requêtes d'accès virtuel. En effet, une requête d'accès fichier va viser le contenu d'une quantité importante d'adresses virtuelles, afin de permettre de reconstituer le contenu d'un fichier, alors qu'une requête virtuelle vise le contenu d'un bloc de données associé à cette adresse. There is a difference in level between file access requests and virtual access requests. Indeed, a file access request will target the content of a large quantity of virtual addresses, to enable the content of a file to be reconstructed, whereas a virtual request targets the contents of a data block. associated with this address.

La ou les requêtes d'accès virtuel obtenues sont alors transmises à la couche de virtualisation, qui détermine la ou les adresses physiques et les espaces de stockage correspondants dans une opération 54. The resulting virtual access request (s) is then transmitted to the virtualization layer, which determines the physical address (es) and the corresponding storage spaces in an operation (54).

Pour déterminer les adresses physiques, la couche de virtualisation opère en utilisant le moteur 40 et la table de correspondance 42. Dans le cadre d'une requête d'accès en lecture, les données du fichier existent déjà, et le moteur 40 appelle la table de correspondance 42 avec la ou les adresses virtuelles de ce fichier pour déterminer par correspondance la ou les adresses physiques des données du fichier. To determine the physical addresses, the virtualization layer operates using the engine 40 and the look-up table 42. In the context of a read access request, the file data already exists, and the engine 40 calls the table correspondence 42 with the virtual address (es) of this file to determine by correspondence the physical address (es) of the data of the file.

25 Dans le cadre d'une requête d'accès en écriture, les données du fichier n'existent pas forcément de manière préalable. Néanmoins, comme on l'a vu plus haut, les correspondances entre adresses virtuelles et adresses physiques sont figées, et le moteur 40 opère donc de la même manière que dans le cadre d'une requête en lecture pour déterminer la ou les adresses physiques des données. 30 Dans tous les cas, une fois que le moteur 40 a déterminé les adresses physiques, il génère dans une opération 56 des requêtes d'accès physique qu'il transmet au gestionnaire d'accès 44.20 Dans l'opération 56, les requêtes d'accès physique sont générées sur la base de la requête 50 et de la ou des adresses physiques déterminées à l'opération 54. In the context of a write access request, the data of the file do not necessarily exist in a prior manner. Nevertheless, as we have seen above, the correspondences between virtual addresses and physical addresses are fixed, and the motor 40 therefore operates in the same way as in the context of a read request to determine the physical address or addresses of the data. In any case, once the engine 40 has determined the physical addresses, it generates in an operation 56 physical access requests that it transmits to the access manager 44.20. In the operation 56, the requests of Physical access is generated based on the request 50 and the physical address (es) determined in the operation 54.

Ces requêtes comportent : - l'adresse physique visée, - la taille de la requête, c'est-à-dire le nombre de bits à accéder à la suite de l'adresse physique visée par la requête, - le type d'action visée, à savoir la lecture, l'écriture, la resynchronisation ou la vérification, - un identifiant de tampon pour stocker les données lues ou obtenir les données à écrire, et - des données complémentaires nécessaires à l'exécution de la requête. These requests include: - the target physical address, - the size of the request, that is to say the number of bits to access following the physical address targeted by the request, - the type of action referred to, namely reading, writing, resynchronization or verification, - a buffer identifier for storing the read data or obtaining the data to be written, and - additional data necessary for the execution of the request.

L'adresse physique et la taille de la requête sont obtenues directement de l'opération 54, et le type de la requête est hérité du type de la requête d'accès virtuel concernée. The physical address and the size of the request are obtained directly from the operation 54, and the type of the request is inherited from the type of the virtual access request concerned.

Dans le cadre de l'invention, les données sont stockées selon un schéma de parité. Cela signifie qu'à chaque adresse virtuelle correspond une unique adresse physique. In the context of the invention, the data are stored according to a parity diagram. This means that each virtual address has a unique physical address.

En outre, les adresses virtuelles et les adresses physiques correspondantes sont regroupées par blocs d'adresses, et une adresse physique supplémentaire est affectée à chaque bloc pour stocker des données de parité. In addition, the virtual addresses and the corresponding physical addresses are grouped by address blocks, and an additional physical address is assigned to each block to store parity data.

Les données de parité sont calculées en réalisant une opération ou exclusif avec toutes les données du bloc. Ainsi, si un disque contenant une des adresses physiques du bloc tombe en panne, il reste possible d'accéder aux données perdues, à partir des données des autres adresses du bloc et des données de parité correspondantes. The parity data is calculated by performing an operation or exclusive with all the data of the block. Thus, if a disk containing one of the physical addresses of the block fails, it remains possible to access the lost data, from the data of the other addresses of the block and the corresponding parity data.

Cela signifie néanmoins que la gestion des accès concurrents à des données d'un bloc donné et le maintien de la cohérence entre les données d'un bloc et ses données de parité sont des objectifs cruciaux. It does mean, however, that managing concurrent access to data in a given block and maintaining consistency between data in a block and its parity data are crucial objectives.

Les données complémentaires de la requête d'accès physique servent à fournir au gestionnaire d'accès 44 les informations nécessaires à la réalisation de ces objectifs. The additional data of the physical access request is used to provide the access manager 44 with the information necessary to achieve these objectives.

Ainsi, ces données peuvent comprendre : - l'ensemble des adresses physiques du bloc auquel appartient l'adresse physique visée, - un identifiant d'une unité de stockage tombée en panne ou désynchronisée, et - un indicateur de modèle de requête à mettre en oeuvre. Une boucle est alors lancée, dans laquelle une condition d'arrêt 58 est atteinte lorsqu'une requête d'accès physique a été émise au gestionnaire d'accès 44 pour toutes les adresses physiques obtenues à l'opération 52. Thus, this data may comprise: - all the physical addresses of the block to which the physical address in question belongs, - an identifier of a storage unit that has fallen down or desynchronized, and - a request model indicator to be put into operation. artwork. A loop is then started, in which a stopping condition 58 is reached when a physical access request has been sent to the access manager 44 for all the physical addresses obtained in the operation 52.

10 En fait, chaque requête d'accès physique est placée dans une file d'attente de requête du gestionnaire d'accès 44 pour exécution dans une opération 60. Le gestionnaire d'accès 44 peut optionnellement comporter plusieurs files d'attente, par exemple une file d'attente par noeud avec lequel il interagit. In fact, each physical access request is placed in a request queue of the access manager 44 for execution in an operation 60. The access manager 44 may optionally include several queues, for example a queue per node with which it interacts.

15 Dans cette boucle, toutes les requêtes d'accès physique de l'opération 56 sont représentées comme exécutées successivement pour des raisons de simplicité. Cependant, l'exécution peut également être réalisée en parallèle, et pas seulement en série. In this loop, all the physical access requests of the operation 56 are represented as successively executed for the sake of simplicity. However, the execution can also be performed in parallel, and not only in series.

Pour l'exécution d'une requête d'accès physique donnée, le gestionnaire d'accès 44 va 20 déterminer une séquence d'appels conditionnés à des éléments qui lui sont propres et/ou à d'autres éléments de gestionnaires d'accès 44 contrôlant les autres unités de stockage. For the execution of a given physical access request, the access manager 44 will determine a sequence of conditioned calls to its own elements and / or to other elements of access managers. controlling other storage units.

La figure 4 montre différents éléments du gestionnaire d'accès 44 pour exécuter les requêtes d'accès physique (ci-après requêtes d'accès). Dans l'exemple décrit ici, le gestionnaire d'accès comprend un verrouilleur 80, un actionneur d'accès 82, un contrôleur de parité 84, un connecteur 86, un relayeur 88, et un constructeur 90. Figure 4 shows different elements of the access manager 44 to execute the physical access requests (hereinafter access requests). In the example described here, the access manager comprises a lock 80, an access actuator 82, a parity controller 84, a connector 86, a relay 88, and a manufacturer 90.

30 Le constructeur 90 est un élément qui reçoit les données qui décrivent une requête d'accès, et qui construit la séquence d'exécution de la requête. Le constructeur 90 part de paramètres décrivant l'état général du système, ainsi que des données particulières à la requête d'accès, comme l'adresse visée et la nature de la requête. 25 Par paramètres décrivant l'état général du système, on entend toute donnée qui permet au constructeur de déterminer si une des unités de stockage à laquelle un accès doit être fait pour mener à bien la requête est en panne, et si oui laquelle. Constructor 90 is an element that receives data that describes an access request, and that constructs the execution sequence of the request. The constructor 90 starts from parameters describing the general state of the system, as well as data specific to the access request, such as the target address and the nature of the request. By parameters describing the general state of the system is meant any data that allows the manufacturer to determine if one of the storage units to which access is to be made to carry out the request is down, and if so which.

Par nature de la requête, on entend la notion de lecture ou d'écriture vue plus haut. En effet, une opération de lecture ne nécessite pas de modification de données et pourra généralement être traitée avec une séquence plus simple. By nature of the request, we mean the concept of reading or writing seen above. Indeed, a read operation does not require data modification and can generally be processed with a simpler sequence.

A partir de ces informations, le constructeur 90 va appliquer un schéma générique de 10 séquence tiré des paramètres mentionnés plus haut, et le particulariser avec le cas particulier de cette requête. From this information, the constructor 90 will apply a generic sequence schema taken from the parameters mentioned above, and particularize it with the particular case of this request.

Les différents schémas génériques seront décrits avec les figures 7 à 11. The different generic schemes will be described with figures 7 to 11.

15 Dans la séquence établie par le constructeur 90, des appels aux éléments du gestionnaire d'accès 44 sont prévus selon un ordre choisi. Des appels à des éléments d'un autre gestionnaire d'accès 44 sont également prévus lorsqu'il est nécessaire d'accéder à des données situées sur une unité de stockage qui n'est pas gérée par le gestionnaire d'accès 44 courant. 20 Pour toute requête d'accès, le constructeur 90 va recevoir du virtualiseur le groupe d'adresses correspondant à l'adresse physique concernée. In the sequence established by the manufacturer 90, calls to the elements of the access manager 44 are provided in a chosen order. Calls to elements of another access manager 44 are also provided when it is necessary to access data located on a storage unit that is not managed by the current access manager 44. For any access request, the constructor 90 will receive from the virtualizer the address group corresponding to the physical address concerned.

Ce groupe d'adresses est transmis selon un ordre fixé qui correspond à un classement des 25 adresses dans le groupe d'adresses correspondant, par exemple celui des adresses virtuelles correspondantes. This group of addresses is transmitted in a fixed order which corresponds to a classification of the addresses in the corresponding address group, for example that of the corresponding virtual addresses.

Ainsi, pour deux séquences distinctes, le constructeur 90 appellera les adresses du groupe d'adresses correspondant selon l'ordre fixé. Le verrouilleur 80 est un élément critique qui a pour fonction d'empêcher ou de libérer l'accès à des données sur une unité de stockage. Cet élément est critique car il permet de maintenir la cohérence des données. Comme on l'a vu plus haut et comme cela apparaîtra mieux par la suite, il est crucial de ne pas modifier certaines données au cours d'une séquence. 30 Le verrouilleur 80 peut effectuer des verrouillages stricts, c'est-à-dire qui excluent tout accès aux données verrouillées. En variante, le verrouilleur 80 peut effectuer des verrouillages sélectifs en fonction de l'accès envisagé pour les données verrouillées. Ainsi, un verrouillage dit de lecture autorisera la réalisation d'un autre verrouillage de lecture. L'actionneur d'accès 82 est le gestionnaire physique du gestionnaire d'accès 44. C'est cet élément qui va concrètement aller lire et écrire sur les unités de stockage contrôlées par le gestionnaire d'accès. Thus, for two separate sequences, the constructor 90 will call the addresses of the corresponding address group according to the set order. The lock 80 is a critical element whose function is to prevent or free access to data on a storage unit. This element is critical because it helps maintain data consistency. As we have seen above and as it will appear better later, it is crucial not to modify certain data during a sequence. The lock 80 can perform strict locks, i.e. which exclude access to the locked data. Alternatively, the lock 80 may perform selective locks depending on the intended access for the locked data. Thus, a so-called read lock will allow the realization of another read lock. The access actuator 82 is the physical manager of the access manager 44. It is this element that will concretely go to read and write on the storage units controlled by the access manager.

10 Le contrôleur de parité 84 est un élément du gestionnaire d'accès qui a pour fonction de calculer un élément de donnée de parité. Comme cela apparaîtra mieux par la suite, le constructeur est agencé pour générer des séquences qui, lorsque cela est nécessaire, génèrent des données de parité au fil de l'eau . Cela permet de réduire la quantité de données qui est transmise et augmente la résilience aux pannes. 15 Le connecteur 86 est un élément du gestionnaire d'accès qui permet la communication entre deux gestionnaires d'accès gérant des unités de stockage distinctes, afin de partager des données. The parity controller 84 is an element of the access manager whose function is to compute a parity data element. As will become apparent later, the constructor is arranged to generate sequences which, when necessary, generate parity data over the water. This reduces the amount of data that is transmitted and increases the resilience to failures. Connector 86 is an access manager element that allows communication between two access managers managing separate storage units for sharing data.

20 Le connecteur 86 peut être mis en oeuvre de différentes manières. The connector 86 may be implemented in different ways.

Dans une première mise en oeuvre, le connecteur effectue des envois directs d'une source vers une destination. Cela signifie que la source s'attend à ce qu'un tampon de réception soit libre sur la destination pour recevoir cet envoi. Cette mise en oeuvre est directe et peu coûteuse en communication, mais elle présente des faiblesses dans le sens que, si la destination ne possède pas de tampon libre pour recevoir l'envoi, celui-ci sera perdu et une erreur sera générée. In a first implementation, the connector sends direct mail from a source to a destination. This means that the source expects a receive buffer to be free on the destination to receive this send. This implementation is direct and inexpensive in communication, but it has weaknesses in the sense that, if the destination does not have a free buffer to receive the shipment, it will be lost and an error will be generated.

30 Dans une deuxième mise en oeuvre, le connecteur 86 va stocker un pointeur sur la ressource qu'il cherche à partager, et partager ce pointeur. Ainsi, la destination peut venir consulter ce pointeur et ainsi accéder à distance à la ressource. 25 Cette mise en oeuvre est moins risquée et un peu plus coûteuse en communication, et assez simple à mettre en oeuvre. In a second implementation, the connector 86 will store a pointer to the resource it is trying to share, and share that pointer. Thus, the destination can come to consult this pointer and thus remotely access the resource. This implementation is less risky and a little more expensive in communication, and quite simple to implement.

Enfin, dans une troisième mise en oeuvre, le connecteur 86 va créer un espace pour la ressource, et gérer cet espace sur la base d'un identifiant logique. Le connecteur 86 transmettra cet identifiant logique à la destination, qui pourra l'utiliser pour interagir avec le connecteur 86 et accéder à la ressource. Finally, in a third implementation, the connector 86 will create a space for the resource, and manage this space on the basis of a logical identifier. The connector 86 will transmit this logical identifier to the destination, which may use it to interact with the connector 86 and access the resource.

Cette mise en oeuvre est plus fiable que la deuxième mise en oeuvre, mais elle est un peu plus 10 complexe à mettre en oeuvre. This implementation is more reliable than the second implementation, but it is a little more complex to implement.

Le relayeur 88 est un élément du gestionnaire d'accès qui a pour fonction de transmettre un état de requête à un autre gestionnaire d'accès, conformément au schéma établi par la séquence. The relay 88 is an element of the access manager whose function is to transmit a request state to another access manager, in accordance with the schema established by the sequence.

Comme on le verra plus bas, le relayeur 88 peut être mis en oeuvre de nombreuses manières. Ainsi, le relayeur 88 peut transmettre une séquence entre deux gestionnaires d'accès, ou un indicateur de progression de la séquence avec les éléments qui ont permis de générer cette séquence. As will be seen below, the relay 88 can be implemented in many ways. Thus, the relay 88 may transmit a sequence between two access managers, or an indicator of progression of the sequence with the elements that made it possible to generate this sequence.

Comme on l'a vu plus haut, l'utilisation d'un stockage de la parité représente un certain nombre de défis à maîtriser. As discussed above, the use of parity storage represents a number of challenges to master.

Le premier de ces défis est de maintenir la cohérence des données. En effet, la cohérence est 25 assez simple à maintenir dans un système à réplication, puisque toutes les données sont toujours dupliquées. En outre, les données dupliquées ne sont impactées que par une modification des données auxquelles elles correspondent. The first of these challenges is to maintain data consistency. Indeed, consistency is fairly simple to maintain in a replication system, since all data is always duplicated. In addition, the duplicate data is impacted only by a modification of the data to which it corresponds.

A l'opposé, dans les systèmes à parité, les données de parité ne représentent pas directement 30 des données. En outre, ces données sont fréquemment modifiées, puisque toute écriture sur une des données d'un bloc d'adresses va impacter la donnée de parité correspondante. In contrast, in parity systems, the parity data do not directly represent data. In addition, these data are frequently modified, since any write on one of the data of an address block will impact the corresponding parity data.

De nombreux problèmes surgissent alors, comme la gestion de la concurrence d'accès à des données d'un même groupe d'adresses. En effet, comme on vient de le voir, une modification 15 20 due à une écriture d'une donnée impacte la donnée de parité du bloc d'adresses correspondant. Many problems arise then, like the management of the competition of access to data of the same group of addresses. Indeed, as we have just seen, a modification 15 due to a writing of a data item impacts the parity data of the corresponding address block.

Donc si on cherche à écrire sur deux données d'un même groupe d'adresses, et si les opérations ne sont pas synchronisées correctement, il existe un risque important que la donnée de parité soit fausse, car basée sur une version ancienne des données qui viennent d'être écrite. So if we try to write on two data of the same group of addresses, and if the operations are not synchronized correctly, there is a significant risk that the parity data is false, because based on an old version of the data which have just been written.

Ce cas relativement simple est encore complexifié lorsqu'une panne d'un disque intervient 10 lors d'une écriture. This relatively simple case is further complicated when a failure of a disk occurs during a write.

Des solutions ont été proposées pour gérer ce type de problèmes. Elles reposent généralement sur la synchronisation des unités de stockage entre elles par un chef d'orchestre . Cependant cela est lourd et peu efficace. 15 La Demanderesse a développé un outil bien plus performant et fiable. Il ressort de ce qui précède que : - chaque station stocke un gestionnaire d'accès qui gère tous les accès aux unités de stockage de cette station, 20 - les gestionnaires d'accès sont indépendants entre eux, et - une requête d'accès est mise en oeuvre au moyen d'une machine à états dont une partie est exécutée par chaque gestionnaire d'accès concerné. Solutions have been proposed to manage this type of problem. They are generally based on the synchronization of the storage units between them by a conductor. However this is heavy and inefficient. The Applicant has developed a much more powerful and reliable tool. From the foregoing it follows that: - each station stores an access manager which manages all accesses to the storage units of this station, 20 - the access managers are independent of each other, and - an access request is implemented by means of a state machine part of which is executed by each access manager concerned.

Ainsi, comme les gestionnaires d'accès sont découplés, ils peuvent opérer plus librement. La 25 machine à état qui définit les opérations nécessaires à l'exécution de la requête peut ainsi être réalisée sous la forme d'une séquence d'appels au gestionnaire d'accès, l'avancement dans la séquence pouvant être conditionné par la réception de données d'un autre gestionnaire d'accès. Thus, since access managers are decoupled, they can operate more freely. The state machine which defines the operations necessary to execute the request can thus be made in the form of a call sequence to the access manager, the progress in the sequence being able to be conditioned by the reception of the request. data from another access manager.

30 Pour fonctionner de manière indépendante comme cela a été décrit plus haut, le gestionnaire d'accès exécute les requêtes comme une suite d'appels aux éléments décrits ci-dessus, en fonction d'un état de séquence. To operate independently as described above, the access manager executes the requests as a sequence of calls to the elements described above, based on a sequence state.

La figure 6 représente un schéma générique de traitement d'une requête par le gestionnaire d'accès. Figure 6 shows a generic scheme of processing a request by the access manager.

Dans une opération 100, le gestionnaire d'accès reçoit un ordre d'exécution d'une requête d'accès (opération 60 de la figure 5). A réception de cet ordre avec les paramètres correspondants décrits plus haut, il appelle le constructeur 90 pour établir la séquence d'exécution de la requête. In an operation 100, the access manager receives an execution order of an access request (operation 60 of FIG. 5). Upon receipt of this order with the corresponding parameters described above, it calls the constructor 90 to establish the execution sequence of the request.

Dans une opération 102, un compteur d'appel est créé. Ce compteur indique quel est l'indice du prochain appel qui doit être exécuté. In an operation 102, a call timer is created. This counter indicates what is the index of the next call to be executed.

S'en suit une boucle d'incrémentation d'indice d'appel et d'exécution d'appel, dans laquelle le gestionnaire d'accès détermine dans une opération 104 l'état d'exécution de l'appel correspondant à l'indice courant. A call index and call execution incrementation loop follows, in which the access manager determines in an operation 104 the state of execution of the call corresponding to the index. current.

L'état d'exécution peut prendre plusieurs valeurs : - attente : état qui signifie que le gestionnaire d'accès doit attendre des données d'un autre gestionnaire d'accès ou un signal d'activation, - prêt : état qui signifie que l'appel peut être exécuté sans risque de compromettre la bonne exécution de la requête, - fini : état qui signifie que le dernier appel de la séquence a été exécuté avec succès et que le gestionnaire d'accès peut considérer que la requête d'accès a été exécutée, et - erreur : état qui signifie qu'un évènement imprévu est arrivé qui compromet l'exécution correcte de la requête. The execution state can take several values: - wait: state which means that the access manager must wait for data from another access manager or an activation signal, - ready: state which means that the call can be executed without jeopardizing the proper execution of the request, - finite: state which means that the last call of the sequence has been executed successfully and that the access manager can consider that the access request has has been executed, and - error: state which means that an unexpected event has occurred which compromises the correct execution of the request.

Lorsque le gestionnaire d'accès reçoit d'un autre gestionnaire d'accès les données nécessaires à l'exécution de l'appel correspondant à l'indice courant, l'état d'exécution passe de attente à prêt . Dans ce cas, c'est une opération distante exécutée sur un gestionnaire d'accès distant qui provoque le changement d'état. Par exemple, le déverrouillage d'une ressource par un verrouilleur d'un gestionnaire d'accès nécessite la réception d'informations d'accusé d'exécution du relayeur du gestionnaire d'accès qui le suit dans la séquence.30 Le changement d'état peut être également local, par exemple lorsqu'une opération par un gestionnaire d'accès nécessite des données résultant d'une opération d'un autre élément de ce même gestionnaire d'accès. When the access manager receives from another access manager the data necessary to execute the call corresponding to the current index, the execution state goes from standby to ready. In this case, it is a remote operation performed on a remote access manager that causes the state change. For example, the unlocking of a resource by an access manager locker requires the receipt of the access manager's run-time acknowledgment information that follows it in the sequence. state can also be local, for example when an operation by an access manager requires data resulting from an operation of another element of the same access manager.

Par exemple, le calcul d'un morceau de parité par le contrôleur de parité nécessite la lecture par l'actionneur d'accès des données nécessaires à ce calcul. Cela apparaîtra mieux avec les figures 7 à 11. For example, calculating a parity piece by the parity controller requires the access actuator to read the data necessary for this calculation. This will be best seen in Figures 7-11.

Ensuite dans une opération 106, le gestionnaire d'accès teste si l'état d'exécution est fini ou erreur . Si c'est le cas, alors l'exécution de la séquence est terminée dans une opération 108. Then in an operation 106, the access manager tests whether the execution state is finished or error. If this is the case, then the execution of the sequence is completed in an operation 108.

Dans le cas où l'état était fini , le gestionnaire d'accès procède avec la séquence suivante. In the case where the state was finished, the access manager proceeds with the following sequence.

Dans le cas où l'état était erreur , le gestionnaire d'accès rappelle le constructeur avec cet état d'exécution, ainsi qu'avec les paramètres originaux de la requête d'accès, afin de reconstruire une séquence qui permette de mener à bien la requête originale en tenant compte de l'état d'erreur. In the case where the state was error, the access manager recalls the constructor with this execution state, as well as with the original parameters of the access request, in order to reconstruct a sequence that makes it possible to carry out the original query taking into account the error state.

Dans le cas où l'état est attente ou prêt , la boucle se poursuit dans une opération 110 qui teste cet état. In the case where the state is waiting or ready, the loop continues in an operation 110 which tests this state.

Dans le cas où l'état d'exécution est attente , la boucle reprend avec l'opération 104 pour déterminer si l'état d'exécution a évolué. Sinon, la boucle se poursuit avec une opération 112 dans laquelle l'appel correspondant à l'indice courant est exécuté. In the case where the execution state is pending, the loop resumes with the operation 104 to determine whether the execution state has changed. Otherwise, the loop continues with an operation 112 in which the call corresponding to the current index is executed.

Le compteur d'appel est incrémenté dans une opération 114, et la boucle reprend avec 30 l'opération 104 pour déterminer l'état d'exécution de l'appel suivant. The call timer is incremented in an operation 114, and the loop resumes with the operation 104 to determine the execution state of the next call.

Le module d'administration 46 est capable de gérer la détection d'autres types d'erreurs, comme la perte totale de l'accès à un disque à cause d'une défaillance matérielle ou réseau.25 Dans ce cas, tous les gestionnaires d'accès 44 concernés par une telle panne reçoivent du module d'administration 46 un ordre impératif d'arrêt des requêtes en cours, et un jeu de requêtes d'accès adaptées à cette situation est émis. The administration module 46 is capable of handling the detection of other types of errors, such as the total loss of access to a disk due to a hardware or network failure.25 The accesses 44 concerned by such a failure receive from the administration module 46 an imperative order to stop current requests, and a set of access requests adapted to this situation is issued.

Bien sûr, un gestionnaire d'accès 44 peut traiter en parallèle plusieurs requêtes dès lors qu'elles ne visent pas des ressources verrouillées. Of course, an access manager 44 can process several requests in parallel as long as they do not target locked resources.

Les figures 7 à 11 vont maintenant servir à décrire divers types de séquences mises en oeuvre par le gestionnaire d'accès. Sur les figures 7 à 11, les séquences sont représentées par des suites d'opérations agencées verticalement et en plusieurs colonnes. Figures 7 to 11 will now be used to describe various types of sequences implemented by the access manager. In FIGS. 7 to 11, the sequences are represented by sequences of operations arranged vertically and in several columns.

Une suite d'opérations liées verticalement indique que ces opérations sont réalisées par des 15 éléments d'un même gestionnaire d'accès. Chaque colonne indique donc les opérations à réaliser par chaque gestionnaire d'accès concerné par une requête donnée. A series of vertically linked operations indicates that these operations are performed by elements of the same access manager. Each column therefore indicates the operations to be performed by each access manager concerned by a given request.

Les séquences des figures 7 à 1 1 correspondent aux contextes suivants : - sur la figure 7, l'opération est une opération de lecture dans laquelle aucune erreur n'est 20 présente, c'est-à-dire que toutes les ressources nécessaires à cette lecture sont accessibles et fonctionnelles, - sur la figure 8, l'opération est une opération de lecture dans laquelle l'unité de stockage sur laquelle est située les données à lire est inaccessible. Il est donc nécessaire de recouvrer ces données à partir des données de toutes les autres adresses de ce groupe d'adresse, et des 25 données de parité correspondantes, - sur la figure 9, l'opération est une opération d'écriture dans laquelle aucune erreur n'est présente, c'est-à-dire que toutes les ressources nécessaires à cette écriture sont accessibles et fonctionnelles. Il faut donc écrire les données concernées et modifier les données de parité en conséquence, 30 - sur la figure 10, l'opération est une opération d'écriture dans laquelle l'unité de stockage sur laquelle les données à écrire doivent être stockées est inaccessible. Il faut donc calculer les données de parités tenant compte de cette écriture à partir des données de toutes les autres adresses de ce groupe d'adresses, et écrire ces nouvelles données de parité, et10 - sur la figure 11, l'opération est une opération d'écriture dans laquelle l'unité de stockage sur laquelle sont situées les données de parité est inaccessible. Il faut donc simplement écrire les données. The sequences of FIGS. 7 to 11 correspond to the following contexts: in FIG. 7, the operation is a read operation in which no error is present, that is to say that all the resources necessary for this reading is accessible and functional, - in FIG. 8, the operation is a read operation in which the storage unit on which the data to be read is located is inaccessible. It is therefore necessary to recover this data from the data of all the other addresses of this address group, and the corresponding parity data, - in FIG. 9, the operation is a write operation in which no error is present, that is to say that all the resources necessary for this writing are accessible and functional. It is therefore necessary to write the data concerned and modify the parity data accordingly. In FIG. 10, the operation is a write operation in which the storage unit on which the data to be written must be stored is inaccessible. . It is therefore necessary to calculate the parity data taking into account this writing from the data of all the other addresses of this group of addresses, and to write these new parity data, and 10 - in FIG. 11, the operation is an operation in which the storage unit on which the parity data is located is inaccessible. So you just have to write the data.

Dans ce qui suit, il sera fait référence aux adresses qui sont associées à l'adresse visée par la requête en tant que groupe d'adresses correspondant . In what follows, reference will be made to the addresses that are associated with the address targeted by the request as a corresponding address group.

Dans ce qui suit, dans une figure donnée, un gestionnaire d'accès pourra être désigné aussi bien par son nom (c'est-à-dire gestionnaire d'accès de l'unité de stockage qui stocke des données choisies) que par son numéro de colonne (par exemple, le premier gestionnaire d'accès est celui qui correspond à la première colonne, etc.). In what follows, in a given figure, an access manager may be designated both by its name (that is to say, access manager of the storage unit that stores selected data) than by its column number (for example, the first access manager is the one that corresponds to the first column, etc.).

Le gestionnaire d'accès qui reçoit la requête sera nommé gestionnaire d'accès initial, et le gestionnaire d'accès qui gère l'unité de stockage des données de parité sera nommé gestionnaire d'accès de parité. The access manager that receives the request will be named initial access manager, and the access manager that manages the parity data storage unit will be named parity access manager.

Dans toutes les figures, la colonne d'opérations le plus à gauche représente les opérations du gestionnaire d'accès initial. In all figures, the leftmost column of operations represents the operations of the initial access manager.

Les opérations mises en oeuvre par le gestionnaire d'accès initial sont les mêmes pour toutes les séquences : - initier la séquence (référence 720, 820, 920, 1020 et 1120), - transmettre la séquence à un gestionnaire d'accès concerné (référence 722, 822, 922, 1022, 1122), et - terminer la séquence (référence 724, 824, 924, 1024 et 1124) à réception d'un accusé correspondant du gestionnaire auquel a été transmise la séquence. The operations implemented by the initial access manager are the same for all the sequences: - initiate the sequence (reference 720, 820, 920, 1020 and 1120), - transmit the sequence to a concerned access manager (reference 722, 822, 922, 1022, 1122), and - terminate the sequence (reference 724, 824, 924, 1024 and 1124) on receipt of a corresponding acknowledgment of the manager to which the sequence has been transmitted.

En outre, bien que le gestionnaire d'accès du client émetteur de la requête d'accès soit représenté dans la première colonne en tant que gestionnaire d'accès initial, ce gestionnaire d'accès initial pourrait également être impliqué dans une autre colonne. In addition, although the access manager of the client issuing the access request is represented in the first column as the initial access manager, this initial access manager could also be involved in another column.

En effet, un client émetteur de requête d'accès peut également stocker des données de stockage ou de parité. Dans ce cas, son gestionnaire d'accès joue un rôle double dans la séquence. Indeed, an access request sending client can also store storage or parity data. In this case, its access manager plays a double role in the sequence.

Dans toutes les figures, la colonne d'opération le plus à droite représente les opérations du gestionnaire d'accès de parité, à l'exception de la figure 7 où il est inutile et de la figure 11 où il est inaccessible. In all the figures, the rightmost operation column represents the operations of the parity access manager, with the exception of Figure 7 where it is unnecessary and Figure 11 where it is inaccessible.

Les opérations mises en oeuvre par le gestionnaire d'accès de parité sont les mêmes pour toutes les séquences : - initier la séquence (référence 826, 926, et 1026), - verrouiller l'accès aux données de parité pour les autres séquences (référence 828, 928, et 1028), - lire les données de parité locales, ainsi que les données de parité mise à disposition par le gestionnaire d'accès qui a initié la séquence (référence 830, 930, et 1030), - calculer les données de parité mises à jour sur la base des données lues (référence 832, 932, et 1032), - écrire les données de parité mises à jour (référence 834, 934, et 1034), sur le gestionnaire d'accès le plus à gauche dans le cas d'une opération de lecture, et localement dans le cas d'une opération d'écriture, - déverrouiller l'accès aux données de parité pour les autres séquences (référence 836, 936, et 1036), - envoyer un accusé d'exécution au gestionnaire d'accès qui a initié la séquence (référence 828, 928, et 1028), et - finir la séquence localement (référence 840, 940, et 1040). The operations implemented by the parity access manager are the same for all the sequences: - to initiate the sequence (reference 826, 926, and 1026), - to lock the access to the parity data for the other sequences (reference 828, 928, and 1028), - read the local parity data, as well as the parity data made available by the access manager who initiated the sequence (reference 830, 930, and 1030), - calculate the data parity updated on the basis of the read data (reference 832, 932, and 1032), - write the updated parity data (reference 834, 934, and 1034) to the leftmost access manager in the case of a read operation, and locally in the case of a write operation, - unlock access to the parity data for the other sequences (reference 836, 936, and 1036), - send an acknowledgment execution manager to the access manager who initiated the sequence 828, 928, and 1028), and finish the sequence locally (reference 840, 940, and 1040).

Comme cela a été décrit plus haut, le passage d'une opération à l'autre est conditionné à un changement d'état. As has been described above, the transition from one operation to another is conditional on a change of state.

Le changement d'état peut être de deux natures : - éloigné, lorsque c'est une opération sur un autre gestionnaire d'accès qui induit le changement. C'est par exemple le cas pour les opérations d'initialisation et de déverrouillage (sauf pour le gestionnaire d'accès de l'unité de stockage qui reçoit les données de parité), - local, lorsque c'est une opération sur le même gestionnaire d'accès qui induit le changement. C'est par exemple le cas pour les opérations de lecture, de calcul de parité, d'écriture (locale ou éloignée), et de transmission de requête. The change of state can be of two types: - remote, when it is an operation on another access manager which induces the change. This is for example the case for initialization and unlocking operations (except for the access manager of the storage unit that receives the parity data), - local, when it is an operation on the same access manager that induces the change. This is for example the case for read operations, parity calculation, writing (local or remote), and request transmission.

Sur les figures, un changement d'état éloigné est symbolisé par une flèche d'une colonne à une autre, et un changement d'état local est symbolisé par une flèche verticale au sein d'une colonne. In the figures, a distant state change is symbolized by an arrow from one column to another, and a local state change is symbolized by a vertical arrow within a column.

Comme cela apparaît sur les figures, à chaque fois qu'une opération d'un gestionnaire d'accès donné change l'état d'un autre gestionnaire d'accès, l'opération suivante dans la séquence du gestionnaire d'accès donné est conditionnée par un changement d'état éloigné commandé par l'autre gestionnaire d'accès. Cela assure la robustesse des séquences. As shown in the figures, each time an operation of a given access manager changes the state of another access manager, the next operation in the given access manager sequence is conditioned by a remote state change controlled by the other access manager. This ensures the robustness of the sequences.

On notera que les opérations de chaque séquence peuvent être composées de plusieurs appels à des éléments du gestionnaire d'accès concerné. Ainsi, les opérations sont ici regroupées par type d'action. It should be noted that the operations of each sequence can be composed of several calls to elements of the access manager concerned. Thus, the operations are grouped here by type of action.

Dans ce qui suit, il sera fait mention de séquence de lecture (ou d'écriture) classique ou dégradée . Ces deux termes se veulent en opposition l'un à l'autre et désignent un état de panne du système associé à ces opérations. In the following, reference will be made to a conventional or degraded reading (or writing) sequence. These two terms are in opposition to each other and denote a system failure state associated with these operations.

Ainsi, par classique , on entend que le système est totalement fonctionnel, et que toutes les ressources sont accessibles. C'est donc un état idéal, exempt de toute panne. Par dégradé , on entend au contraire que le système a subi une panne identifiée, et les séquences sont adaptées pour tenir compte de cette panne. Thus, by classical means that the system is fully functional, and all resources are accessible. It is therefore an ideal state, free from any breakdown. By degraded is meant on the contrary that the system has undergone an identified failure, and the sequences are adapted to take account of this failure.

La figure 7 est une séquence de lecture classique , c'est-à-dire lorsqu'il n'y a aucun problème et que l'unité de stockage sur laquelle la ressource à lire est stockée est disponible. Dès lors, seul le gestionnaire d'accès qui émet la requête et le gestionnaire d'accès de l'unité de stockage qui stocke les données à lire sont impliqués. Figure 7 is a typical read sequence, i.e. when there is no problem and the storage unit on which the resource to be read is stored is available. As a result, only the access manager issuing the request and the access manager of the storage unit that stores the data to be read are involved.

L'opération 722 comprend alors un appel au connecteur 86, qui va mettre à disposition un 30 emplacement pour recevoir une écriture éloignée contenant les données lues. Operation 722 then includes a call to connector 86, which will provide a location for receiving a remote write containing the read data.

Une fois l'appel au connecteur 86 réalisé, le relayeur 88 transmet la requête de lecture au gestionnaire d'accès de l'unité de stockage qui stocke les données à lire.25 Le deuxième gestionnaire d'accès effectue alors les opérations suivantes : - initialiser la séquence localement (742), - appeler le verrouilleur 80 (744) pour verrouiller l'accès aux données à lire pour les autres séquences, - appeler l'actionneur d'accès 82 (746) pour lire les données voulues, - appeler le connecteur 86 (748) avec ces données pour réaliser l'écriture éloignée dans le tampon ouvert par l'opération 722, - appeler le verrouilleur 80 (750) pour déverrouiller l'accès aux données à lire pour les autres séquences, - appeler le relayeur 88 (752) pour permettre au gestionnaire d'accès initial de passer à l'opération 724, et - terminer la séquence localement (754). La figure 8 est une séquence de lecture dégradée , c'est-à-dire que l'unité de stockage sur laquelle sont situées les données à lire n'est pas accessible. Once the call to the connector 86 is made, the relay 88 transmits the read request to the access manager of the storage unit which stores the data to be read. The second access manager then performs the following operations: initialize the sequence locally (742), - call the locker 80 (744) to lock access to the data to be read for the other sequences, - call the access actuator 82 (746) to read the desired data, - call the connector 86 (748) with these data to carry out the remote write in the buffer opened by the operation 722, - call the lock 80 (750) to unlock the access to the data to be read for the other sequences, - call the relay 88 (752) to allow the initial access manager to proceed to operation 724, and - terminate the sequence locally (754). Figure 8 is a degraded read sequence, that is, the storage unit on which the data to be read is located is not accessible.

Il faut donc lire toutes les données des autres adresses du groupe d'adresses correspondant, ainsi que les données de parité pour recouvrer les données que l'on souhaite lire. It is therefore necessary to read all the data of the other addresses of the corresponding address group, as well as the parity data to recover the data that one wishes to read.

Sur cette figure, on voit apparaître quatre colonnes : - la première colonne représente les opérations du gestionnaire d'accès initial, - la deuxième colonne représente les opérations du gestionnaire d'accès de l'unité de stockage qui comprend la première des adresses du groupe d'adresses correspondant, - la troisième colonne représente les opérations des gestionnaires d'accès des unités de stockages qui comprennent les autres adresses du groupe d'adresse correspondant (les pointillés sont là pour indiquer qu'il y en a plusieurs), et - la quatrième colonne représente les opérations du gestionnaire d'accès de parité. In this figure, four columns appear: - the first column represents the operations of the initial access manager, - the second column represents the operations of the access manager of the storage unit which includes the first of the addresses of the group corresponding address, - the third column represents the operations of the access managers of the storage units that include the other addresses of the corresponding address group (the dotted lines are there to indicate that there are several), and - the fourth column represents the operations of the parity access manager.

Comme on va le voir, les séquences des deuxième et troisième colonnes sont très similaires. As we will see, the sequences of the second and third columns are very similar.

La seule différence entre ces séquences est que, pour la deuxième colonne, il n'existe pas encore de portion de données de parité. Dès lors, le calcul d'une nouvelle portion de données de parité n'est pas nécessaire, puisque ce sont les données du groupe d'adresses correspondant qui forment la portion de données de parité. The only difference between these sequences is that, for the second column, there is still no parity data portion. Therefore, the calculation of a new portion of parity data is not necessary, since it is the data of the corresponding address group that form the portion of parity data.

Comme pour la séquence de lecture normale, l'opération 822 comprend un appel au connecteur 86, qui va mettre à disposition un emplacement pour recevoir une écriture éloignée contenant les données lues. As for the normal read sequence, the operation 822 includes a call to the connector 86, which will provide a location for receiving a remote write containing the read data.

Une fois l'appel au connecteur 86 réalisé, le relayeur 88 transmet la requête de lecture au deuxième gestionnaire d'accès. Once the call to the connector 86 is made, the relay 88 transmits the read request to the second access manager.

La séquence du deuxième gestionnaire d'accès comprend les opérations suivantes : - initialiser la séquence localement (842), - appeler le verrouilleur 80 (844) pour verrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences, - appeler l'actionneur d'accès 82 (846) pour lire les données locales du groupe d'adresses correspondant, - transmettre (850) la séquence au troisième gestionnaire d'accès, - appeler le verrouilleur 80 (852) pour déverrouiller l'accès aux données à lire pour les autres séquences, - appeler le relayeur 88 (854) pour permettre au gestionnaire d'accès initial de passer à l'opération 824, et pour permettre au troisième gestionnaire d'accès de passer à l'opération 872, et - terminer la séquence localement (856). The sequence of the second access manager comprises the following operations: - initialize the sequence locally (842), - call the locker 80 (844) to lock access to the local data of the corresponding address group for the other sequences, - call the access actuator 82 (846) to read the local data of the corresponding address group, - transmit (850) the sequence to the third access manager, - call the locker 80 (852) to unlock the access to the data to be read for the other sequences, - call the relay 88 (854) to allow the initial access manager to proceed to operation 824, and to allow the third access manager to proceed to operation 872, and - terminate the sequence locally (856).

L'opération 850 comprend l'appel au connecteur 86 pour mettre les données du groupe d'adresses correspondant locales dans un tampon à disposition du troisième gestionnaire d'accès, en tant que portion de données de parité. Lorsque cela est fait, le relayeur 88 est appelé pour transmettre la séquence au troisième gestionnaire d'accès. The operation 850 includes the call to the connector 86 to put the local address group data in a buffer available to the third access manager as a parity data portion. When this is done, the relay 88 is called to transmit the sequence to the third access manager.

Le troisième gestionnaire d'accès va alors exécuter la séquence suivante : 30 - initialiser la séquence localement (858), - appeler le verrouilleur 80 (860) pour verrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences,25 - appeler l'actionneur d'accès 82 (862) pour lire les données locales du groupe d'adresses correspondant, ainsi que le connecteur 86 pour lire les portions de données de parité du gestionnaire d'accès qui a initialisé la séquence locale, - appeler le contrôleur de parité 84 (864) pour calculer une nouvelle portion de données de parité, - transmettre (866) la séquence au prochain troisième gestionnaire d'accès ou, si ils ont tous été appelés, au gestionnaire d'accès de parité, - appeler le verrouilleur 80 (868) pour déverrouiller l'accès aux données à lire pour les autres séquences, - appeler le relayeur 88 (870) pour permettre au deuxième gestionnaire d'accès de passer à l'opération 852, ou au troisième gestionnaire d'accès précédent de passer à l'opération 868, et pour permettre au troisième gestionnaire d'accès suivant de passer à l'opération 872, et - terminer la séquence localement (872). The third access manager will then execute the following sequence: - initialize the sequence locally (858), - call the locker 80 (860) to lock access to the local data of the corresponding address group for the other sequences, 25 - calling the access actuator 82 (862) to read the local data of the corresponding address group, as well as the connector 86 to read the parity data portions of the access manager which initialized the local sequence, - call the parity controller 84 (864) to compute a new parity data portion, - transmit (866) the sequence to the next third access manager or, if they have all been called, to the parity access manager call the locker 80 (868) to unlock the access to the data to be read for the other sequences, - call the relay 88 (870) to allow the second access manager to proceed to the operation 852, o u the third previous access manager to proceed to operation 868, and to allow the next third access manager to proceed to operation 872, and - terminate the sequence locally (872).

L'opération 866 est similaire à l'opération 850, et comprend l'appel au connecteur 86 pour mettre à disposition la portion de données de parité au gestionnaire d'accès suivant, puis l'appel au relayeur 88 pour transmettre effectivement la séquence. The operation 866 is similar to the operation 850, and includes the call to the connector 86 to make the parity data portion available to the next access manager and then the call to the relay 88 to effectively transmit the sequence.

Lorsque tous les troisièmes gestionnaires d'accès ont initialisé leur séquence, la portion de données de parité qui a été calculée au fil de l'eau contient des données correspondant à la parité de toutes les données du groupe d'adresses correspondant, à l'exception des données du gestionnaire d'accès de l'unité de stockage non accessible, et des données de parité. When all third access managers have initialized their sequence, the portion of parity data that has been calculated run-of-river contains data corresponding to the parity of all the data of the corresponding address group, at the same time. exception of access manager data of the non-accessible storage unit, and parity data.

Le gestionnaire d'accès de parité (ou quatrième gestionnaire d'accès) va alors exécuter la séquence décrite plus haut. The parity access manager (or fourth access manager) will then execute the sequence described above.

Lorsque le gestionnaire d'accès de parité a exécuté l'opération 838, cela change l'état du troisième gestionnaire d'accès initialisé en dernier, et permet l'exécution sur celui-ci de l'opération 868. Dès lors, une vague de déverrouillage remonte tous les troisièmes gestionnaires d'accès et le deuxième gestionnaire d'accès jusqu'au gestionnaire d'accès initiale.30 Ensuite, l'opération 854 crée une contre-vague d'accusé d'exécution en sens inverse, et permet la terminaison de la séquence localement sur le deuxième gestionnaire d'accès, les troisièmes gestionnaires d'accès ainsi que sur le gestionnaire d'accès de parité. When the parity access manager has executed the operation 838, this changes the state of the last access manager initialized last, and allows the execution on it of the operation 868. Therefore, a wave the unlocking procedure goes up all the third access managers and the second access manager up to the initial access manager.30 Next, the operation 854 creates a counter-wave of the execution acknowledgment in the opposite direction, and allows terminating the sequence locally on the second access manager, the third access managers as well as on the parity access manager.

On voit donc que la séquence s'exécute par propagation de la gauche vers la droite d'une portion de données de parité qui est calculée au fil de l'eau, avec verrouillage des données locales à chaque fois pour préserver la cohérence des données. It can thus be seen that the sequence is executed by propagation from the left to the right of a portion of parity data which is computed over the water, with locking of the local data each time to preserve the coherence of the data.

Lorsque ce calcul est fait, on obtient les données que l'on souhaite lire, et une vague de déverrouillage suivie d'une contre-vague pour terminer localement la séquence sur chacun des gestionnaires d'accès. Cette vague permet de libérer les tampons qui ont été ouverts pour l'exécution des séquences. When this calculation is done, we obtain the data that we want to read, and an unlocking wave followed by a counter-wave to locally complete the sequence on each of the access managers. This wave frees the buffers that have been opened for the execution of the sequences.

Ainsi, même si une autre panne survenait, il serait possible de reprendre la requête sur la base des différents tampons et verrouillages effectués. Thus, even if another failure occurred, it would be possible to resume the request on the basis of different buffers and locks made.

Bien que la vague d'accusé d'exécution et la contre-vague d'accusé d'exécution soient représentées dans la seule opération 870, elles représentent deux opérations distinctes d'appel au relayeur 88, et c'est le deuxième appel (la contre-vague) qui déclenche la terminaison localement de la séquence sur les gestionnaires d'accès. Although the impeachment wave and the impeachment counter-wave are represented in the sole operation 870, they represent two separate call-out operations 88, and this is the second call (the counter-wave) which triggers the termination of the sequence locally on the access managers.

La figure 9 est une séquence d'écriture classique , c'est-à-dire lorsqu'il n'y a aucun problème et que l'unité de stockage sur laquelle la ressource à écrire est stockée est disponible. Dès lors, seul le gestionnaire d'accès initial, le gestionnaire d'accès de l'unité de stockage qui stocke les données à écrire et le gestionnaire d'accès de parité sont impliqués. Fig. 9 is a conventional write sequence, i.e. when there is no problem and the storage unit on which the resource to be written is stored is available. Therefore, only the initial access manager, the access manager of the storage unit that stores the data to be written and the parity access manager are involved.

Sur cette figure, on voit apparaître trois colonnes : 30 - la première colonne représente les opérations du gestionnaire d'accès initial, - la deuxième colonne représente les opérations du gestionnaire d'accès de l'unité de stockage sur laquelle la ressource à écrire est stockée, - la troisième colonne représente les opérations du gestionnaire d'accès de parité.25 Comme pour la séquence de lecture normale, l'opération 922 comprend un appel au connecteur 86, qui va mettre un emplacement à disposition du deuxième gestionnaire d'accès pour accéder aux données à écrire. In this figure, three columns appear: 30 - the first column represents the operations of the initial access manager, - the second column represents the operations of the access manager of the storage unit on which the resource to be written is stored, - the third column represents the operations of the parity access manager.25 As for the normal reading sequence, the operation 922 includes a call to the connector 86, which will make a slot available to the second access manager to access the data to write.

Une fois l'appel au connecteur 86 réalisé, le relayeur 88 transmet la requête de lecture au deuxième gestionnaire d'accès. Once the call to the connector 86 is made, the relay 88 transmits the read request to the second access manager.

La séquence du deuxième gestionnaire d'accès comprend les opérations suivantes : - initialiser la séquence localement (942), - appeler le verrouilleur 80 (944) pour verrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences, - appeler l'actionneur d'accès 82 (946) pour lire les données locales du groupe d'adresses correspondant, ainsi que le connecteur 86 pour lire les données à écrire du gestionnaire d'accès initial, - appeler le contrôleur de parité 84 (948) pour calculer une portion de données de parité sur la base des données locales du groupe d'adresse correspondant et des données à écrire du gestionnaire d'accès initial, - transmettre (950) la séquence au gestionnaire d'accès de parité, - appeler l'actionneur d'accès 82 (951) pour écrire sur l'unité de stockage concernée les données à écrire du gestionnaire d'accès initial, - appeler le verrouilleur 80 (952) pour déverrouiller l'accès aux données à lire pour les autres séquences, - appeler le relayeur 88 (954) pour permettre au gestionnaire d'accès initial de passer à l'opération 924, et au gestionnaire d'accès de parité de passer à l'opération 940, et - terminer la séquence localement (956). The sequence of the second access manager comprises the following operations: - initialize the sequence locally (942), - call the locker 80 (944) to lock the access to the local data of the corresponding address group for the other sequences, - call the access actuator 82 (946) to read the local data of the corresponding address group, as well as the connector 86 to read the write data of the initial access manager, - call the parity controller 84 (948 ) to calculate a parity data portion based on the local data of the corresponding address group and write data of the initial access manager, - transmit (950) the sequence to the parity access manager, - call the access actuator 82 (951) for writing to the storage unit concerned the write data of the initial access manager, - calling the locker 80 (952) to unlock the access to the data to li re for the other sequences, - call the relay 88 (954) to allow the initial access manager to move to the 924 operation, and the parity access manager to proceed to the 940 operation, and - complete the sequence locally (956).

L'opération 950 comprend l'appel au connecteur 86 pour mettre la portion de données de parité dans un tampon à disposition du gestionnaire d'accès de parité. Operation 950 includes the call to connector 86 to put the parity data portion in a buffer at the disposal of the parity access manager.

Ensuite, dans l'opération 951, l'actionneur d'accès 82 écrit localement les données à écrire du gestionnaire d'accès initiales à la place des données locales du groupe d'adresses correspondant. Then, in the operation 951, the access actuator 82 locally writes the initial access manager write data in place of the local data of the corresponding address group.

L'ordre des opérations 950 et 951 permet d'accroître le parallélisme de l'exécution de la séquence (comme le gestionnaire de parité peut commencer à travailler plus tôt). Cependant, l'ordre de ces opérations pourrait être inversé. The order of operations 950 and 951 makes it possible to increase the parallelism of the execution of the sequence (as the parity manager can start working earlier). However, the order of these operations could be reversed.

Lorsque cela est fait, le relayeur 88 est appelé pour transmettre la séquence au gestionnaire d'accès de parité. Le gestionnaire d'accès de parité (ou troisième gestionnaire d'accès) va alors exécuter la séquence décrite plus haut. On notera qu'ici, l'opération 934 consiste à écrire localement les nouvelles données de parité qui sont tirées des anciennes données de parité et des nouvelles données écrites. When this is done, the relay 88 is called to transmit the sequence to the parity access manager. The parity access manager (or third access manager) will then execute the sequence described above. It should be noted that here, operation 934 consists in writing locally the new parity data that are drawn from the old parity data and the new written data.

Ainsi, même si une panne survenait, il serait possible de reprendre la requête sur la base des 15 différents tampons et verrouillages effectués. Thus, even if a failure occurs, it would be possible to resume the request on the basis of the 15 different buffers and locks made.

Lorsque le gestionnaire d'accès de parité a exécuté l'opération 938, cela change l'état du deuxième gestionnaire d'accès, et permet l'exécution sur celui-ci de l'opération 952. When the parity access manager has performed the operation 938, this changes the state of the second access manager, and allows the execution on it of the operation 952.

20 Cela induit ensuite l'opération 954, qui permet à la fois au gestionnaire d'accès initial et au gestionnaire d'accès de parité de terminer localement la séquences. This then causes the operation 954, which allows both the initial access manager and the parity access manager to terminate the sequence locally.

La figure 10 représente une opération d'écriture dégradée , dans laquelle l'unité de stockage sur laquelle les données doivent être écrites n'est pas accessible. Il faut donc lire toutes les données des autres adresses du groupe d'adresses correspondant, ainsi que les données de parité pour stocker les données que l'on souhaite écrire dans de nouvelles données de parité. Fig. 10 shows a degraded write operation in which the storage unit on which the data is to be written is not accessible. It is therefore necessary to read all the data of the other addresses of the corresponding address group, as well as the parity data to store the data that one wishes to write in new parity data.

30 Sur cette figure, on voit apparaître quatre colonnes : - la première colonne représente les opérations du gestionnaire d'accès initial, - la deuxième colonne représente les opérations du gestionnaire d'accès de l'unité de stockage qui comprend la première des adresses du groupe d'adresses correspondant, 25 - la troisième colonne représente les opérations des gestionnaires d'accès des unités de stockages qui comprennent les autres adresses du groupe d'adresse correspondant (les pointillés sont là pour indiquer qu'il y en a plusieurs), et - la quatrième colonne représente les opérations du gestionnaire d'accès de parité. Comme on va le voir, les séquences des deuxième et troisième colonnes sont très similaires. In this figure, four columns appear: - the first column represents the operations of the initial access manager, - the second column represents the operations of the access manager of the storage unit which comprises the first of the addresses of the corresponding address group, 25 - the third column represents the operations of the access managers of the storage units which comprise the other addresses of the corresponding address group (the dotted lines are there to indicate that there are several), and - the fourth column represents the operations of the parity access manager. As we will see, the sequences of the second and third columns are very similar.

La seule différence entre ces séquences est que, pour la deuxième colonne, il n'existe pas encore de portion de données de parité. Dès lors, le calcul d'une nouvelle portion de données 10 de parité est réalisé en calculant la parité entre les données locales du groupe d'adresses correspondant et les données à écrire. Comme pour la séquence d'écriture normale, l'opération 1022 comprend un appel au connecteur 86, qui va mettre un emplacement à disposition du deuxième gestionnaire d'accès 15 pour accéder aux données à écrire. Une fois l'appel au connecteur 86 réalisé, le relayeur 88 transmet la requête d'écriture au deuxième gestionnaire d'accès. 20 La séquence du deuxième gestionnaire d'accès comprend les opérations suivantes : - initialiser la séquence localement (1042), - appeler le verrouilleur 80 (1044) pour verrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences, - appeler l'actionneur d'accès 82 (1046) pour lire les données locales du groupe d'adresses 25 correspondant, - appeler le contrôleur de parité 84 (1048) pour calculer une portion de données de parité sur la base des données locales du groupe d'adresse correspondant et des données à écrire du gestionnaire d'accès initial, - transmettre (1050) la séquence au troisième gestionnaire d'accès, 30 - appeler le verrouilleur 80 (1052) pour déverrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences, - appeler le relayeur 88 (1054) pour permettre au gestionnaire d'accès initial de passer à l'opération 1024, et pour permettre au troisième gestionnaire d'accès de passer à l'opération 1072, et5 - terminer la séquence localement (1056). The only difference between these sequences is that, for the second column, there is still no parity data portion. Therefore, the calculation of a new portion of parity data is performed by calculating the parity between the local data of the corresponding address group and the data to be written. As for the normal write sequence, the operation 1022 includes a call to the connector 86, which will make a slot available to the second access manager 15 to access the data to be written. Once the call to the connector 86 is made, the relay 88 transmits the write request to the second access manager. The sequence of the second access manager comprises the following operations: - initializing the sequence locally (1042), - calling the locker 80 (1044) to lock access to the local data of the corresponding address group for the other sequences, call the access actuator 82 (1046) to read the local data of the corresponding address group, - call the parity controller 84 (1048) to compute a parity data portion based on the local data of the corresponding address group and write data of the initial access manager, - transmit (1050) the sequence to the third access manager, 30 - call the locker 80 (1052) to unlock access to the local data of the group corresponding addresses for the other sequences, - call the relay 88 (1054) to allow the initial access manager to proceed to the operation 1024, and to allow the third access manager go to step 1072, and 5 - finish the sequence locally (1056).

L'opération 1050 comprend l'appel au connecteur 86 pour mettre la portion de données de parité de l'opération 1048 dans un tampon à disposition du troisième gestionnaire d'accès. Lorsque cela est fait, le relayeur 88 est appelé pour transmettre la séquence au troisième gestionnaire d'accès. The operation 1050 includes the call to the connector 86 to put the parity data portion of the operation 1048 in a buffer available to the third access manager. When this is done, the relay 88 is called to transmit the sequence to the third access manager.

Le troisième gestionnaire d'accès va alors exécuter la séquence suivante : 10 - initialiser la séquence localement (1058), - appeler le verrouilleur 80 (1060) pour verrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences, - appeler l'actionneur d'accès 82 (1062) pour lire les données locales du groupe d'adresses correspondant, ainsi que le connecteur 86 pour lire la portion de données de parité du 15 gestionnaire d'accès qui a initialisé la séquence locale, - appeler le contrôleur de parité 84 (1064) pour calculer une nouvelle portion de données de parité, - transmettre (1066) la séquence au prochain troisième gestionnaire d'accès ou, si tous les troisièmes gestionnaires d'accès ont été initialisés, au gestionnaire d'accès de parité, 20 - appeler le verrouilleur 80 (1068) pour déverrouiller l'accès aux données locales du groupe d'adresses correspondant pour les autres séquences, - appeler le relayeur 88 (1070) pour permettre au deuxième gestionnaire d'accès de passer à l'opération 1052, ou au troisième gestionnaire d'accès précédent de passer à l'opération 1068, et pour permettre au troisième gestionnaire d'accès suivant de passer à l'opération 1072, et 25 - terminer la séquence localement (1072). The third access manager will then execute the following sequence: - initialize the sequence locally (1058), - call the locker 80 (1060) to lock access to the local data of the corresponding address group for the other sequences, call the access actuator 82 (1062) to read the local data of the corresponding address group, as well as the connector 86 to read the parity data portion of the access manager which initialized the local sequence, call the parity controller 84 (1064) to calculate a new portion of parity data, transmit the sequence to the next third access manager or, if all the third access managers have been initialized, to the manager parity access, 20 - call the lock 80 (1068) to unlock access to the local data of the corresponding address group for the other sequences, - call the relay 88 (1070) to allow the second access manager to proceed to operation 1052, or the third previous access manager to proceed to operation 1068, and to allow the next third access manager to proceed to operation 1072, and 25 - terminate the sequence locally (1072).

L'opération 1066 est similaire à l'opération 1050, et comprend l'appel au connecteur 86 pour mettre à disposition la portion de données de parité au gestionnaire d'accès suivant, puis l'appel au relayeur 88 pour transmettre effectivement la séquence. Lorsque tous les troisièmes gestionnaires d'accès ont initialisé leur séquence, la portion de données de parité qui a été calculée au fil de l'eau contient des données correspondant à la parité de toutes les données du groupe d'adresses correspondant, à l'exception des données du gestionnaire d'accès de l'unité de stockage non accessible, et des données de parité. 28 30 Le gestionnaire d'accès de parité (ou quatrième gestionnaire d'accès) va alors exécuter la séquence décrite plus haut. The operation 1066 is similar to the operation 1050, and includes the call to the connector 86 to make the parity data portion available to the next access manager and then the call to the relay 88 to effectively transmit the sequence. When all third access managers have initialized their sequence, the portion of parity data that has been calculated run-of-river contains data corresponding to the parity of all the data of the corresponding address group, at the same time. exception of access manager data of the non-accessible storage unit, and parity data. The parity access manager (or fourth access manager) will then execute the sequence described above.

On notera qu'ici, l'opération 1034 consiste à écrire localement les nouvelles données de parité qui sont tirées des anciennes données de parité et des nouvelles données écrites. It will be noted that here, the operation 1034 consists in writing locally the new parity data which are drawn from the old parity data and the new written data.

Comme l'unité de stockage qui devrait stocker ces données écrites n'est pas accessible, ce sont les nouvelles données de parité qui représentent ces données écrites. Since the storage unit that should store this written data is not accessible, it is the new parity data that represents this written data.

Lorsque le gestionnaire d'accès de parité a exécuté l'opération 1038, cela change l'état du troisième gestionnaire d'accès initialisé en dernier, et permet l'exécution sur celui-ci de l'opération 1068. When the parity access manager has performed the operation 1038, this changes the state of the last access manager initialized last, and allows the execution on it of the operation 1068.

Dès lors, une vague de déverrouillage remonte tous les troisièmes gestionnaires d'accès et le deuxième gestionnaire d'accès jusqu'au gestionnaire d'accès initiale. Therefore, an unlocking wave goes up all third access managers and the second access manager up to the initial access manager.

Ensuite, l'opération 1054 crée une contre-vague d'accusé d'exécution en sens inverse, et permet la terminaison de la séquence localement sur le deuxième gestionnaire d'accès, les troisièmes gestionnaires d'accès ainsi que sur le gestionnaire d'accès de parité. On voit donc que la séquence s'exécute par propagation de la gauche vers la droite d'une portion de données de parité qui est calculée au fil de l'eau, avec verrouillage des données locales à chaque fois pour préserver la cohérence des données. Then, the operation 1054 creates a counter-wave of the execution acknowledgment in the opposite direction, and allows the termination of the sequence locally on the second access manager, the third access managers as well as on the manager of the access manager. parity access. It can thus be seen that the sequence is executed by propagation from the left to the right of a portion of parity data which is computed over the water, with locking of the local data each time to preserve the coherence of the data.

25 Lorsque ce calcul est fait, on obtient les données que l'on souhaite écrire, et une vague de déverrouillage suivie d'une contre-vague de terminaison localement des séquences vient permettre de libérer les tampons qui ont été ouverts pour l'exécution des séquences. When this calculation is made, the data that one wishes to write is obtained, and an unlocking wave followed by a counter-wave of locally terminating sequences makes it possible to release the buffers that have been opened for the execution of the data. sequences.

La figure 11 représente une opération d'écriture dégradée , dans laquelle l'unité de 30 stockage des données de parité n'est pas accessible. Fig. 11 shows a degraded write operation in which the parity data storage unit is not accessible.

Dès lors, cette opération est une simple opération d'écriture qui n'implique que le gestionnaire d'accès initial et le gestionnaire d'accès de l'unité de stockage sur laquelle la ressource à écrire est stockée (ci-après deuxième gestionnaire d'accès).20 Cette opération est très similaire à celle de la figure 9, sauf que toutes les interactions avec le gestionnaire d'accès de parité sont supprimées. Therefore, this operation is a simple write operation which only involves the initial access manager and the access manager of the storage unit on which the resource to be written is stored (hereinafter the second manager of the storage unit). This is very similar to Figure 9, except that all interactions with the parity access manager are removed.

Comme pour la séquence d'écriture normale, l'opération 1122 comprend un appel au connecteur 86, qui va mettre un emplacement à disposition du deuxième gestionnaire d'accès pour accéder aux données à écrire. As for the normal write sequence, the operation 1122 includes a call to the connector 86, which will make a slot available to the second access manager to access the data to be written.

Ainsi, le deuxième gestionnaire d'accès exécute les opérations suivantes : - une initialisation (1142) similaire à l'opération 942, - un verrouillage (1144) similaire à l'opération 944, - une lecture des données à écrire (1146) qui comprend une lecture des données à écrire similaire à celle à l'opération 946, mais sans la lecture des données locales, - une écriture de ces données (1151) similaire à celle de l'opération 951, - un déverrouillage (1152) similaire à l'opération 952, - un appel au relayeur (1154) similaire à l'opération 954, et - une terminaison de séquence locale (1156) similaire à l'opération 956. Thus, the second access manager performs the following operations: - an initialization (1142) similar to the operation 942, - a lock (1144) similar to the operation 944, - a reading of the data to be written (1146) which comprises a reading of the data to write similar to that in the operation 946, but without the reading of the local data, - a writing of these data (1151) similar to that of the operation 951, - an unlocking (1152) similar to operation 952, a call to the relay (1154) similar to operation 954, and a local sequence termination (1156) similar to operation 956.

Les séquences décrites avec les figures 7 à 11 sont aisément adaptables pour réaliser les opérations de synchronisation de parité et de vérification de parité. The sequences described with FIGS. 7 to 11 are easily adaptable to perform the parity synchronization and parity checking operations.

En effet, la synchronisation de parité implique le calcul de nouvelles données de stockage ou de parité pour mettre à jour des données erronées, et l'opération de vérification de parité consiste à calculer la portion de parité pour toutes les adresses d'un groupe d'adresses correspondant, et à vérifier qu'elle correspond aux données de parité correspondantes. In fact, the parity synchronization involves the computation of new storage or parity data to update erroneous data, and the parity checking operation consists in calculating the parity portion for all the addresses of a group of parity. corresponding addresses, and to verify that it corresponds to the corresponding parity data.

Les séquences décrites avec les figures 7 à 11 représentent un mode de réalisation avantageux car elles permettent des verrouillages et déverrouillages ordonnés, répartis et propagés en chaîne. The sequences described with FIGS. 7 to 11 represent an advantageous embodiment because they allow ordered locking and unlocking, distributed and propagated in chain.

30 Plus précisément, après l'appel au premier relayeur, chaque appel ultérieur d'un relayeur implique un appel préalable au verrouilleur du gestionnaire d'accès de ce relayeur. 25 De plus, tous les appels aux verrouilleurs pour verrouiller l'accès à des adresses de stockage comprenant des données de stockage sont préalables à un appel au verrouilleur pour verrouiller l'accès à une adresse de stockage comprenant les données de parité associées. Enfin, tous les appels aux verrouilleurs pour verrouiller l'accès à des adresses de stockage sont préalables à un quelconque appel à un verrouilleur pour déverrouiller une adresse de stockage. More precisely, after the call to the first relayer, each subsequent call of a relayer implies a prior call to the locker of the access manager of this relayer. In addition, all locker calls for locking access to storage addresses including storage data are prior to a locker call to lock access to a storage address including the associated parity data. Finally, all locker calls to lock access to storage addresses are prerequisites for any call to a locker to unlock a storage address.

Cela permet de garantir la cohérence des données et d'éviter les situations d'interblocage. Plus particulièrement, dans le cas de survenance de panne, la synchronisation des données est garantie. This ensures data consistency and avoids deadlock situations. More particularly, in the event of failure, data synchronization is guaranteed.

En outre, comme l'exécution de la séquence est répartie sur tous les gestionnaires d'accès, le client émetteur de la requête n'est plus un point dont une panne prête à conséquence, et cette panne peut être mieux gérée, comme les séquences peuvent se terminer sans le client. Cela est particulièrement intéressant pour la gestion des pannes dans le cas où le client stocke des données du groupe d'adresses correspondant de la séquence. In addition, since the execution of the sequence is distributed over all the access managers, the client sending the request is no longer a point of which a failure is of consequence, and this failure can be better managed, as the sequences can end without the customer. This is particularly useful for fault management in the case where the client stores data from the corresponding address group of the sequence.

Cela signifie également que la récupération d'une panne client a un coût moins élevé comme 20 il suffit à chaque séquence de reprendre là où elle s'était arrêtée, sans nécessiter une resynchronisation des données de parité. It also means that recovery of a client failure has a lower cost as it is sufficient for each sequence to resume where it left off without requiring resynchronization of the parity data.

En outre, cette propagation contrôlée permet également un calcul au fil de l'eau des portions de données de parité. Cela permet de répartir la charge de calcul entre les différents serveurs, ce qui est intéressant pour la gestion de parités complexes. Cela permet également de répartir la charge de communication liée aux opérations faisant appel à la parité. In addition, this controlled propagation also allows a run-of-the-water calculation of the parity data portions. This makes it possible to distribute the computing load between the various servers, which is interesting for the management of complex parities. It also helps to spread the communication load associated with parity operations.

30 Cela est également favorable pour les situations d'exception comme les modes de fonctionnement dégradé, ou les phases de reconstruction et de vérification de synchronisation (cohérence), comme ces opérations impactent tous les gestionnaires d'accès d'un groupe d'adresses correspondant donné. 25 Par ailleurs, le mécanisme de double acquittement et la terminaison de la requête en cas de panne augmentent la fiabilité et la robustesse du système. This is also favorable for exceptional situations such as degraded operating modes, or reconstruction and synchronization verification (coherence) phases, as these operations impact all access managers of a corresponding address group. given. In addition, the double acknowledgment mechanism and the termination of the request in the event of a breakdown increase the reliability and the robustness of the system.

Enfin, ces séquences pourraient être adaptées à des méthodes de correction d'erreur similaires à la parité, mentionnées plus haut comme parités complexes , comme les codes de Reed-Solomon ou les codes LDPC (par exemple Gallager). Finally, these sequences could be adapted to parity-like error correction methods mentioned above as complex parities, such as Reed-Solomon codes or LDPC codes (eg Gallager).

Ces codes diffèrent de la parité décrite plus haut par le fait qu'ils impliquent plusieurs données de parité pour chaque groupe d'adresses, et plus une seule comme décrit plus haut. These codes differ from the parity described above by the fact that they involve several parity data for each group of addresses, and only one as described above.

Cependant, les principes décrits ici, comme l'ordre de verrouillage (données avant parité) et de déverrouillage (pas de verrouillage après un déverrouillage), ainsi que les règles de propagation de la séquence sur les gestionnaire d'accès pourraient être appliqués de manière similaire. However, the principles described here, such as the locking order (data before parity) and unlocking (not locking after unlocking), as well as the propagation rules of the sequence on the access manager could be applied in a similar.

II serait possible d'alléger certaines des séquences, par exemple en supprimant le principe du double acquittement. It would be possible to lighten some of the sequences, for example by removing the principle of double acknowledgment.

Il serait également possible de réduire la latence en transmettant la séquence à chaque fois très 20 tôt après le verrouillage, par exemple juste après le verrouillage. It would also be possible to reduce the latency by transmitting the sequence each time very soon after the lock, for example just after locking.

Cela permettrait en effet d'initialiser plus rapidement les lectures de données locales de groupe d'adresse correspondant par chacun des gestionnaires d'accès. This would in fact make it faster to initialize the corresponding address group local data readings by each of the access managers.

25 En effet, une transmission anticipée permet de paralléliser partiellement l'exécution de la séquence localement par les différents gestionnaires d'accès, tout en maintenant la cohérence des données. Indeed, an advance transmission makes it possible to partially parallelize the execution of the sequence locally by the different access managers, while maintaining the coherence of the data.

Il est également prévu que le connecteur 86 met à disposition des données pour une lecture 30 éloignée, ou au contraire écrit à distance selon les situations. It is also expected that the connector 86 provides data for remote reading, or on the contrary written remotely depending on the situation.

Dans le cas de la lecture de données, l'écriture à distance est intéressante car cela permet de réduire la latence. Cependant, il serait possible de fonctionner en lecture éloignée à partir du gestionnaire d'accès initial. 15 Cette variante peut être intéressante car elle permet alors à un client de gérer la charge réseau associée à ces séquences. In the case of reading data, remote writing is interesting because it reduces latency. However, it would be possible to operate in remote reading from the initial access manager. This variant can be interesting because it then allows a client to manage the network load associated with these sequences.

En effet, certaines séquences peuvent induire des flux de communications conséquents, et il peut être intéressant de laisser le client choisir l'ordonnancement des requêtes impliquant des communications réseau, plutôt que de laisser une multitude de serveurs le noyer sous les requêtes. Indeed, some sequences can induce significant communication flows, and it may be interesting to let the client choose the scheduling of requests involving network communications, rather than let a multitude of servers drown out the requests.

En ce qui concerne la propagation des portions de données de parité, c'est la lecture à distance qui est intéressante, car elle ne nécessite pas l'ouverture, à l'avance, d'un espace pour stocker ces données. As regards the propagation of the portions of parity data, it is the remote reading which is interesting because it does not require the opening, in advance, of a space for storing these data.

Cependant, notamment dans la variante de transmission de requête anticipée, il serait possible de mettre en oeuvre une écriture à distance, en prévoyant que celle-ci est déclenchée après la mise à disposition de l'espace mémoire correspondant du côté du gestionnaire d'accès cible. However, in particular in the variant of forward request transmission, it would be possible to implement a remote write, providing that it is triggered after the provision of the corresponding memory space on the access manager side target.

Par ailleurs, bien qu'il soit ici décrit l'utilisation d'écriture et de lecture à distance afin d'économiser les tampons, il serait possible de les remplacer par des envois et des réceptions, 20 moyennant une gestion dynamique appropriée des tampons. On the other hand, although the use of remote write and read is here described to save buffers, it would be possible to replace them with sendings and receptions, with proper dynamic buffer management.

Lorsque le constructeur d'un gestionnaire d'accès est appelé par un relayeur, le rôle de ce constructeur est limité à une instanciation sur le gestionnaire d'accès de la séquence reçue. When the constructor of an access manager is called by a relay, the role of this constructor is limited to an instantiation on the access manager of the received sequence.

25 Il apparaît également qu'une requête est associée à une séquence, qui est elle-même composée de séquences locales essentiellement indépendantes. It also appears that a request is associated with a sequence, which is itself composed of essentially independent local sequences.

Il ressort de cela qu'en variante le constructeur de chaque gestionnaire d'accès pourrait construire la séquence locale à réception d'un message d'un relayeur. Cette construction peut être presque totale, c'est-à-dire que le constructeur ne reçoit qu'un nombre minimal d'informations, telles qu'un indicateur du gestionnaire d'accès qui l'a appelé, un indicateur du gestionnaire d'accès suivant, et une indication de rôle (comme le numéro de colonne et le type d'opération). 30 Plusieurs modes de réalisation ont été décrits plus haut, avec des caractéristiques optionnelles. À chaque fois que cela a paru possible, la combinaison de ces caractéristiques avec chacun de ces modes de réalisation a été décrite. Cependant, c'est l'ensemble des combinaisons des caractéristiques des modes de réalisation décrits qui rentre dans la portée de l'invention. It follows from this that, in a variant, the constructor of each access manager could construct the local sequence on receipt of a message from a relayer. This construction can be almost total, that is to say that the constructor receives only a minimal number of information, such as an indicator of the access manager who called it, an indicator of the manager of next access, and a role indication (such as column number and type of operation). Several embodiments have been described above, with optional features. Whenever possible, the combination of these features with each of these embodiments has been described. However, it is the combination of the features of the described embodiments that is within the scope of the invention.

Il doit donc être compris que toutes les combinaisons des modes de réalisation entre eux et 10 des caractéristiques optionnelles sont décrites dans la présente description, ainsi que leurs équivalents, même lorsque cela n'a pas été explicitement décrit par souci de simplicité. It should therefore be understood that all combinations of the embodiments between them and optional features are described in the present description, as well as their equivalents, even when this has not been explicitly described for the sake of simplicity.

En outre l'invention concerne également un procédé de gestion de données, applicable dans un réseau comprenant plusieurs stations de stockage de données, comportant les étapes 15 suivantes : Furthermore, the invention also relates to a data management method, applicable in a network comprising several data storage stations, comprising the following steps:

a. émettre une requête de fichier depuis une station, sur la base d'une représentation sous forme d'adresses virtuelles, lesdites adresses virtuelles étant associées par groupe à des adresses de stockage données pour stocker les données de stockage correspondantes ainsi que 20 des données de parité, at. issuing a file request from a station, based on a representation in the form of virtual addresses, said virtual addresses being associated by group with given storage addresses to store the corresponding storage data as well as parity data ,

b. sur la base de ladite association par groupe d'adresses, déterminer l'adresse de stockage correspondant à ladite adresse virtuelle, ainsi que le groupe d'adresses de stockage stockant les données de stockage et les données de parité, c. émettre une requête d'accès désignant ladite adresse de stockage vers un gestionnaire d'accès de la station émettrice de la requête, d. exécuter ladite requête d'accès en construisant une séquence ordonnée comprenant, pour 30 chaque gestionnaire d'accès concerné, une ou plusieurs opérations choisies parmi le groupe qui comprend : - un verrouillage ou un déverrouillage de l'accès à une adresse de stockage gérée par le gestionnaire d'accès, - un accès à une adresse de stockage gérée par le gestionnaire d'accès, 25 - un calcul de données de parité, - un échange de données avec un autre gestionnaire d'accès, et - une transmission de données de requête vers un autre gestionnaire d'accès, ladite séquence comprenant au moins une transmission de données de requête du gestionnaire d'accès de la station émettrice de la requête vers un autre gestionnaire d'accès, et, pour chaque transmission ultérieure, un verrouillage de l'accès à une adresse accédée par le gestionnaire d'accès concerné. b. based on said address group association, determining the storage address corresponding to said virtual address, as well as the storage address group storing the storage data and the parity data, c. issuing an access request designating said storage address to an access manager of the station issuing the request, d. executing said access request by constructing an ordered sequence comprising, for each access manager concerned, one or more operations selected from the group which comprises: - locking or unlocking access to a storage address managed by the access manager, - access to a storage address managed by the access manager, - a calculation of parity data, - an exchange of data with another access manager, and - a data transmission. to another access manager, said sequence comprising at least one transmission of request data from the access manager of the sending station of the request to another access manager, and, for each subsequent transmission, a lock access to an address accessed by the access manager concerned.

Ce procédé prévoit en outre que : * tous les verrouillages de l'accès à des adresses de stockage comprenant des données de stockage sont préalables à un verrouillage de l'accès à une adresse de stockage comprenant les données de parité associées, * tous les verrouillages de l'accès à des adresses de stockage sont préalables à un quelconque déverrouillage d'une adresse de stockage, et * après chaque transmission, un verrouillage de l'accès à une adresse de stockage est réalisé par le gestionnaire d'accès appelé. This method further provides that: * all locks of access to storage addresses including storage data are prior to locking access to a storage address including the associated parity data, * all locks access to storage addresses is required prior to any unlocking of a storage address, and * after each transmission, locking of access to a storage address is performed by the called access manager.

Claims (8)

Revendications1. Outil informatique de stockage de données dans un réseau de stations, chaque station comprenant une ou plusieurs unités de stockage (38) dont certaines au moins comportent des adresses de stockage propres à recevoir des données de stockage et des données de parité, l'outil étant implanté sur chaque station et comprenant d'une part un virtualiseur (36) associant des adresses virtuelles et des adresses de stockage, et d'autre part un gestionnaire d'accès (44) aux adresses de stockage de cette station, caractérisé en ce que : * le virtualiseur (36) établit une correspondance entre un groupe d'adresses virtuelles et un groupe d'adresses de stockage données pour stocker les données de stockage correspondantes ainsi que des données de parité, les adresses de stockage de chaque groupe étant réparties sur des unités de stockage (38) distinctes, * le gestionnaire d'accès (44) comprend les éléments suivants : - un verrouilleur (80), agencé pour verrouiller ou déverrouiller l'accès à une adresse de stockage sur une unité de stockage (38) de la station sur laquelle est implanté l'outil, - un actionneur d'accès (82), agencé pour effectuer un accès à une adresse de stockage sur unité de stockage (38) de la station sur laquelle est implanté l'outil, - un contrôleur de parité (84), agencé pour calculer des données de parité, 20 - un connecteur (86), agencé pour permettre un échange de données entre le gestionnaire d'accès et un autre gestionnaire d'accès, - un relayeur (88), agencé pour transmettre des données caractéristiques d'une requête d'accès, du gestionnaire d'accès vers un autre gestionnaire d'accès, - un constructeur (90), agencé pour construire, à partir de données de requête d'accès à 25 une adresse de stockage, une séquence ordonnée d'appels de certains au moins des éléments des gestionnaires d'accès des stations comportant les adresses de stockage du groupe d'adresses désigné par ladite requête d'accès, ladite séquence ordonnée comprenant au moins un appel au relayeur (88), et comprenant, pour chaque appel ultérieur d'un relayeur (88), un appel préalable au 30 verrouilleur (80) du gestionnaire d'accès (40) de ce relayeur (88). Revendications1. Computer tool for storing data in a network of stations, each station comprising one or more storage units (38), at least some of which have storage addresses adapted to receive storage data and parity data, the tool being implanted on each station and comprising on the one hand a virtualizer (36) associating virtual addresses and storage addresses, and on the other hand an access manager (44) to the storage addresses of this station, characterized in that The virtualizer (36) maps a group of virtual addresses and a group of storage addresses to store the corresponding storage data and parity data, the storage addresses of each group being distributed over separate storage units (38), * the access manager (44) comprises the following elements: - a lock (80), arranged to lock or unlock er access to a storage address on a storage unit (38) of the station on which the tool is implanted; - an access actuator (82), arranged to perform an access to a storage address on a unit storage device (38) of the station on which the tool is implanted; - a parity controller (84) arranged to compute parity data; - a connector (86) arranged to allow data exchange between the access manager and another access manager, - a relayer (88), arranged to transmit characteristic data of an access request, from the access manager to another access manager, - a manufacturer ( 90), arranged to construct, from access request data to a storage address, an ordered sequence of calls of at least some of the elements of the access managers of the stations comprising the storage addresses of the group d. addresses designated by said access request, said ordered sequence comprising at least one call to the relayer (88), and comprising, for each subsequent call of a relay (88), a prior call to the locker (80) of the access manager (40) of this relay ( 88). 2. Outil selon la revendication 1, caractérisé en ce que le constructeur (90) est agencé pour construire une séquence dans laquelle : 36- tous les appels aux verrouilleurs (80) pour verrouiller l'accès à des adresses de stockage comprenant des données de stockage sont préalables à un appel au verrouilleur (80) pour verrouiller l'accès à une adresse de stockage comprenant les données de parité associées, et - tous les appels aux verrouilleurs (80) pour verrouiller l'accès à des adresses de stockage sont préalables à un quelconque appel à un verrouilleur (80) pour déverrouiller une adresse de stockage. 2. Tool according to claim 1, characterized in that the constructor (90) is arranged to construct a sequence in which: all the calls to the locks (80) to lock access to storage addresses comprising data of storage prior to a call to the lock (80) to lock access to a storage address including the associated parity data, and - all locker calls (80) to lock access to storage addresses are preconditions any call to a lock (80) to unlock a storage address. 3. Outil selon la revendication 2, caractérisé en ce que le constructeur (90) est agencé pour construire une séquence dans laquelle, après ledit au moins un appel au relayeur (88), le gestionnaire d'accès (44) cible appelle son verrouilleur (80) pour verrouiller l'accès à une adresse de stockage. 3. Tool according to claim 2, characterized in that the manufacturer (90) is arranged to construct a sequence in which, after said at least one call to the relayer (88), the target access manager (44) calls its locker (80) to lock access to a storage address. 4. Outil selon la revendication 3, caractérisé en ce que le constructeur (90) est agencé pour construire une séquence dans laquelle, lorsqu'un relayeur (88) appelle le gestionnaire d'accès (44) qui gère l'accès aux données de parité, la séquence comprend un appel aux éléments suivants de ce gestionnaire d'accès (44) : au verrouilleur (80) pour verrouiller l'adresse des données de parité, à l'actionneur d'accès (82) pour lire les données de parité, au connecteur (86) pour lire une portion de données de parité, au contrôleur de parité (84) avec les données de parité et la portion de données de parité, à l'actionneur d'accès (82) ou au connecteur (86) pour écrire des données tirées du contrôleur de parité (84), au verrouilleur (80) pour déverrouiller l'accès aux données de parité, et au relayeur (88) pour transmettre un accusé d'exécution. 4. Tool according to claim 3, characterized in that the constructor (90) is arranged to construct a sequence in which, when a relayer (88) calls the access manager (44) which manages the access to the data of parity, the sequence comprises a call to the following elements of this access manager (44): the lock (80) for locking the address of the parity data, the access actuator (82) for reading the data of parity, at the connector (86) for reading a parity data portion, at the parity controller (84) with the parity data and the parity data portion, at the access actuator (82) or at the connector ( 86) for writing data from the parity controller (84), the lock (80) to unlock access to the parity data, and the relay (88) to transmit an execution acknowledgment. 5. Outil selon la revendication 4, caractérise en ce que le constructeur est agencé pour construire une séquence dans laquelle chaque appel au verrouilleur d'un gestionnaire d'accès donné est suivi par au moins un appel à l'actionneur d'accès du gestionnaire d'accès donné pour lire des données de stockage associées à l'adresse de stockage verrouillée, un appel à au moins un élément du gestionnaire d'accès donné, choisi parmi l'actionneur d'accès, le contrôleur de parité, et le connecteur, et un appel au verrouilleur du gestionnaire d'accès donné pour déverrouiller l'adresse de stockage verrouillée. 5. Tool according to claim 4, characterized in that the manufacturer is arranged to construct a sequence in which each call to the lock of a given access manager is followed by at least one call to the access actuator of the manager. given access to read storage data associated with the locked storage address, a call to at least one element of the given access manager, selected from the access actuator, the parity controller, and the connector , and a call to the locker of the given access manager to unlock the locked storage address. 6. Outil selon la revendication 5, caractérisé en ce que le constructeur (90) est agencé pour construire une séquence dans laquelle l'appel au verrouilleur (80) d'un gestionnaire d'accès (44) donné est suivi par l'appel du relayeur (88) dudit gestionnaire d'accès (44) donné pour transmettre un accusé d'exécution au gestionnaire d'accès (44) du relayeur (88) qui a appelé le gestionnaire d'accès (44) donné. 6. Tool according to claim 5, characterized in that the constructor (90) is arranged to construct a sequence in which the call to the lock (80) of a given access manager (44) is followed by the call. the relay (88) of said given access manager (44) for transmitting an execution acknowledgment to the access manager (44) of the relay (88) who called the given access manager (44). 7. Outil selon la revendication 6, caractérisé en ce que le constructeur (90) est agencé pour construire une séquence dans laquelle l'appel au verrouilleur (80) d'un gestionnaire d'accès (44) autre que celui qui gère l'accès aux données de parité est conditionné par la réception d'un accusé d'exécution d'un autre gestionnaire d'accès (44). 7. Tool according to claim 6, characterized in that the manufacturer (90) is arranged to build a sequence in which the call to the lock (80) of an access manager (44) other than the one that manages the access to the parity data is conditioned by the receipt of an execution acknowledgment from another access manager (44). 8. Outil selon la revendication 6 ou 7, caractérisé en ce que le constructeur (90) est agencé pour construire une séquence dans laquelle la réception de l'accusé d'exécution par le gestionnaire d'accès (44) du relayeur (88) qui a appelé le gestionnaire d'accès (44) donné est suivie par l'appel du relayeur (88) pour transmettre un contre-accusé d'exécution au gestionnaire d'accès (44) donné. 8. Tool according to claim 6 or 7, characterized in that the manufacturer (90) is arranged to construct a sequence in which the receipt of the execution acknowledgment by the access manager (44) of the relayer (88) who called the given access manager (44) is followed by the relayer call (88) to transmit a counter-acknowledgment to the given access manager (44).
FR0807391A 2008-12-23 2008-12-23 STORAGE SYSTEM COMPRISING MULTIPLE NETWORK NODES WITH PARITY MANAGEMENT Expired - Fee Related FR2940570B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0807391A FR2940570B1 (en) 2008-12-23 2008-12-23 STORAGE SYSTEM COMPRISING MULTIPLE NETWORK NODES WITH PARITY MANAGEMENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0807391A FR2940570B1 (en) 2008-12-23 2008-12-23 STORAGE SYSTEM COMPRISING MULTIPLE NETWORK NODES WITH PARITY MANAGEMENT

Publications (2)

Publication Number Publication Date
FR2940570A1 true FR2940570A1 (en) 2010-06-25
FR2940570B1 FR2940570B1 (en) 2011-03-18

Family

ID=41119642

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0807391A Expired - Fee Related FR2940570B1 (en) 2008-12-23 2008-12-23 STORAGE SYSTEM COMPRISING MULTIPLE NETWORK NODES WITH PARITY MANAGEMENT

Country Status (1)

Country Link
FR (1) FR2940570B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999032974A1 (en) * 1997-12-22 1999-07-01 Data General Corporation Distributed raid storage system
US20030061441A1 (en) * 2001-09-25 2003-03-27 Kabushiki Kaisha Toshiba Cluster system having virtual raid, computer for the cluster system, and parity calculation method in the cluster system
US20040250019A1 (en) * 2003-05-09 2004-12-09 International Business Machines Corporation Storage system, controller, control method and program product therefor
US6950901B2 (en) * 2001-01-05 2005-09-27 International Business Machines Corporation Method and apparatus for supporting parity protection in a RAID clustered environment
WO2008053098A2 (en) * 2006-10-26 2008-05-08 Seanodes Improved computer-based system comprising several nodes in a network
US7389393B1 (en) * 2004-10-21 2008-06-17 Symantec Operating Corporation System and method for write forwarding in a storage environment employing distributed virtualization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999032974A1 (en) * 1997-12-22 1999-07-01 Data General Corporation Distributed raid storage system
US6950901B2 (en) * 2001-01-05 2005-09-27 International Business Machines Corporation Method and apparatus for supporting parity protection in a RAID clustered environment
US20030061441A1 (en) * 2001-09-25 2003-03-27 Kabushiki Kaisha Toshiba Cluster system having virtual raid, computer for the cluster system, and parity calculation method in the cluster system
US20040250019A1 (en) * 2003-05-09 2004-12-09 International Business Machines Corporation Storage system, controller, control method and program product therefor
US7389393B1 (en) * 2004-10-21 2008-06-17 Symantec Operating Corporation System and method for write forwarding in a storage environment employing distributed virtualization
WO2008053098A2 (en) * 2006-10-26 2008-05-08 Seanodes Improved computer-based system comprising several nodes in a network

Also Published As

Publication number Publication date
FR2940570B1 (en) 2011-03-18

Similar Documents

Publication Publication Date Title
JP6882527B2 (en) Systems and methods for terminating the view change protocol
JP6923674B2 (en) Systems and methods for terminating the view change protocol
EP1687717B1 (en) Secured start-up of an electronic device having an smp architecture
US20140337457A1 (en) Using network addressable non-volatile memory for high-performance node-local input/output
EP2839378B1 (en) System and method for managing cache coherence in a network of processors provided with cache memories
Guerraoui et al. The alpha of indulgent consensus
FR2939922A1 (en) PHYSICAL MANAGER OF SYNCHRONIZATION BARRIER BETWEEN MULTIPLE PROCESSES
FR2773237A1 (en) SYSTEM AND METHOD FOR MODIFYING THE MAPPING OF PARTITIONS TO LOGICAL UNITS IN A COMPUTER MEMORY
EP2350836A1 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
EP2088511A1 (en) Multiprocessor computing system
US10896201B2 (en) Synchronization of block based volumes
WO2021043599A1 (en) Migration of a data blockchain
FR2940570A1 (en) Computing data storage tool for network of nodes in computer system, has constructor constructing ordered sequence of calls of elements, where call sequence comprises conveyor call and previous call of lock, for each next call of conveyor
WO2008053098A2 (en) Improved computer-based system comprising several nodes in a network
US9798683B2 (en) Minimizing micro-interruptions in high-performance computing
EP4435615A1 (en) Method for managing a cache memory
WO2010125257A1 (en) Storage system including a plurality of nodes in a network with write synchronisation management
WO2020136126A1 (en) Secure, tracked communication network
EP3080706B1 (en) Method of backup of data stored in a terminal
EP2221730B1 (en) Method for direct and concurrent access of several virtual processing units to a peripheral unit
FR2907993A1 (en) Computer system for network, has storage server executing request contained in waiting queue in preset order according to rules forming performance criteria and implying parameters of state of storage area
FR2919401A1 (en) METHOD FOR TESTING DATA PATHS IN AN ELECTRONIC CIRCUIT
WO2015067892A1 (en) Method for protecting metadata
CN120067154A (en) Data operation method, device and data system based on careless search tree
EP2755160B1 (en) Method of tracing data related to a device user

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20120831