Patents by Inventor John R. Douceur
John R. Douceur has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7401220Abstract: A file format for a serverless distributed file system is composed of two parts: a primary data stream and a metadata stream. The data stream contains a file that is divided into multiple blocks. Each block is encrypted using a hash of the block as the encryption key. The metadata stream contains a header, a structure for indexing the encrypted blocks in the primary data stream, and some user information. The indexing structure defines leaf nodes for each of the blocks. Each leaf node consists of an access value used for decryption of the associated block and a verification value used to verify the encrypted block independently of other blocks. In one implementation, the access value is formed by hashing the file block and encrypting the resultant hash value using a randomly generated key. The key is then encrypted using the user's key as the encryption key. The verification value is formed by hashing the associated encrypted block using a one-way hash function.Type: GrantFiled: December 16, 2004Date of Patent: July 15, 2008Assignee: Microsoft CorporationInventors: William J. Bolosky, Gerald Cermak, Atul Adya, John R. Douceur
-
Patent number: 7395331Abstract: A handle administration system is described in which software agents receive handles to various resources that they can use to obtain the resources. The described embodiments provide multiple states that can be assumed by the handles. An unassigned state is provided in which handles are not assigned to a particular resource, nor can they be dereferenced to obtain pointers to any resources. An assigned state is provided in which handles are assigned to a particular resource and can be dereferenced to obtain a pointer to the resource. A suspended state is provided in which the handles are assigned to a particular resource but cannot be dereferenced to obtain a pointer to that resource. Advantageously, a suspended handle can be reinstated to assume the assigned state. In one embodiment, the handle system is implemented by incorporating a suitable field in a handle database that is used to indicate that a handle is suspended. In another embodiment, no additional fields are necessary.Type: GrantFiled: October 15, 2004Date of Patent: July 1, 2008Assignee: Microsoft CorporationInventors: John R. Douceur, Yoram Bernet
-
Publication number: 20080115121Abstract: Techniques enable the reduction of bandwidth requirements for peer-to-peer gaming architectures. In some embodiments, these techniques allow differentiation among players to decide which players should receive continuous updates and which should receive periodic updates. For those gaming systems receiving periodic updates, guided artificial intelligence is employed to simulate activity of a game object based on guidance provided by the periodic updates. Conversely, for those gaming systems receiving continuous updates, the continuous updates may be employed to update the activity of the game object rather than simulating the activity.Type: ApplicationFiled: November 13, 2006Publication date: May 15, 2008Applicant: Microsoft CorporationInventors: John R. Douceur, Jacob R. Lorch, Jeffrey Anson Pang, Frank Christopher Uyeda
-
Patent number: 7373404Abstract: A handle administration system is described in which software agents receive handles to various resources that they can use to obtain the resources. The described embodiments provide multiple states that can be assumed by the handles. An unassigned state is provided in which handles are not assigned to a particular resource, nor can they be dereferenced to obtain pointers to any resources. An assigned state is provided in which handles are assigned to a particular resource and can be dereferenced to obtain a pointer to the resource. A suspended state is provided in which the handles are assigned to a particular resource but cannot be dereferenced to obtain a pointer to that resource. Advantageously, a suspended handle can be reinstated to assume the assigned state. In one embodiment, the handle system is implemented by incorporating a suitable field in a handle database that is used to indicate that a handle is suspended. In another embodiment, no additional fields are necessary.Type: GrantFiled: October 15, 2004Date of Patent: May 13, 2008Assignee: Microsoft CorporationInventors: John R. Douceur, Yoram Bernet
-
Patent number: 7359937Abstract: Potentially identical objects (e.g., files) are located across multiple computers based on stochastic partitioning of workload. For each of a plurality of objects stored on a plurality of computers in a network, a portion of object information corresponding to the object is selected. The object information can be generated in a variety of manners (e.g., based on hashing the object, based on characteristics of the object, and so forth). Any of a variety of portions of the object information can be used (e.g., the least significant bits of the object information). A stochastic partitioning process is then used to identify which of the plurality of computers to communicate the object information to for identification of potentially identical objects on the plurality of computers.Type: GrantFiled: May 20, 2005Date of Patent: April 15, 2008Assignee: Microsoft CorporationInventors: John R. Douceur, Marvin M. Theimer, Atul Adya, William J. Bolosky
-
Patent number: 7346774Abstract: A file that has been encrypted using a symmetric key and that has a corresponding access control entry with the symmetric key encrypted using the public key of a public/private key pair can be accessed. An encrypted key cache is also accessed to determine whether an access control entry to symmetric key mapping exists in the cache for the access control entry corresponding to the file. If such a mapping exists in the cache, then the mapped-to symmetric key is obtained form the cache, otherwise the encrypted symmetric key is decrypted using the private key of the public/private key pair. The encrypted key cache itself can also be encrypted and stored as an encrypted file.Type: GrantFiled: August 18, 2005Date of Patent: March 18, 2008Assignee: Microsoft CorporationInventors: John R. Douceur, Atul Adya, William J. Bolosky, Marvin M. Theimer
-
Patent number: 7334154Abstract: A distributed computing system can be operated in a fault tolerant manner using a set of computing devices. A set of computing devices can tolerate a number of failures by implementing identical replicas of a state machine and selecting proposals. The set of computing devices participating in the distributed computing system by hosting replicas can be modified by adding or removing a computing device from the set, or by specifying particular computing devices for participation. Changing the participating computing devices in the set increases fault tolerance by replacing defective devices with operational devices, or by increasing the amount of redundancy in the system.Type: GrantFiled: June 18, 2004Date of Patent: February 19, 2008Assignee: Microsoft CorporationInventors: Jacob R. Lorch, Jonathan R. Howell, John R. Douceur
-
Publication number: 20080010282Abstract: Each file in a file system has one or more associated metadata fields, and each metadata field is associated with a different lease. A computing device sends a request to a directory server for one or more leases that are needed by the computing device to perform an operation on a file. The directory server receives the request from the computing device and determines whether the operation can succeed. One or more leases to perform the operation are issued to the computing device if it is determined that the operation can succeed, and one or more leases that reveal failure are issued to the computing device if it is determined that the operation cannot succeed. The computing device receives the issued lease(s) and uses the received lease(s) to determine whether the computing device can perform the operation on the file.Type: ApplicationFiled: July 7, 2006Publication date: January 10, 2008Applicant: Microsoft CorporationInventors: John R. Douceur, Jonathan R. Howell
-
Patent number: 7310644Abstract: Potentially identical objects (such as files) across multiple computers are located. In one embodiment, a computer generates object information for an object stored on the computer. The object information can be generated in a variety of manners (e.g., based on hashing the object, based on characteristics of the object, and so forth). The object information is then transferred to one or more database server computers, where the object information can be compared to object information from other computers to determine whether the object is potentially identical to another object on one of the other computers.Type: GrantFiled: June 6, 2001Date of Patent: December 18, 2007Assignee: Microsoft CorporationInventors: Atul Adya, William J. Bolosky, John R. Douceur, Marvin M. Theimer
-
Patent number: 7305468Abstract: A handle administration system is described in which software agents receive handles to various resources that they can use to obtain the resources. The described embodiments provide multiple states that can be assumed by the handles. An unassigned state is provided in which handles are not assigned to a particular resource, nor can they be dereferenced to obtain pointers to any resources. An assigned state is provided in which handles are assigned to a particular resource and can be dereferenced to obtain a pointer to the resource. A suspended state is provided in which the handles are assigned to a particular resource but cannot be dereferenced to obtain a pointer to that resource. Advantageously, a suspended handle can be reinstated to assume the assigned state. In one embodiment, the handle system is implemented by incorporating a suitable field in a handle database that is used to indicate that a handle is suspended. In another embodiment, no additional fields are necessary.Type: GrantFiled: October 15, 2004Date of Patent: December 4, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, Yoram Bernet
-
Patent number: 7299250Abstract: File availability in distributed file storage systems is improved by initially placing replicas of a file or other object on different ones of multiple devices using a first process. Subsequently, the placement of the replicas is improved by evaluating whether any replicas of a first file can be swapped with any replicas of a second file without a reduction in the combined file availability of the first and second files, and swapping a replica of the first file with a replica of the second file if the swapping results in no reduction in the combined file availability of the first and second files.Type: GrantFiled: January 20, 2006Date of Patent: November 20, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, Roger P. Wattenhofer
-
Patent number: 7284496Abstract: A device for mechanically securing an anchor chain on a watercraft under control from one or more remote locations, additionally providing remote indication of whether the chain is secured and whether the chain is free to move. Furthermore, when the watercraft is under way, the device restrains the anchor from accidentally launching from its storage position, thereby obviating the need for a safety cable. The device is electrically fail-safe, in that it continues to secure the anchor under conditions of electrical failure. Key components of the device include a frame and rotatable pawl for securing the chain, a spring to urge the pawl toward a position that secures the chain, a solenoid that can urge the pawl toward a position that frees the chain, and a switch to control the solenoid. The invention provides methods for weighing anchor, dropping anchor, increasing anchor scope, and reducing anchor scope.Type: GrantFiled: December 31, 2004Date of Patent: October 23, 2007Inventor: John R. Douceur
-
Patent number: 7272630Abstract: Potentially identical objects (e.g., files) are located across multiple computers based on stochastic partitioning of workload. For each of a plurality of objects stored on a plurality of computers in a network, a portion of object information corresponding to the object is selected. The object information can be generated in a variety of manners (e.g., based on hashing the object, based on characteristics of the object, and so forth). Any of a variety of portions of the object information can be used (e.g., the least significant bits of the object information). A stochastic partitioning process is then used to identify which of the plurality of computers to communicate the object information to for identification of potentially identical objects on the plurality of computers.Type: GrantFiled: November 18, 2004Date of Patent: September 18, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, Marvin M. Theimer, Atul Adya, William J. Bolosky
-
Patent number: 7266689Abstract: Cryptographic protocols and methods of employing the same are described. The described protocols advantageously enable two or more identical encryptable Objects that are coded for encryption with different keys to be identified as identical without access to either the unencrypted objects or the keys that are used in the encryption process. Additionally, the protocols enable two or more identical encryptable objects to be processed with different encryption keys, yet be stored in a manner so that the total required storage space is proportional to the space that is required to store a single encryptable object, plus a constant amount for each distinct encryption key. In various embodiments, the encryptable objects comprise files and the cryptographic protocols enable encrypted files to be used in connection with single instance store (SIS) systems.Type: GrantFiled: May 26, 2004Date of Patent: September 4, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, William J. Bolosky, Marvin M. Theimer
-
Patent number: 7240060Abstract: 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.Type: GrantFiled: December 17, 2004Date of Patent: July 3, 2007Assignee: Microsoft CorporationInventors: Atul Adya, William J. Bolosky, Gerald Cermak, John R. Douceur, Marvin M. Theimer, Roger P. Wattenhofer
-
Patent number: 7237022Abstract: A handle administration system is described in which software agents receive handles to various resources that they can use to obtain the resources. The described embodiments provide multiple states that can be assumed by the handles. An unassigned state is provided in which handles are not assigned to a particular resource, nor can they be dereferenced to obtain pointers to any resources. An assigned state is provided in which handles are assigned to a particular resource and can be dereferenced to obtain a pointer to the resource. A suspended state is provided in which the handles are assigned to a particular resource but cannot be dereferenced to obtain a pointer to that resource. Advantageously, a suspended handle can be reinstated to assume the assigned state. In one embodiment, the handle system is implemented by incorporating a suitable field in a handle database that is used to indicate that a handle is suspended. In another embodiment, no additional fields are necessary.Type: GrantFiled: June 29, 2000Date of Patent: June 26, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, Yoram Bernet
-
Patent number: 7200618Abstract: File availability in distributed file storage systems is improved by initially placing replicas of a file or other object on different ones of multiple devices using a first process. Subsequently, the placement of the replicas is improved by evaluating whether any replicas of a first file can be swapped with any replicas of a second file without a reduction in the combined file availability of the first and second files, and swapping a replica of the first file with a replica of the second file if the swapping results in no reduction in the combined file availability of the first and second files.Type: GrantFiled: January 20, 2006Date of Patent: April 3, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, Roger P. Wattenhofer
-
Patent number: 7181736Abstract: A method and system for improving the working set of a program image. The working set (WS) improvement system of the present invention employs a two-phase technique for improving the working set. In the first phase, the WS improvement system inputs the program image and outputs a program image with the locality of its references improved. In the second phase, the WS improvement system inputs the program image with its locality of references improved and outputs a program image with the placement of its basic blocks in relation to page boundaries improved so that the working set is reduced.Type: GrantFiled: September 23, 2003Date of Patent: February 20, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, Robert P. Fitzgerald, John W. Miller
-
Patent number: 7159110Abstract: Cryptographic protocols and methods of employing the same are described. The described protocols advantageously enable two or more identical encryptable objects that are coded for encryption with different keys to be identified as identical without access to either the unencrypted objects or the keys that are used in the encryption process. Additionally, the protocols enable two or more identical encryptable objects to be processed with different encryption keys, yet be stored in a manner so that the total required storage space is proportional to the space that is required to store a single encryptable object, plus a constant amount for each distinct encryption key. In various embodiments, the encryptable objects comprise files and the cryptographic protocols enable encrypted files to be used in connection with single instance store (SIS) systems.Type: GrantFiled: June 10, 2005Date of Patent: January 2, 2007Assignee: Microsoft CorporationInventors: John R. Douceur, William J. Bolosky, Marvin M. Theimer
-
Patent number: 7146424Abstract: A distributed file server system has multiple data servers connected to stream data files continuously over a network to multiple clients. Data files are distributed across the data servers so that data blocks of the data files are stored at each of the data servers. A scheduler is located at each of the data servers to manage distributed portions of a schedule. Each data server sees a different portion of the schedule, but no one data server sees the whole schedule. The scheduler facilitates service of requested data streams from its corresponding data server according to a schedule portion that is available to the data server. The scheduler determines whether to insert a new data stream into the current slot it presently owns in its schedule portion, or to wait for a subsequent slot in the schedule based on a thrifty policy.Type: GrantFiled: April 12, 2002Date of Patent: December 5, 2006Assignee: Microsoft CorporationInventors: John R. Douceur, William J. Bolosky