Patents by Inventor Atul Adya
Atul Adya 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: 7047420Abstract: An exclusive encryption system is established using multiple computing devices. The exclusive encryption system allows for the exclusion of certain plaintext (e.g., by one of the computing devices) and ciphertext (e.g., by another of the computing devices) while at the same time maintaining the privacy created by the encryption (e.g., so the other computing device cannot see the plaintext). The exclusive encryption system may be implemented as part of a serverless distributed file system with directory entries (e.g., file names or folder names) being the plaintext, or alternatively as part of other systems.Type: GrantFiled: January 17, 2001Date of Patent: May 16, 2006Assignee: Microsoft CorporationInventors: John R. Douceur, Josh D. Benaloh, Gideon A. Yuval, Atul Adya
-
Patent number: 7043637Abstract: 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: March 21, 2001Date of Patent: May 9, 2006Assignee: Microsoft CorporationInventors: William J. Bolosky, Gerald Cermak, Atul Adya, John R. Douceur
-
Publication number: 20060077946Abstract: Systems and methods are described for using client conduits to enable bootstrapping and fault diagnosis of disconnected wireless clients. Client conduits are used to enable disconnected clients to diagnose their problems with the help of nearby clients. This technique may take advantage of the beaconing and probing mechanisms of IEEE 802.11 to ensure that connected clients do not pay unnecessary overheads for detecting disconnected clients. Methods are also described for detecting rogue devices disguising as disconnected clients.Type: ApplicationFiled: January 31, 2005Publication date: April 13, 2006Applicant: Microsoft CorporationInventors: Atul Adya, Paramvir Bahl, Ranveer Chandra
-
Publication number: 20060068769Abstract: Systems and methods are described for detecting and diagnosing performance problems in wireless communications networks. Diagnostic programs execute on a wireless device, neighboring devices, and a wireless access point to collaborate in diagnosing network problems. The neighboring devices eavesdrop on a diagnostic session between the device and the access point to determine problems at the device, the access point, and in the wireless medium. Data from the eavesdropping devices can be summarized and sent to a network administrator for further action. The diagnostic programs are described to contain a passive component for detecting problems, and an active component for running the diagnostic techniques.Type: ApplicationFiled: January 31, 2005Publication date: March 30, 2006Applicant: Microsoft CorporationInventors: Atul Adya, Paramvir Bahl, Ranveer Chandra, Lili Qiu
-
Publication number: 20060068811Abstract: Methods are described for using collaboration of neighboring wireless devices to enable location of disconnected wireless devices and rogue wireless access points. A central server computes the locations of the neighboring clients and uses those locations to estimate the location of a disconnected client. These techniques may take advantage of the beaconing and probing mechanisms of IEEE 802.11 to ensure that connected clients do not pay unnecessary overheads for detecting disconnected clients. Methods are also described for detecting and locating rogue devices by collaboratively collecting information from neighboring devices and comparing the information to a database.Type: ApplicationFiled: January 31, 2005Publication date: March 30, 2006Applicant: Microsoft CorporationInventors: Atul Adya, Paramvir Bahl, Ranveer Chandra, Lili Qiu
-
Publication number: 20060026425Abstract: 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: ApplicationFiled: August 18, 2005Publication date: February 2, 2006Applicant: Microsoft CorporationInventors: John Douceur, Atul Adya, William Bolosky, Marvin Theimer
-
Publication number: 20060020700Abstract: An improved method and system for optimizing the allocation of bandwidth within a network system is presented. When a client device is engaged in communication with a remote computing device, an access point measures the throughput of the connection between the client device and the network. If the throughput is less than the amount of bandwidth reserved for usage by the client device, the access point adjusts the amount of bandwidth allocated for the client device to an amount equivalent to the measured throughput multiplied by an error variance factor. This process is then repeated periodically for the duration of the communication between the client device and the remote computing device in order to continually adapt the bandwidth allocation of the client device.Type: ApplicationFiled: September 21, 2005Publication date: January 26, 2006Applicant: Microsoft CorporationInventors: Lili Qiu, Paramvir Bahl, Atul Adya
-
Patent number: 6988124Abstract: 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: June 6, 2001Date of Patent: January 17, 2006Assignee: Microsoft CorporationInventors: John R. Douceur, Marvin M. Theimer, Atul Adya, William J. Bolosky
-
Publication number: 20050289169Abstract: An architecture and implementation for losslessly restarting subsystems in a distributed file system is described. By partitioning functionality and logging appropriately across the kernel and user-level boundaries on a client, the user-level subsystem may be made losslessly restartable. A particular use of transactions achieves efficiency while retaining simplicity. Practical mechanisms for supporting state-based recovery in replicated state machines and like replica are described. In particular, a map assisted state transfer may include receiving one or more state updates, marshaling one or more active data-structures into a marshaled shadow, applying the received state updates to the marshaled shadow and re-instantiating the active data-structures by unmarshaling the marshaled shadow.Type: ApplicationFiled: October 29, 2004Publication date: December 29, 2005Applicant: Microsoft CorporationInventors: Atul Adya, Jacob Lorch, Ronnie Chaiken, William Bolosky
-
Publication number: 20050289414Abstract: An architecture and implementation for losslessly restarting subsystems in a distributed file system is described. By partitioning functionality and logging appropriately across the kernel and user-level boundaries on a client, the user-level subsystem may be made losslessly restartable. Practical mechanisms for supporting state-based recovery in replicated state machines and like replica are described. In particular, each client daemon may include an operations log and an applied log sequence number. Each client driver may include a potentially different operations log. Each client daemon may be configured to request logged operations associated with log sequence numbers in one or more ranges specified by a specification that includes the applied log sequence number. The requested logged operations may reside in the operations log maintained by a client driver.Type: ApplicationFiled: October 29, 2004Publication date: December 29, 2005Applicant: Microsoft CorporationInventors: Atul Adya, Ronnie Chaiken, William Bolosky
-
Patent number: 6981138Abstract: 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: March 26, 2001Date of Patent: December 27, 2005Assignee: Microsoft CorporationInventors: John R. Douceur, Atul Adya, William J. Bolosky, Marvin M. Theimer
-
Publication number: 20050278525Abstract: 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: ApplicationFiled: August 18, 2005Publication date: December 15, 2005Applicant: Microsoft CorporationInventors: John Douceur, Atul Adya, William Bolosky, Marvin Theimer
-
Publication number: 20050222994Abstract: 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: ApplicationFiled: May 27, 2005Publication date: October 6, 2005Applicant: Microsoft CorporationInventors: John Douceur, Marvin Theimer, Atul Adya, William Bolosky
-
Publication number: 20050216538Abstract: 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: ApplicationFiled: May 20, 2005Publication date: September 29, 2005Applicant: Microsoft CorporationInventors: John Douceur, Marvin Theimer, Atul Adya, William Bolosky
-
Publication number: 20050208958Abstract: A method and system for optimizing channel access scheduling for multiple wireless computing devices over a wireless network improves channel access efficiency with respect to a primary channel. An access point, or host computer, includes a host transceiver for receiving control information from the wireless computing devices over a low power channel. Upon receiving the control information, the access point applies a scheduling algorithm to schedule channel access for the wireless computing devices to transmit data over the primary communication channel. The wireless computing devices include a low power radio for receiving scheduling information via the low power channel during idle periods. When the scheduling information is received, the wireless computing device activates its primary channel network interface components to communicate data through the primary channel.Type: ApplicationFiled: April 27, 2005Publication date: September 22, 2005Applicant: Microsoft CorporationInventors: Paramvir Bahl, Atul Adya, Jitendra Padhye
-
Publication number: 20050197119Abstract: A method and system for optimizing channel access scheduling for multiple wireless computing devices over a wireless network improves channel access efficiency with respect to a primary channel. An access point, or host computer, includes a host transceiver for receiving control information from the wireless computing devices over a low power channel. Upon receiving the control information, the access point applies a scheduling algorithm to schedule channel access for the wireless computing devices to transmit data over the primary communication channel. The wireless computing devices include a low power radio for receiving scheduling information via the low power channel during idle periods. When the scheduling information is received, the wireless computing device activates its primary channel network interface components to communicate data through the primary channel.Type: ApplicationFiled: April 26, 2005Publication date: September 8, 2005Applicant: Microsoft CorporationInventors: Paramvir Bahl, Atul Adya, Jitendra Padhye
-
Publication number: 20050136922Abstract: A method and system for optimizing channel access scheduling for multiple wireless computing devices over a wireless network improves channel access efficiency with respect to a primary channel. An access point, or host computer, includes a host transceiver for receiving control information from the wireless computing devices over a low power channel. Upon receiving the control information, the access point applies a scheduling algorithm to schedule channel access for the wireless computing devices to transmit data over the primary communication channel. The wireless computing devices include a low power radio for receiving scheduling information via the low power channel during idle periods. When the scheduling information is received, the wireless computing device activates its primary channel network interface components to communicate data through the primary channel.Type: ApplicationFiled: December 13, 2004Publication date: June 23, 2005Applicant: Microsoft CorporationInventors: Paramvir Bahl, Atul Adya, Jitendra Padhye
-
Publication number: 20050113128Abstract: A method and system for optimizing channel access scheduling for multiple wireless computing devices over a wireless network improves channel access efficiency with respect to a primary channel. An access point, or host computer, includes a host transceiver for receiving control information from the wireless computing devices over a low power channel. Upon receiving the control information, the access point applies a scheduling algorithm to schedule channel access for the wireless computing devices to transmit data over the primary communication channel. The wireless computing devices include a low power radio for receiving scheduling information via the low power channel during idle periods. When the scheduling information is received, the wireless computing device activates its primary channel network interface components to communicate data through the primary channel.Type: ApplicationFiled: December 13, 2004Publication date: May 26, 2005Applicant: Microsoft CorporationInventors: Paramvir Bahl, Atul Adya, Jitendra Padhey
-
Publication number: 20050108240Abstract: 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: ApplicationFiled: December 16, 2004Publication date: May 19, 2005Applicant: Microsoft CorporationInventors: William Bolosky, Gerald Cermak, Atul Adya, John Douceur
-
Publication number: 20050102268Abstract: 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: ApplicationFiled: December 17, 2004Publication date: May 12, 2005Applicant: Microsoft CorporationInventors: Atul Adya, William Bolosky, Gerald Cermak, John Douceur, Marvin Theimer, Roger Wattenhofer