Serverless distributed file system
First Claim
Patent Images
1. A method used in managing a serverless distributed file system, the method comprising:
- managing directories of the file system using Byzantine groups; and
managing files within the directories without using Byzantine groups.
1 Assignment
0 Petitions
Accused Products
Abstract
A serverless distributed file system manages the storage of files and directories using one or more directory groups. The directories may be managed using Byzantine-fault-tolerant groups, whereas files are managed without using Byzantine-fault-tolerant groups. Additionally, the file system may employ a hierarchical namespace to store files. Furthermore, the directory group may employ a plurality of locks to control access to objects (e.g., files and directories) in each directory.
-
Citations
50 Claims
-
1. A method used in managing a serverless distributed file system, the method comprising:
-
managing directories of the file system using Byzantine groups; and
managing files within the directories without using Byzantine groups. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A serverless distributed file system comprising:
-
a plurality of computers;
a first set of the plurality of computers operating to store directory information for the file system, wherein each computer of the first set is part of a directory Byzantine group; and
a second set of the plurality of computers operating to store replicas of the files in the file system, wherein for each file stored in the file system a plurality of replicas of the file are stored on the second set of computers, and wherein the quantity of replicas is less than the quantity of computers in the Byzantine group. - View Dependent Claims (9, 10, 11)
-
-
12. A method comprising:
-
generating a directory entry corresponding to a file to be stored in a serverless distributed file system;
saving the directory entry to each of a first plurality of computers that are part of a Byzantine-fault-tolerant group; and
saving the file to each of a second plurality of computers, wherein fewer computers are in the second plurality of computers than are in the first plurality of computers, and wherein at least one of the second plurality of computers is not part of the Byzantine-fault-tolerant group. - View Dependent Claims (13, 14, 15)
-
-
16. A computer comprising:
-
a processor;
a memory coupled to the processor; and
wherein the memory is to store a plurality of instructions to implement a file system using a hierarchical namespace to store files, wherein the file system is distributed across a plurality of computers including the computer, wherein each of the plurality of computers can operate as both a client computer and a server computer, wherein each of the plurality of computers need not trust the other ones of the plurality of computers, wherein files and corresponding directory entries are stored in the file system, and wherein for any given file fewer copies of the file are stored than are copies of the corresponding directory entry. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method comprising:
-
identifying a group of computers to which a subtree of a hierarchical namespace used to store files is to be delegated;
generating a delegation certificate for the subtree;
digitally signing the delegation certificate; and
issuing the delegation certificate to the group of computers. - View Dependent Claims (22, 23)
-
-
24. A method implemented in a computing device of a serverless distributed file system, the method comprising:
-
checking a local cache of pathname to Byzantine-fault-tolerant directory group mappings to determine a mapping for a longest prefix of a desired pathname; and
if the entire pathname is mapped to a Byzantine-fault-tolerant directory group using the local cache, then accessing a member of the Byzantine-fault-tolerate directory group to determine where to locate a file corresponding to the pathname, and otherwise repeating the following until the entire pathname is mapped to a Byzantine-fault-tolerant directory group, obtaining, from a member of the Byzantine-fault-tolerant directory group corresponding to the longest prefix of the desired pathname, mappings for a relevant subtree from the longest prefix, and if the entire pathname is not mapped to a Byzantine-fault-tolerant directory group using the relevant subtree from the longest prefix, then repeating the obtaining with the longest prefix being the previously used longest prefix concatenated with the relevant subtree. - View Dependent Claims (25, 26, 27)
-
-
28. A method implemented in a serverless distributed file system, the method comprising:
-
receiving a request to open an object with one or more selected locks;
checking whether the one or more selected locks conflict with a lock already granted to another application, wherein at least one of the selected locks represents the right to open the object without sharing an open mode; and
granting the request to open the object only if the one or more selected locks do not conflict with a lock already granted to another application. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. One or more computer readable media having stored thereon a plurality of instructions to implement a serverless distributed file system, wherein the plurality of instructions, when executed by one or more processors, causes the one or more processors to perform acts comprising:
-
assigning responsibility for managing one or more directories to a directory group, wherein each member of the directory group is a computer participating in the serverless distributed file system; and
employing a plurality of locks to control access to objects in each directory, wherein the plurality of locks comprise, a first set of locks to control opening of the objects, and a second set of locks to control access to the data in the objects. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50)
-
Specification