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: 7401220
    Abstract: 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: Grant
    Filed: December 16, 2004
    Date of Patent: July 15, 2008
    Assignee: Microsoft Corporation
    Inventors: William J. Bolosky, Gerald Cermak, Atul Adya, John R. Douceur
  • Patent number: 7395331
    Abstract: 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: Grant
    Filed: October 15, 2004
    Date of Patent: July 1, 2008
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet
  • Publication number: 20080115121
    Abstract: 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: Application
    Filed: November 13, 2006
    Publication date: May 15, 2008
    Applicant: Microsoft Corporation
    Inventors: John R. Douceur, Jacob R. Lorch, Jeffrey Anson Pang, Frank Christopher Uyeda
  • Patent number: 7373404
    Abstract: 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: Grant
    Filed: October 15, 2004
    Date of Patent: May 13, 2008
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet
  • Patent number: 7359937
    Abstract: 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: Grant
    Filed: May 20, 2005
    Date of Patent: April 15, 2008
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Marvin M. Theimer, Atul Adya, William J. Bolosky
  • Patent number: 7346774
    Abstract: 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: Grant
    Filed: August 18, 2005
    Date of Patent: March 18, 2008
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Atul Adya, William J. Bolosky, Marvin M. Theimer
  • Patent number: 7334154
    Abstract: 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: Grant
    Filed: June 18, 2004
    Date of Patent: February 19, 2008
    Assignee: Microsoft Corporation
    Inventors: Jacob R. Lorch, Jonathan R. Howell, John R. Douceur
  • Publication number: 20080010282
    Abstract: 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: Application
    Filed: July 7, 2006
    Publication date: January 10, 2008
    Applicant: Microsoft Corporation
    Inventors: John R. Douceur, Jonathan R. Howell
  • Patent number: 7310644
    Abstract: 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: Grant
    Filed: June 6, 2001
    Date of Patent: December 18, 2007
    Assignee: Microsoft Corporation
    Inventors: Atul Adya, William J. Bolosky, John R. Douceur, Marvin M. Theimer
  • Patent number: 7305468
    Abstract: 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: Grant
    Filed: October 15, 2004
    Date of Patent: December 4, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet
  • Patent number: 7299250
    Abstract: 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: Grant
    Filed: January 20, 2006
    Date of Patent: November 20, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Roger P. Wattenhofer
  • Patent number: 7284496
    Abstract: 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: Grant
    Filed: December 31, 2004
    Date of Patent: October 23, 2007
    Inventor: John R. Douceur
  • Patent number: 7272630
    Abstract: 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: Grant
    Filed: November 18, 2004
    Date of Patent: September 18, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Marvin M. Theimer, Atul Adya, William J. Bolosky
  • Patent number: 7266689
    Abstract: 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: Grant
    Filed: May 26, 2004
    Date of Patent: September 4, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, William J. Bolosky, Marvin M. Theimer
  • Patent number: 7240060
    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.
    Type: Grant
    Filed: December 17, 2004
    Date of Patent: July 3, 2007
    Assignee: Microsoft Corporation
    Inventors: Atul Adya, William J. Bolosky, Gerald Cermak, John R. Douceur, Marvin M. Theimer, Roger P. Wattenhofer
  • Patent number: 7237022
    Abstract: 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: Grant
    Filed: June 29, 2000
    Date of Patent: June 26, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet
  • Patent number: 7200618
    Abstract: 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: Grant
    Filed: January 20, 2006
    Date of Patent: April 3, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Roger P. Wattenhofer
  • Patent number: 7181736
    Abstract: 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: Grant
    Filed: September 23, 2003
    Date of Patent: February 20, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Robert P. Fitzgerald, John W. Miller
  • Patent number: 7159110
    Abstract: 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: Grant
    Filed: June 10, 2005
    Date of Patent: January 2, 2007
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, William J. Bolosky, Marvin M. Theimer
  • Patent number: 7146424
    Abstract: 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: Grant
    Filed: April 12, 2002
    Date of Patent: December 5, 2006
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, William J. Bolosky