FR2912520A1 - Procede de gestion de fichiers. - Google Patents

Procede de gestion de fichiers. Download PDF

Info

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
Application number
FR0753222A
Other languages
English (en)
Other versions
FR2912520B1 (fr
Inventor
Alexis Tamas
Amaury Grimbert
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.)
STG Interactive SA
Original Assignee
STG Interactive SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to FR0753222A priority Critical patent/FR2912520B1/fr
Application filed by STG Interactive SA filed Critical STG Interactive SA
Priority to KR1020097016865A priority patent/KR101471055B1/ko
Priority to CA002678186A priority patent/CA2678186A1/fr
Priority to EP08761876A priority patent/EP2130147A2/fr
Priority to US12/526,724 priority patent/US8504541B2/en
Priority to PCT/FR2008/000177 priority patent/WO2008113921A2/fr
Priority to KR1020137029338A priority patent/KR101365861B1/ko
Priority to JP2009548717A priority patent/JP5123318B2/ja
Priority to CN200880010343A priority patent/CN101669118A/zh
Publication of FR2912520A1 publication Critical patent/FR2912520A1/fr
Application granted granted Critical
Publication of FR2912520B1 publication Critical patent/FR2912520B1/fr
Priority to IL200252A priority patent/IL200252A0/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking 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)

REVENDICATIONS
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.
FR0753222A 2007-02-13 2007-02-13 Procede de gestion de fichiers. Active FR2912520B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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