FR2912520A1 - Procede de gestion de fichiers. - Google Patents
Procede de gestion de fichiers. Download PDFInfo
- Publication number
- FR2912520A1 FR2912520A1 FR0753222A FR0753222A FR2912520A1 FR 2912520 A1 FR2912520 A1 FR 2912520A1 FR 0753222 A FR0753222 A FR 0753222A FR 0753222 A FR0753222 A FR 0753222A FR 2912520 A1 FR2912520 A1 FR 2912520A1
- Authority
- FR
- France
- Prior art keywords
- file
- locking
- opening
- data
- function
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000007726 management method Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 28
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 8
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 112
- 238000012360 testing method Methods 0.000 description 61
- 230000004044 response Effects 0.000 description 26
- 230000015654 memory Effects 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 8
- 230000006837 decompression Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 101100226366 Arabidopsis thaliana EXT3 gene Proteins 0.000 description 2
- 208000034420 multiple type III exostoses Diseases 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002089 crippling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
La présente invention concerne un procédé de gestion de fichiers, comportant une première étape d'organisation de la base de fichiers de données consistant à créer une arborescence de répertoires à M niveaux de N répertoires chacun, et des étapes d'enregistrement de fichiers de données consistant à :- appliquer une fonction de hachage sur l'identifiant d'un fichier de données Fi à enregistrer- déterminer le chemin du répertoire Rdi de destination dans l'arborescence en fonction du résultat de l'étape précédente- enregistrer le fichier de données dans ledit répertoire Rdi à un emplacement fonction dudit résultat de l'étape de hachageet des étapes de lecture de fichiers de données consistant à :- appliquer la même fonction de hachage sur l'identifiant d'un fichier de données Fj à lire- déterminer le chemin du répertoire Rcj cible dans l'arborescence en fonction du résultat de l'étape précédente- lire le fichier de données dans ledit répertoire Rcj à un emplacement fonction dudit résultat de l'étape de hachage.
Description
PROCÉDÉ DE GESTION DE FICHIERS
La présente invention concerne le domaine de la gestion de fichiers numériques, et plus particulièrement de leur enregistrement, lecture et modification sur un support d'enregistrement. Plus précisément, elle concerne un procédé et un système de gestion de fichiers de données interagissant avec un système de fichier (file system) propre au système d'exploitation (operating system) de l'ordinateur. D'une manière habituelle, un nouveau fichier de données est enregistré en un emplacement d'une mémoire, par exemple d'un disque dur, en fonction des disponibilités d'espace mémoire. Dans le cas d'un enregistrement sur un disque dur, ce dernier est organisé en blocs initialisés au moment du formatage. Ces blocs sont répartis au moment du formatage sur les secteurs physiques de la mémoire. La gestion des fichiers de données sur un ordinateur est réalisée par le système de fichier du système d'exploitation de l'ordinateur. Le système de fichier d'un système d'exploitation met en oeuvre une ou plusieurs partitions sur un support d'enregistrement. Une partition comprend un espace de stockage destiné à l'enregistrement de fichiers de données quelconques, et un espace d'indexation dans lequel sont enregistrées les caractéristiques de l'espace de stockage, notamment les adresses des fichiers dans l'espace de stockage. Certains fichiers constituent des répertoires, regroupant des listes de caractéristiques relatives à des fichiers de données et à des répertoires appartenant à une même partition. Pour des supports d'enregistrement ayant un volume de stockage de taille élevée, par exemple plusieurs gigaoctets, les performances du système d'indexation du système de fichier sont dégradées lorsque le nombre de fichiers de données à enregistrer, lire ou modifier devient important dans un même répertoire. En effet, l'organisation des fichiers de type répertoire comprend une liste contenant un nombre très élevé d'occurrences à traiter, ce qui augmente le temps d'accès à un fichier de manière rédhibitoire lorsque le nombre de fichiers de données atteint plusieurs dizaines de milliers. Cette dégradation est augmentée par les phénomènes de fragmentations des fichiers de type répertoire se produisant lorsqu'un fichier de données doit être renommé ou effacé. Un autre mode d'organisation connu par le système de fichier Linux EXT3 propose une organisation des fichiers de type répertoire comprenant un système d'indexation interne de type B-Tree et, pour chaque fichier de données, le calcul d'un condensât du nom du fichier de données à partir du résultat d'une fonction de hachage, pour accélérer la recherche dans les répertoires contenant un nombre important de fichiers de données. Cette solution permet d'exploiter plusieurs centaines de milliers de fichiers de données dans un même répertoire. Toutefois, au-delà d'un certain seuil, les limites de la fonction de hachage ne permettent plus d'éviter des collisions conduisant à l'attribution d'un même condensât à deux fichiers de données de noms distincts. Pour le système de fichier EXT3, cette limite apparaît dès que le nombre de fichiers de données atteint environ 500.000 dans un même répertoire, pour des versions du noyau Linux 2.6. Le but de la présente invention est de remédier à cet inconvénient en proposant un procédé de gestion de fichiers robuste et rapide, permettant d'exploiter un nombre de fichiers de données limité uniquement par l'espace disponible de la mémoire, et non pas par les traitements effectués par le système de fichier sur les noms des fichiers de données. La solution selon l'invention ne limite donc pas la capacité d'exploiter des mémoires de stockage de masse, la seule limite étant la capacité physique de ces mémoires et non plus les modes d'exploitation proposés par le système de fichier. Elle permet de gérer de très grands nombres de fichiers de données, pour des applications telles que des serveurs de fichiers. Selon son acception la plus générale, l'invention concerne un procédé de gestion de fichiers, comportant une première étape d'organisation de la base de fichiers de données consistant à créer une arborescence de répertoires à M niveaux de N répertoires chacun, et des étapes d'enregistrement de fichiers de données consistant à : - appliquer une fonction de hachage sur l'identifiant d'un fichier de données Fi à enregistrer, - déterminer le chemin du répertoire Rdi de destination dans l'arborescence en fonction du résultat de l'étape précédente, enregistrer le fichier de données dans ledit répertoire Rdi à un emplacement fonction dudit résultat de l'étape de hachage, et des étapes de lecture de fichiers de données consistant à : - appliquer la même fonction de hachage sur l'identifiant d'un fichier de données Fi à lire, -déterminer le chemin du répertoire R,i cible dans 25 l'arborescence en fonction du résultat de l'étape précédente, - lire le fichier de données dans ledit répertoire R, i à un emplacement fonction dudit résultat de l'étape de hachage. 30 Pour utiliser des unités de stockage en parallèle et améliorer les performances (vitesse d'accès et/ou volume de mémoire), l'invention concerne selon un mode particulier de mise en oeuvre un procédé de gestion de fichiers selon la revendication précédente caractérisé en ce que les fichiers de données sont répartis sur Q unités de stockage, chaque unité de stockage correspondant à p niveaux de répertoires de N répertoires. Avantageusement, N est égal à 16, et la fonction de 5 hachage est la fonction SHA1. Un problème complémentaire de la gestion des fichiers concerne la protection de l'intégrité des données en cas d'accès simultanés au même fichier de données par deux applications. 10 Il est connu sur la plupart des systèmes d'exploitation de procéder à des verrouillages des fichiers de données au niveau du système de fichier, permettant d'interdire momentanément l'accès à un fichier de données en cours d'écriture ou de lecture. Ces solutions sont gérées 15 par le système de fichier, généralement à partir d'une table de verrouillage résiduelle en mémoire. L'inconvénient de ces solutions est qu'en cas d'accès à un fichier au travers d'un réseau, des interférences ou des erreurs peuvent se produire en cas d'accès à un même fichier à partir d'une pluralité 20 d'ordinateurs distants. Le brevet US6850969 propose une solution particulière permettant d'éviter l'utilisation de verrouillages. Ce brevet propose un contrôle a posteriori de la possibilité pour une application d'enregistrer des modifications dans un 25 fichier de données ouvert, et garantit que pendant cette opération dite atomique aucune autre application n'est intervenue sur le même fichier de données. On entendra par atomique au sens du présent brevet un ensemble de tâches indivisibles exécutées de manière consécutive sans 30 possibilités d'interruption, ni d'interférence par une opération tierce, avant l'achèvement de la totalité des tâches de l'opération dite atomique. Cette solution n'est pas satisfaisante car elle empêche l'aboutissement de certaines opérations lorsque 35 plusieurs applications effectuent des traitements au même moment sur un ensemble de fichiers en commun. Elle permet certes d'éviter l'altération des fichiers de données existants, mais au détriment d'un accès concurrent et sécurisé. En effet, cette solution impose que chaque traitement intervienne après que le précédent soit achevé. Elle n'est donc pas réellement adaptée à des traitements sur des fichiers contenant par exemple des données au format XML et qui peuvent être utilisés à tout moment par différentes applications concurrentes. À cet effet, l'invention concerne également un procédé de gestion de fichiers caractérisé en ce que chaque fichier de données comporte un en-tête et un corps. L'en-tête comporte A paramètres d'état du fichier de données dans le système de gestion de fichiers. Le corps comprend le contenu modifiable du fichier. Le procédé comporte une étape d'accès à un fichier de données cible provoquant la modification d'un desdits paramètres d'état vers un état interdisant un nouvel accès. La gestion de ces fichiers de données est indépendante 20 du système de fichier du système d'exploitation de l'ordinateur. L'invention sera mieux comprise à la lecture de la description qui suit, correspondant à des exemples non limitatifs de réalisation, se référant aux dessins annexés 25 où . - la figure 1 représente une vue schématique de l'arborescence mise en oeuvre par le procédé de gestion de fichiers selon l'invention, - les figures 2 à 8 représentent les schémas 30 fonctionnels de la gestion des fichiers, - la figure 9 représente le schéma d'utilisation du système de gestion de fichiers à travers un réseau, correspondant à un mode client-serveur.
La figure 1 représente une vue schématique de l'arborescence mise en oeuvre par le procédé de gestion de fichiers selon l'invention. Les fichiers de données sont organisés selon une structure subdivisée, dans l'exemple décrit, en M = cinq niveaux (1 à 5). Chaque répertoire de chaque niveau (1 à 4), hormis le dernier niveau (5), contient N = 16 répertoires (10 à 12), (20 à 25), (30 à 35), (40 à 45). Le nom de chacun des 16 répertoires correspond à un chiffre hexadécimal entre 0 et f. Le nombre total de répertoires contenus dans la structure est de 16+162+163...+16M.
Dans l'exemple décrit, l'arborescence comprend : - 69.904 répertoires de niveau (1 à 4), ne contenant 15 pas de fichiers de données, mais seulement des répertoires du niveau supérieur ; - 1.048.576 répertoires (50 à 55) de niveau (5) ; chaque répertoire contenant des fichiers permettant de stocker les fichiers de données. 20 Chaque répertoire (50 à 55) du dernier niveau (5) peut contenir un nombre L limité de fichiers de données, L étant choisi petit, par exemple de l'ordre de 1.000, pour permettre un temps d'accès rapide, et ce, quel que soit le système de fichier du système d'exploitation de 25 l'ordinateur.
Attribution d'un emplacement mémoire à un fichier de données Lorsque l'on procède à la création d'un nouveau 30 fichier de données, désigné par un nom d'usage unique formé par une chaîne de caractères, le procédé consiste à appliquer une fonction de hachage Hi sur cette chaîne de caractères représentant le nom d'usage, dont le résultat sera constitué par une valeur représentée sous une forme hexadécimale. Pour une fonction de hachage SHA1, le résultat sous forme hexadécimale comprendra 40 chiffres hexadécimaux entre 0 et f. Le procédé consiste à déterminer, dans le contexte de l'arborescence de répertoires précédemment définie et à partir de ce résultat de la fonction de hachage, un chemin de répertoire dans ladite arborescence. Le rang de chacun des M premiers chiffres du résultat de la fonction de hachage correspondra à un niveau de 10 l'arborescence de répertoires. Si on prend un exemple de nom d'usage myfile , l'application de la fonction SHA1 retourne la valeur b3580ab45cbO88ba47ffO70aa8lc2daelbe56ca2 . Le répertoire du niveau (1) sera celui portant le nom 15 b , correspondant au premier caractère de la valeur SHA1, le répertoire du niveau (2) sera 3 , correspondant au second caractère, et ainsi de suite pour les 5 niveaux (1 à 5). L'emplacement dans le dernier répertoire (5) sera constitué par la représentation hexadécimale à deux chiffres 20 des octets de chacun des caractères constituant le nom d'usage. Pour le nom myfile , l'emplacement et le nom du fichier seront 6d7966696c65 , 6d correspondant à la représentation hexadécimale à deux chiffres du caractère m , 79 correspondant à la représentation hexadécimale 25 à deux chiffres du caractère y , 66 correspondant à la représentation hexadécimale à deux chiffres du caractère f , et ainsi de suite. Pour des caractères nécessitant un codage sur plusieurs octets, l'ensemble des octets sera successivement 30 représenté sous cette forme. En raison de l'unicité du nom d'usage du fichier de données, la désignation du fichier sera nécessairement unique car elle résulte de la combinaison d'un emplacement calculé à partir de la fonction de hachage et d'un nom de fichier de données calculé de façon unique à partir du nom d'usage. Cette solution permet de répartir de manière équiprobable et avec une dispersion maximale les fichiers de données dans les répertoires de niveau M de l'arborescence de répertoires. Seul le niveau M contient des fichiers de données, les niveaux intermédiaires ne contenant pas de fichiers de données et servant uniquement à la répartition des fichiers dans les répertoires de niveau M. À l'intérieur de chaque répertoire de niveau M, le nombre de fichiers de données est raisonnable, par exemple de l'ordre de 1.000, ce qui conduit à des temps d'accès rapides. Le nombre maximum de fichiers de données qui peut être créé dans une arborescence de niveau M est égal à 1.000 x 16M. Par exemple, pour M = 5, il est possible de créer, écrire ou lire environ 1 milliard de fichiers de données dans une arborescence de répertoires de niveau M.
Création, écriture, lecture et effacement d'un fichier 20 de données La première étape consiste à déterminer, à partir du nom d'usage du fichier, son chemin d'accès dans l'arborescence ainsi que son nom de fichier associé, par 25 application de la fonction de hachage précédemment mentionnée et par le calcul du nom du fichier à partir du nom d'usage. Cette étape permet de déterminer dans quel répertoire de niveau M est enregistré le fichier et son emplacement dans ce répertoire. 30 Accès concurrent à un même fichier de données Pour permettre une gestion sécurisée des accès aux fichiers de données, ces derniers comprennent chacun un en- 35 tête et un corps. Le corps comprend le contenu modifiable du fichier, sous une forme directement accessible ou sous forme compressée ou chiffrée. Ce corps est précédé d'un en-tête comportant des paramètres d'état du fichier dans le système de gestion de fichiers.
De manière systématique, l'accès à un fichier par un traitement, pour une série d'opérations quelconques (écriture, lecture, modification ou effacement), se traduit par une première étape d'acquisition consistant à modifier un desdits paramètres d'état de l'en-tête vers un état interdisant un nouvel accès par un autre traitement. Bien entendu, lorsque le fichier est en cours d'accès ou d'utilisation par un traitement, un autre traitement rencontrera, lors de cette étape initiale d'acquisition, une notification d'interdiction ou d'attente.
L'autre traitement réitère cette étape initiale d'acquisition jusqu'à ce que le fichier cible soit de nouveau dans un état autorisant l'accès, ou jusqu'à ce qu'un délai prédéterminé provoque l'interruption des tentatives d'accès.
Une fois la série d'opérations achevée par le traitement, une dernière étape de libération restaure l'état initial du paramètre modifié dans l'en-tête, permettant ainsi à un autre traitement d'accéder au fichier de données.
Les figures 2 à 8 représentent les structures de fonctions mises en oeuvre par l'invention.
Fonction d'acquisition d'un fichier de données existant La figure 2 représente la succession de tâches nécessaires pour l'acquisition d'un fichier de données existant. La fonction prend en entrée (150) le nom d'un fichier 35 calculé à partir du nom d'usage comme exposé précédemment.
La première tâche (100) consiste à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. La fonction procède ensuite à un test (101) pour vérifier l'ouverture et le verrouillage du fichier : si le fichier n'est pas ouvert et verrouillé, le résultat du test (101) est négatif et la fonction procède à un deuxième test (102) qui vérifie si le fichier existait lors de la tentative (100). En cas de réponse négative, la fonction renvoie une erreur (103) indiquant que le fichier n'existe pas.
En cas de réponse positive, un test (104) vérifie si le nombre de tentatives (100) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (100) après une temporisation (149) en cas de réponse négative ; sinon, la fonction retourne une erreur système (105). Si le résultat du test (101) est positif, la fonction lit l'état de disponibilité du fichier dans un paramètre d'état de l'en-tête du fichier lors d'une tâche (106). La fonction procède ensuite à un test (107) de disponibilité du fichier en fonction de la valeur du paramètre d'état. Si le résultat du test (107) est négatif, correspondant à un état d'indisponibilité, la fonction procède à une tâche (108) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation. La fonction réalise ensuite un test (109) qui vérifie si le nombre de tentatives (100) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (100) après une temporisation (149) en cas de réponse négative ; sinon, la fonction retourne une erreur (110) indiquant que le fichier reste acquis par un traitement en cours. Si le résultat du test (107) est positif, la fonction procède à une tâche (111) d'écriture de l'état d'indisponibilité du fichier dans un paramètre d'état de l'en-tête du fichier, puis une tâche (112) de calcul d'un identifiant d'acquisition du fichier, une tâche (113) d'écriture de cet identifiant dans un paramètre d'état de l'en-tête du fichier, et une tâche (114) de lecture du corps du fichier. La tâche (115) correspond à un traitement du corps du fichier pour extraire le contenu modifiable du fichier. Ce traitement s'effectue en fonction de paramètres d'état de l'en-tête du fichier. Il correspond par exemple à une décompression ou un déchiffrage du contenu modifiable du fichier. La dernière tâche (116) consiste à fermer et déverrouiller simultanément le fichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (151) la confirmation de l'acquisition du fichier de données, l'identifiant d'acquisition du fichier et le contenu modifiable du fichier.
Fonction d'acquisition d'un fichier de données nouveau 25 La figure 3 représente la succession de tâches nécessaires pour l'acquisition d'un fichier de données nouveau. La fonction prend en entrée (250) le nom d'un fichier 30 calculé à partir du nom d'usage comme exposé précédemment. La première tâche (200) consiste à tenter la création, l'ouverture et le verrouillage simultanés d'un nouveau fichier au niveau du système de fichier du système d'exploitation, en demandant une création, une ouverture et 35 un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. La fonction procède ensuite à un test (201) pour vérifier la création, l'ouverture et le verrouillage du fichier si le fichier n'est pas créé, ouvert et verrouillé, le résultat du test (201) est négatif et la fonction procède à un deuxième test (202) qui vérifie si le fichier existait lors de la tentative (200). En cas de réponse positive, la fonction retourne une erreur (204) indiquant que le fichier existe déjà. En cas de réponse négative, la fonction renvoie une erreur (203) indiquant une erreur système. Si le résultat du test (201) est positif, la fonction procède à une tâche (205) de création et d'écriture de l'en- tête du fichier avec un corps du fichier vide, puis une tâche (206) d'écriture de l'état d'indisponibilité du fichier dans un paramètre d'état de l'en-tête du fichier, puis une tâche (207) de calcul d'un identifiant d'acquisition du fichier, une tâche (208) d'écriture de cet identifiant dans un paramètre d'état de l'en-tête du fichier. La dernière tâche (209) consiste à fermer et déverrouiller simultanément le fichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (251) 25 la confirmation de l'acquisition du fichier de données et l'identifiant d'acquisition du fichier.
Fonction d'acquisition d'un fichier de données existant avec création du fichier s'il n'existe pas 30 La figure 4 représente la succession de tâches nécessaires pour l'acquisition d'un fichier de données existant avec création du fichier s'il n'existe pas. La fonction prend en entrée (350) le nom d'un fichier 35 calculé à partir du nom d'usage comme exposé précédemment.
La première tâche (300) consiste à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, et à créer le fichier s'il n'existe pas, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. La fonction procède ensuite à un test (301) pour vérifier l'ouverture et le verrouillage du fichier : si le fichier n'est pas ouvert et verrouillé, le résultat du test (301) est négatif et la fonction procède à un deuxième test (302) qui vérifie si le fichier existait lors de la tentative (300). En cas de réponse négative, la fonction renvoie une erreur système (303).
En cas de réponse positive, un test (304) vérifie si le nombre de tentatives (300) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (300) après une temporisation (349) en cas de réponse négative ; sinon, la fonction retourne une erreur système (305). Si le résultat du test (301) est positif, la fonction procède ensuite à un test (306) pour vérifier si le fichier a été lors de la tentative (300) : si le fichier n'a pas été créé, le résultat du test (306) est négatif et la fonction lit l'état de disponibilité du fichier dans un paramètre d'état de l'en-tête du fichier lors d'une tâche (307). La fonction procède ensuite à un test (308) de disponibilité du fichier en fonction de la valeur du paramètre d'état.
Si le résultat du test (308) est négatif, correspondant à un état d'indisponibilité, la fonction procède à une tâche (309) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation.
La fonction réalise ensuite un test (310) qui vérifie si le nombre de tentatives (300) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (300) après une temporisation (349) en cas de réponse négative ; sinon, la fonction retourne une erreur (311) indiquant que le fichier reste acquis par un traitement en cours. Si le résultat du test (308) est positif, la fonction procède à une tâche (312) d'écriture de l'état d'indisponibilité du fichier dans un paramètre d'état de l'en-tête du fichier, puis une tâche (313) de calcul d'un identifiant d'acquisition du fichier, une tâche (314) d'écriture de cet identifiant dans un paramètre d'état de l'en-tête du fichier, et une tâche (315) de lecture du corps du fichier. La tâche (316) correspond à un traitement du corps du fichier pour extraire le contenu modifiable du fichier. Ce traitement s'effectue en fonction de paramètres d'état de l'en-tête du fichier. Il correspond par exemple à une décompression ou un déchiffrage du contenu modifiable du fichier. La tâche (317) consiste à fermer et déverrouiller simultanément le fichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (351) la confirmation de l'acquisition du fichier de données, une notification indiquant que le fichier n'a pas été créé, l'identifiant d'acquisition du fichier et le contenu modifiable du fichier. Si le résultat du test (306) est positif, la fonction procède à une tâche (318) de création et d'écriture de l'en- tête du fichier avec un corps du fichier vide, puis une tâche (319) d'écriture de l'état d'indisponibilité du fichier dans un paramètre d'état de l'en-tête du fichier, puis une tâche (320) de calcul d'un identifiant d'acquisition du fichier, une tâche (321) d'écriture de cet identifiant dans un paramètre d'état de l'en-tête du fichier. La dernière tâche (322) consiste à fermer et déverrouiller simultanément le fichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (352) la confirmation de l'acquisition du fichier de données, une notification indiquant que le fichier a été créé et l'identifiant d'acquisition du fichier.
Fonction de libération d'un fichier de données acquis 10 sans modification des données La figure 5 représente la succession de tâches nécessaires pour la libération d'un fichier de données acquis sans modification des données. 15 La fonction prend en entrée (450) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment et un identifiant d'acquisition renvoyé lors d'une acquisition précédente du fichier de données. La première tâche (400) consiste à tenter l'ouverture 20 et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. 25 La fonction procède ensuite à un test (401) pour vérifier l'ouverture et le verrouillage du fichier : si le fichier n'est pas ouvert et verrouillé, le résultat du test (401) est négatif et la fonction procède à un deuxième test (402) qui vérifie si le fichier existait lors de la 30 tentative (400). En cas de réponse négative, la fonction renvoie une erreur (403) indiquant que le fichier n'existe pas. En cas de réponse positive, un test (404) vérifie si le nombre de tentatives (400) dépasse une valeur seuil, ou 35 si le délai temporel est dépassé, et engage une nouvelle tentative (400) après une temporisation (449) en cas de réponse négative ; sinon, la fonction retourne une erreur système (405). Si le résultat du test (401) est positif, la fonction lit l'état de disponibilité du fichier dans un paramètre d'état de l'en-tête du fichier lors d'une tâche (406). La fonction procède ensuite à un test (407) de disponibilité du fichier en fonction de la valeur du paramètre d'état.
Si le résultat du test (407) est positif, la fonction procède à une tâche (408) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation et renvoie une erreur (409) indiquant que le fichier n'est pas acquis.
Si le résultat du test (407) est négatif, correspondant à un état d'indisponibilité, la fonction lit l'identifiant d'acquisition dans l'en-tête du fichier lors d'une tâche (410). La fonction réalise ensuite un test (411) qui contrôle si cet identifiant est différent de l'identifiant soumis en entrée. En cas de réponse positive, la fonction procède à une tâche (412) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation et renvoie une erreur (413) indiquant que l'identifiant d'acquisition soumis en entrée n'est pas valide. En cas de réponse négative, la fonction procède à une tâche (414) d'effacement de l'identifiant d'acquisition dans le paramètre d'état de l'en-tête du fichier, puis une tâche (415) d'écriture de l'état de disponibilité dans l'en-tête du fichier. La dernière tâche (416) consiste à fermer et déverrouiller simultanément lefichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (451) 35 la confirmation de la libération du fichier de données.
Fonction de libération d'un fichier de données acquis avec modification des données La figure 6 représente la succession de tâches nécessaires pour la libération d'un fichier de données acquis avec modification des données. La fonction prend en entrée (550) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment, un identifiant d'acquisition renvoyé lors d'une acquisition précédente du fichier de données et le contenu modifiable du fichier. La première tâche (500) consiste à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. La fonction procède ensuite à un test (501) pour vérifier l'ouverture et le verrouillage du fichier : si le fichier n'est pas ouvert et verrouillé, le résultat du test (501) est négatif et la fonction procède à un deuxième test (502) qui vérifie si le fichier existait lors de la tentative (500). En cas de réponse négative, la fonction renvoie une erreur (503) indiquant que le fichier n'existe pas. En cas de réponse positive, un test (504) vérifie si le nombre de tentatives (500) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (500) après une temporisation (549) en cas de réponse négative ; sinon, la fonction retourne une erreur système (505). Si le résultat du test (501) est positif, la fonction lit l'état de disponibilité du fichier dans un paramètre 35 d'état de l'en-tête du fichier lors d'une tâche (506).
La fonction procède ensuite à un test (507) de disponibilité du fichier en fonction de la valeur du paramètre d'état. Si le résultat du test (507) est positif, la fonction procède à une tâche (508) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation et renvoie une erreur (509) indiquant que le fichier n'est pas acquis. Si le résultat du test (507) est négatif, correspondant à un état d'indisponibilité, la fonction lit l'identifiant d'acquisition dans l'en-tête du fichier lors d'une tâche (510). La fonction réalise ensuite un test (511) qui contrôle si cet identifiant est différent de l'identifiant soumis en entrée. En cas de réponse positive, la fonction procède à une tâche (512) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation et renvoie une erreur (513) indiquant que l'identifiant d'acquisition soumis en entrée n'est pas valide. En cas de réponse négative, la fonction procède à une tâche (514) d'effacement de l'identifiant d'acquisition dans le paramètre d'état de l'en-tête du fichier, puis une tâche (515) d'écriture de l'état de disponibilité dans l'en-tête du fichier, puis une tâche (516) correspondant à un traitement du corps du fichier pour y insérer le contenu modifiable du fichier. Ce traitement s'effectue en fonction de paramètres d'état de l'en-tête du fichier et correspond par exemple à une compression ou un chiffrage du contenu modifiable du fichier. La fonction procède ensuite à une tâche (517) d'écriture du corps du fichier et la dernière tâche (518) consiste à fermer et déverrouiller simultanément le fichier au niveau du système de fichier du système d'exploitation.
La fonction renvoie en sortie à son achèvement (551) la confirmation de la libération du fichier de données et de la modification du contenu du fichier.
Fonction de libération d'un fichier de données acquis avec effacement du fichier La figure 7 représente la succession de tâches nécessaires pour la libération d'un fichier de données 10 acquis avec effacement du fichier. La fonction prend en entrée (650) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment et un identifiant d'acquisition renvoyé lors d'une acquisition précédente du fichier de données. 15 La première tâche (600) consiste à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le 20 verrouillage de ce fichier par un traitement postérieur. La fonction procède ensuite à un test (601) pour vérifier l'ouverture et le verrouillage du fichier : si le fichier n'est pas ouvert et verrouillé, le résultat du test (601) est négatif et la fonction procède à un deuxième test 25 (602) qui vérifie si le fichier existait lors de la tentative (600). En cas de réponse négative, la fonction renvoie une erreur (603) indiquant que le fichier n'existe pas. En cas de réponse positive, un test (604) vérifie si 30 le nombre de tentatives (600) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (600) après une temporisation (649) en cas de réponse négative ; sinon, la fonction retourne une erreur système (605).
Si le résultat du test (601) est positif, la fonction lit l'état de disponibilité du fichier dans un paramètre d'état de l'en-tête du fichier lors d'une tâche (606). La fonction procède ensuite à un test (607) de disponibilité du fichier en fonction de la valeur du paramètre d'état. Si le résultat du test (607) est positif, la fonction procède à une tâche (608) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation et renvoie une erreur (609) indiquant que le fichier n'est pas acquis. Si le résultat du test (607) est négatif, correspondant à un état d'indisponibilité, la fonction lit l'identifiant d'acquisition dans l'en-tête du fichier lors d'une tâche (610). La fonction réalise ensuite un test (611) qui contrôle si cet identifiant est différent de l'identifiant soumis en entrée. En cas de réponse positive, la fonction procède à une tâche (612) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation et renvoie une erreur (613) indiquant que l'identifiant d'acquisition soumis en entrée n'est pas valide. En cas de réponse négative, la fonction procède à une tâche (614) d'effacement de l'identifiant d'acquisition dans le paramètre d'état de l'en-tête du fichier, puis une tâche (615) d'écriture de l'état de disponibilité dans l'en-tête du fichier. La dernière tâche (616) consiste à fermer, déverrouiller et effacer simultanément le fichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (651) la confirmation de la libération du fichier de données et de son effacement.
Fonction de lecture simple d'un fichier de données existant sans acquisition du fichier
La figure 8 représente la succession de tâches 5 nécessaires pour la lecture simple d'un fichier de données existant sans acquisition du fichier. La fonction prend en entrée (750) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment. La première tâche (700) consiste à tenter l'ouverture 10 et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. 15 La fonction procède ensuite à un test (701) pour vérifier l'ouverture et le verrouillage du fichier : si le fichier n'est pas ouvert et verrouillé, le résultat du test (701) est négatif et la fonction procède à un deuxième test (702) qui vérifie si le fichier existait lors de la 20 tentative (700). En cas de réponse négative, la fonction renvoie une erreur (703) indiquant que le fichier n'existe pas. En cas de réponse positive, un test (704) vérifie si le nombre de tentatives (700) dépasse une valeur seuil, ou 25 si le délai temporel est dépassé, et engage une nouvelle tentative (700) après une temporisation (749) en cas de réponse négative ; sinon, la fonction retourne une erreur système (705). Si le résultat du test (701) est positif, la fonction 30 lit l'état de disponibilité du fichier dans un paramètre d'état de l'en-tête du fichier lors d'une tâche (706). La fonction procède ensuite à un test (707) de disponibilité du fichier en fonction de la valeur du paramètre d'état.
Si le résultat du test (707) est négatif, correspondant à un état d'indisponibilité, la fonction procède à une tâche (708) de fermeture et de déverrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation. La fonction réalise ensuite un test (709) qui vérifie si le nombre de tentatives (700) dépasse une valeur seuil, ou si le délai temporel est dépassé, et engage une nouvelle tentative (700) après une temporisation (749) en cas de réponse négative ; sinon, la fonction retourne une erreur (710) indiquant que le fichier reste acquis par un traitement en cours. Si le résultat du test (707) est positif, la fonction procède à une tâche (711) de lecture du corps du fichier, puis une tâche (712) de traitement du corps du fichier pour extraire le contenu modifiable du fichier. Ce traitement s'effectue en fonction de paramètres d'état de l'en-tête du fichier. Il correspond par exemple à une décompression ou un déchiffrage du contenu modifiable du fichier. La dernière tâche (713) consiste à fermer et déverrouiller simultanément le fichier au niveau du système de fichier du système d'exploitation. La fonction renvoie en sortie à son achèvement (751) la confirmation de la lecture simple du fichier de données 25 et le contenu modifiable du fichier.
D'autres fonctions permettent de faciliter l'administration de l'arborescence, notamment : - la lecture des paramètres d'état de l'en-tête d'un 30 fichier de données, incluant l'état de disponibilité du fichier, - la libération forcée d'un fichier de données qui n'a pas été libéré par un traitement, - le listage des fichiers de données contenus dans l'arborescence par sous-ensembles de l'arborescence. Mode client-serveur La figure 9 concerne un cas d'application particulier et préféré. Elle représente la succession de tâches nécessaires pour l'utilisation du système de gestion de fichiers conforme à l'invention à travers un réseau, 10 correspondant à un mode client-serveur. Dans ce cas, le système de gestion de fichiers est installé sur un ordinateur serveur (800) qui comporte un logiciel serveur (801). L'ordinateur serveur est accessible 15 20 par une pluralité comportent chacun échanges entre les par exemple HTTP type HTTPS. L'invention applicatif (808)d'ordinateurs clients (802 à 804) qui un logiciel client (805 à 807). Les logiciels clients et le logiciel serveur réseau de transport de type connu, préférence un protocole sécurisé de met dans ce cas en oeuvre un protocole permettant d'appeler les fonctions du utilisent un protocole ou de système de gestion de fichiers conforme à l'invention par des commandes de type acquisition de fichier ou libération de fichier . Les fichiers sont répartis au 25 niveau de l'ordinateur serveur en plusieurs sous ensembles (809 à 811), chaque sous-ensemble correspondant à une arborescence conforme à l'invention, appelée table . Le nom d'usage du fichier de données est désigné dans le protocole par clé . 30 La première tâche (812) est exécutée sur l'un des ordinateurs clients par le logiciel client. Elle consiste à appeler une fonction d'acquisition, de libération ou de lecture simple portant sur une table et une clé.
La deuxième tâche (813) est exécutée par le logiciel serveur sur l'ordinateur serveur. Elle consiste à exécuter la fonction demandée par le logiciel client. La troisième tâche (814) est exécutée par le logiciel serveur sur l'ordinateur serveur. Elle consiste à renvoyer au logiciel client le résultat de la fonction demandée. Optionnellement, le système comporte plusieurs serveurs, permettant de répartir la charge et le volume de stockage des données. Dans ce cas, le logiciel client (805 à 807) comporte des règles de sélection du serveur en fonction des tables et des clés. Le logiciel serveur (801) peut également comporter des fonctionnalités de journalisation des opérations exécutées pour permettre la reconstruction incrémentale des arborescences de l'ordinateur serveur sur un serveur de secours sans effectuer une recopie complète des arborescences sur le serveur de secours.
Claims (9)
1 - Procédé de gestion de fichiers, comportant une première étape d'organisation de la base de fichiers de données consistant à créer une arborescence de répertoires à M niveaux de N répertoires chacun, et des étapes d'enregistrement de fichiers de données consistant à : - appliquer une fonction de hachage sur l'identifiant d'un fichier de données Fi à enregistrer, - déterminer le chemin du répertoire Rdi de destination dans l'arborescence en fonction du résultat de l'étape précédente, enregistrer le fichier de données dans ledit répertoire Rdi à un emplacement fonction dudit résultat de 15 l'étape de hachage, et des étapes de lecture de fichiers de données consistant à : - appliquer la même fonction de hachage sur l'identifiant d'un fichier de données Fi à lire, 20 - déterminer le chemin du répertoire R,i cible dans l'arborescence en fonction du résultat de l'étape précédente, - lire le fichier de données dans ledit répertoire Rd] à un emplacement fonction dudit résultat de l'étape de 25 hachage.
2 - Procédé de gestion de fichiers selon la revendication précédente, caractérisé en ce que les fichiers de données sont répartis sur Q unités de stockage, chaque 30 unité de stockage correspondant à p niveaux de répertoires de N répertoires.
3 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ceque N est égal à 16, et en ce que la fonction de hachage est la fonction SHA1.
4 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce que chaque fichier de données comporte un en-tête et un corps, le corps comprenant le contenu modifiable du fichier, le corps étant précédé par un en-tête comportant des paramètres d'état du fichier dans le système de gestion de fichiers, le procédé comportant une étape préalable d'acquisition d'un fichier cible par un traitement pour une série d'opérations, l'acquisition provoquant un changement d'état d'un au moins des paramètres de l'en-tête, ce changement d'état empêchant l'acquisition par un autre traitement jusqu'à sa libération.
5 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce que les opérations d'acquisition, de lecture et de libération sont commandées par un logiciel client, et les étapes correspondantes sont exécutées par un logiciel serveur.
6 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte une étape d'acquisition d'un fichier de données existant prenant en entrée (150) le nom d'un fichier calculé à partir du nom d'usage, ladite étape comprenant une première tâche (100) consistant à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur.35
7 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte une étape d'acquisition d'un fichier de données nouveau prenant en entrée (250) le nom d'un fichier calculé à partir du nom d'usage, la première tâche (200) consistant à tenter la création, l'ouverture et le verrouillage simultanés d'un nouveau fichier au niveau du système de fichier du système d'exploitation, en demandant une création, une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur.
8 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte une étape d'acquisition d'un fichier de données existant avec création du fichier s'il n'existe pas, la fonction prenant en entrée (350) le nom d'un fichier calculé à partir du nom d'usage, la première tâche (300) consistant à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, et à créer le fichier s'il n'existe pas, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur.
9 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte une étape de libération d'un fichier de données acquis sans modification des données, la fonction prenant en entrée (450) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment et un identifiant d'acquisition renvoyé lors d'une acquisition précédente du fichier de données, la première tâche (400) consistant àtenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce 10 qu'il comporte une étape de libération d'un fichier de données acquis avec modification des données, la fonction prenant en entrée (550) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment, un identifiant d'acquisition renvoyé lors d'une acquisition précédente du fichier de données et le contenu modifiable du fichier, la première tâche (500) consistant à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur. 11 Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte une étape de libération d'un fichier de données acquis avec effacement du fichier, la fonction prenant en entrée (650) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment et un identifiant d'acquisition renvoyé lors d'une acquisition précédente du fichier de données, la première tâche (600) consistant à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillagel'ouverture et le verrouillage de ce fichier par un traitement postérieur. 12 - Procédé de gestion de fichiers selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte une étape de lecture simple d'un fichier de données existant sans acquisition du fichier, la fonction prenant en entrée (750) le nom d'un fichier calculé à partir du nom d'usage comme exposé précédemment, la première tâche (700) consistant à tenter l'ouverture et le verrouillage simultanés du fichier au niveau du système de fichier du système d'exploitation, en demandant une ouverture et un verrouillage du fichier empêchant jusqu'à sa fermeture et son déverrouillage l'ouverture et le verrouillage de ce fichier par un traitement postérieur.
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0753222A FR2912520B1 (fr) | 2007-02-13 | 2007-02-13 | Procede de gestion de fichiers. |
CN200880010343A CN101669118A (zh) | 2007-02-13 | 2008-02-12 | 文件管理方法 |
EP08761876A EP2130147A2 (fr) | 2007-02-13 | 2008-02-12 | Procede de gestion de fichiers |
US12/526,724 US8504541B2 (en) | 2007-02-13 | 2008-02-12 | File management method |
PCT/FR2008/000177 WO2008113921A2 (fr) | 2007-02-13 | 2008-02-12 | Procede de gestion de fichiers |
KR1020137029338A KR101365861B1 (ko) | 2007-02-13 | 2008-02-12 | 파일 관리 방법 |
KR1020097016865A KR101471055B1 (ko) | 2007-02-13 | 2008-02-12 | 파일 관리 방법 |
CA002678186A CA2678186A1 (fr) | 2007-02-13 | 2008-02-12 | Procede de gestion de fichiers |
JP2009548717A JP5123318B2 (ja) | 2007-02-13 | 2008-02-12 | ファイル管理方法 |
IL200252A IL200252A0 (en) | 2007-02-13 | 2009-08-05 | File management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0753222A FR2912520B1 (fr) | 2007-02-13 | 2007-02-13 | Procede de gestion de fichiers. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2912520A1 true FR2912520A1 (fr) | 2008-08-15 |
FR2912520B1 FR2912520B1 (fr) | 2009-05-15 |
Family
ID=38740236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0753222A Active FR2912520B1 (fr) | 2007-02-13 | 2007-02-13 | Procede de gestion de fichiers. |
Country Status (9)
Country | Link |
---|---|
US (1) | US8504541B2 (fr) |
EP (1) | EP2130147A2 (fr) |
JP (1) | JP5123318B2 (fr) |
KR (2) | KR101471055B1 (fr) |
CN (1) | CN101669118A (fr) |
CA (1) | CA2678186A1 (fr) |
FR (1) | FR2912520B1 (fr) |
IL (1) | IL200252A0 (fr) |
WO (1) | WO2008113921A2 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200005324A1 (en) * | 2013-09-09 | 2020-01-02 | UnitedLex Corp. | Organization based on hash values |
EP3709274A1 (fr) * | 2019-03-15 | 2020-09-16 | Christophe Dutordoir | Système de vote électronique sur internet |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012896B (zh) * | 2010-12-29 | 2012-11-21 | 深圳市五巨科技有限公司 | 一种实现文件内容批量修改的方法和装置 |
US9934229B2 (en) * | 2011-10-23 | 2018-04-03 | Microsoft Technology Licensing, Llc | Telemetry file hash and conflict detection |
CN102446221A (zh) * | 2011-12-22 | 2012-05-09 | 南京联创科技集团股份有限公司 | Bs结构软件中的动态树型结构目录检索方法 |
US9323771B2 (en) * | 2013-04-24 | 2016-04-26 | Dell Products, Lp | Efficient rename in a lock-coupled traversal of B+tree |
CN105743721B (zh) * | 2014-12-09 | 2019-02-15 | 博雅网络游戏开发(深圳)有限公司 | 数据上报方法、对上报数据进行处理的方法和装置 |
US10108624B1 (en) * | 2015-02-04 | 2018-10-23 | Amazon Technologies, Inc. | Concurrent directory move operations using ranking rules |
CN107506395A (zh) * | 2017-07-31 | 2017-12-22 | 合肥龙图腾信息技术有限公司 | 一种对打开状态文件重命名的方法及系统 |
CN108197302A (zh) * | 2018-01-29 | 2018-06-22 | 维沃移动通信有限公司 | 一种文件夹创建方法及移动终端 |
CN111159109A (zh) * | 2019-11-26 | 2020-05-15 | 陶壮壮 | 一种磁盘空间占用文件的检测方法及系统 |
CN111054082B (zh) * | 2019-11-29 | 2023-10-13 | 珠海金山数字网络科技有限公司 | Unity资源数据集编码的方法 |
CN111295650B (zh) * | 2019-12-05 | 2023-05-16 | 支付宝(杭州)信息技术有限公司 | 在基于区块链的系统中执行映射迭代 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742817A (en) * | 1995-12-08 | 1998-04-21 | Emc Corporation | Method and apparatus for file server addressing |
US6470345B1 (en) * | 2000-01-04 | 2002-10-22 | International Business Machines Corporation | Replacement of substrings in file/directory pathnames with numeric tokens |
US6625591B1 (en) * | 2000-09-29 | 2003-09-23 | Emc Corporation | Very efficient in-memory representation of large file system directories |
US20040236761A1 (en) * | 2003-05-23 | 2004-11-25 | Hans-Joachim Both | File system storage |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2045788A1 (fr) * | 1990-06-29 | 1991-12-30 | Kadangode K. Ramakrishnan | Antememoire pour fichier de systeme de traitement de donnees numeriques |
US5555388A (en) * | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
US5864852A (en) * | 1996-04-26 | 1999-01-26 | Netscape Communications Corporation | Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure |
US5893086A (en) * | 1997-07-11 | 1999-04-06 | International Business Machines Corporation | Parallel file system and method with extensible hashing |
JP2000357115A (ja) * | 1999-06-15 | 2000-12-26 | Nec Corp | ファイル検索装置及びファイル検索方法 |
US6687716B1 (en) * | 2000-09-13 | 2004-02-03 | Radiant Data Corporation | File consistency protocols and methods for carrying out the protocols |
US6965893B1 (en) * | 2000-12-20 | 2005-11-15 | Oracle International Corporation | Techniques for granting shared locks more efficiently |
US7062490B2 (en) * | 2001-03-26 | 2006-06-13 | Microsoft Corporation | Serverless distributed file system |
US6912645B2 (en) * | 2001-07-19 | 2005-06-28 | Lucent Technologies Inc. | Method and apparatus for archival data storage |
JP4154893B2 (ja) * | 2002-01-23 | 2008-09-24 | 株式会社日立製作所 | ネットワークストレージ仮想化方法 |
US8706760B2 (en) * | 2003-02-28 | 2014-04-22 | Microsoft Corporation | Method to delay locking of server files on edit |
JP2006185232A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム |
US7434057B2 (en) | 2005-01-27 | 2008-10-07 | Hitachi, Ltd. | System and method for watermarking in accessed data in a storage system |
-
2007
- 2007-02-13 FR FR0753222A patent/FR2912520B1/fr active Active
-
2008
- 2008-02-12 KR KR1020097016865A patent/KR101471055B1/ko active IP Right Grant
- 2008-02-12 CA CA002678186A patent/CA2678186A1/fr not_active Abandoned
- 2008-02-12 KR KR1020137029338A patent/KR101365861B1/ko active IP Right Grant
- 2008-02-12 CN CN200880010343A patent/CN101669118A/zh active Pending
- 2008-02-12 JP JP2009548717A patent/JP5123318B2/ja active Active
- 2008-02-12 EP EP08761876A patent/EP2130147A2/fr not_active Withdrawn
- 2008-02-12 US US12/526,724 patent/US8504541B2/en active Active
- 2008-02-12 WO PCT/FR2008/000177 patent/WO2008113921A2/fr active Application Filing
-
2009
- 2009-08-05 IL IL200252A patent/IL200252A0/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742817A (en) * | 1995-12-08 | 1998-04-21 | Emc Corporation | Method and apparatus for file server addressing |
US6470345B1 (en) * | 2000-01-04 | 2002-10-22 | International Business Machines Corporation | Replacement of substrings in file/directory pathnames with numeric tokens |
US6625591B1 (en) * | 2000-09-29 | 2003-09-23 | Emc Corporation | Very efficient in-memory representation of large file system directories |
US20040236761A1 (en) * | 2003-05-23 | 2004-11-25 | Hans-Joachim Both | File system storage |
Non-Patent Citations (1)
Title |
---|
BRESSOUD T C ET AL: "OPEN CAS: A FLEXIBLE ARCHITECTURE FOR CONTENT ADDRESSABLE STORAGE", PROCEEDINGS OF THE ISCA INTERNATIONAL CONFERENCE, PARALLEL AND DISTRIBUTED COMPUTING SYSTEMS, XX, XX, 15 September 2004 (2004-09-15), pages 580 - 587, XP009068171 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200005324A1 (en) * | 2013-09-09 | 2020-01-02 | UnitedLex Corp. | Organization based on hash values |
US11978057B2 (en) | 2013-09-09 | 2024-05-07 | UnitedLex Corp. | Single instance storage of metadata and extracted text |
EP3709274A1 (fr) * | 2019-03-15 | 2020-09-16 | Christophe Dutordoir | Système de vote électronique sur internet |
BE1027121B1 (fr) * | 2019-03-15 | 2020-10-14 | Christophe Dutordoir | Système de vote électronique sur internet |
Also Published As
Publication number | Publication date |
---|---|
WO2008113921A2 (fr) | 2008-09-25 |
US20100106696A1 (en) | 2010-04-29 |
JP5123318B2 (ja) | 2013-01-23 |
FR2912520B1 (fr) | 2009-05-15 |
KR101365861B1 (ko) | 2014-02-20 |
CA2678186A1 (fr) | 2008-09-25 |
KR20130130876A (ko) | 2013-12-02 |
JP2010518501A (ja) | 2010-05-27 |
CN101669118A (zh) | 2010-03-10 |
KR101471055B1 (ko) | 2014-12-09 |
WO2008113921A3 (fr) | 2009-09-24 |
KR20090116743A (ko) | 2009-11-11 |
US8504541B2 (en) | 2013-08-06 |
IL200252A0 (en) | 2010-04-29 |
EP2130147A2 (fr) | 2009-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2912520A1 (fr) | Procede de gestion de fichiers. | |
EP1483673B1 (fr) | Methode de stockage de blocs de donnees dans une memoire | |
EP1977365B1 (fr) | Procede de gestion de documents electroniques | |
EP1866770B1 (fr) | Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants | |
CN111400255B (zh) | 数据清理方法、装置及设备、存储介质 | |
US10949088B1 (en) | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system | |
EP3623979B1 (fr) | Methode de stockage securise dans un reseau d'une image de conteneur dans un registre de conteneurs | |
WO2015166052A1 (fr) | Acquisition de données | |
WO2021044094A1 (fr) | Procede de gestion d'un groupe de donnees dans un systeme informatique | |
FR3084496A1 (fr) | Procede et dispositif de generation d'instructions destinees a un dispositif pour realiser une mise a jour sur place d'un fichier de donnees | |
EP2901291A1 (fr) | Procédé de gestion des ressources mémoire d'un dispositif de sécurité, tel qu'une carte à puce, et dispositif de sécurité mettant en oeuvre ledit procédé. | |
WO2019129998A1 (fr) | Accès multiples à un fichier de données stocké dans un système de stockage de données associé à un espace mémoire tampon | |
WO2018096125A1 (fr) | Procédé d'insertion de données à la volée dans une base de données tatouées et dispositif associé | |
FR3073061B1 (fr) | Procede de communication entre processus, programme d’ordinateur et installation informatique correspondants | |
WO2009095616A1 (fr) | Procede d'identification d'un document multimedia dans une base de reference, programme d'ordinateur, et dispositif d'identification correspondants | |
EP2353076A1 (fr) | Procede et systeme de stockage virtualise d'un ensemble de donnees numeriques | |
WO2015067892A1 (fr) | Procédé de protection de métadonnées | |
Spyridopoulos et al. | Towards a forensically ready cloud storage service. | |
FR3100350A1 (fr) | migration d’une chaîne de blocs de données | |
EP1859369A2 (fr) | Procede de gestion dynamique d'une base de donnees | |
FR2925722A1 (fr) | Reseau informatique dote d'un archivage automatique de fichiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 14 |
|
PLFP | Fee payment |
Year of fee payment: 15 |
|
PLFP | Fee payment |
Year of fee payment: 16 |
|
PLFP | Fee payment |
Year of fee payment: 17 |
|
PLFP | Fee payment |
Year of fee payment: 18 |