Patents by Inventor Lidong Zhou
Lidong Zhou 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: 7734573Abstract: Methods and apparatuses are provided for recovering one or more replicated datasets. In accordance to some embodiments of the invention, this is accomplished by determining whether a log contains one or more entries indicating a corruption in a replicated data item; and recovering the replicated data item if the log contains any such entries. The log, however, is maintained at a higher layer in a software hierarchy than the layer at which the replicated data item is recovered. As a result, there is no need to maintain a separate replication log at the layer where the replicated data item is recovered.Type: GrantFiled: December 14, 2004Date of Patent: June 8, 2010Assignee: Microsoft CorporationInventors: John P. MacCormick, Chandramohan A. Thekkath, Lidong Zhou
-
Patent number: 7730101Abstract: Tree data storage structures are implemented on respective computers in a distributed environment, such as on a network, so that information associated with nodes of one computer's tree data storage structure may be read or written to by another computer in the network. To promote efficiency, a cache may be employed on the computers in the network such that each computer caches information associated with nodes of tree data storage structures located on the computers in the network. A lock service may implement a caching protocol to provide efficient concurrency of caching operations while ensuring that current information associated with the nodes is available to all computers in the network.Type: GrantFiled: June 10, 2005Date of Patent: June 1, 2010Assignee: Microsoft CorporationInventors: Lidong Zhou, Chandramohan A. Thekkath
-
Publication number: 20100125758Abstract: A distributed system checker may check a distributed system against events to detect bugs in the distributed system. The events may include machines crashes, network partitions, and packet losses, for example. The distributed system checker may check a distributed system that can have multiple threads and multiple processes running on multiple nodes. To obtain control over a distributed system, a distributed system checker may insert an interposition layer between a process and the operating system on each node.Type: ApplicationFiled: November 17, 2008Publication date: May 20, 2010Applicant: Microsoft CorporationInventors: Junfeng Yang, Lintao Zhang, Lidong Zhou, Zhenyu Guo, Xuezheng Liu, Jian Tang, Mao Yang
-
Publication number: 20100106753Abstract: A cyclic commit protocol is used to store relationships between transactions and is used by the technology to determine whether a transaction is committed or not. The protocol allows creation of a cycle of transactions which can be used to recover the state of a storage device after a host failure by identifying the last committed version of intention records as committed or uncommitted based on the data stored in the physical pages.Type: ApplicationFiled: October 24, 2008Publication date: April 29, 2010Applicant: Microsoft CorporationInventors: Vijayan Prabhakaran, Lidong Zhou, Thomas Lee Rodeheffer
-
Patent number: 7636868Abstract: A global state management service manages replication in a distributed system. A distributed system can have several replica groups. The global state management service manages state associated with each replica group. Data replication is implemented without implementing an instance of a state machine on each device in a replica group. A replica group comprises a primary device and at least one secondary device. Each device in a replica group contains a replica of data of interest. The global state management service manages the allocation of primary and secondary devices. In the absence of a failure in either a primary device or a secondary device, read and write operations are performed without consulting the global state management service. When a failure is detected, the global state management service manages failover.Type: GrantFiled: June 27, 2006Date of Patent: December 22, 2009Assignee: Microsoft CorporationInventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou
-
Patent number: 7630998Abstract: The addition of a layer between a tree data storage structure and a persistent storage is disclosed. The additional layer, called a storage module, generates an identifier and allocates it to a node in the tree data storage structure. The storage module additionally performs a mapping function, allocating the identifier to a location in persistent storage. If the node is later deleted from the tree data storage structure, then the mapping of the identifier to the location in persistent storage is likewise deleted. In this way, if the node is deleted and, concurrently, a lookup or write operation is attempted on the deleted node, the storage module will read the identifier associated with the deleted node but will not be able to map the identifier to a location in persistent storage. Instead, an exception is generated and sent to the tree data storage module.Type: GrantFiled: June 10, 2005Date of Patent: December 8, 2009Assignee: Microsoft CorporationInventors: Lidong Zhou, Chandramohan A. Thekkath
-
Patent number: 7613105Abstract: A network troubleshooting framework is described. In an implementation, a method includes forming a plurality of reports by a plurality of nodes in a network, wherein each of the reports is formed by a respective one of the nodes and includes trace data obtained from the respective node and another of the nodes. An inconsistency is detected in the trace data in one of the reports when compared with corresponding trace data in another of the reports. A set of the nodes is found that formed one or more of the reports having the inconsistency in the trace data.Type: GrantFiled: June 30, 2004Date of Patent: November 3, 2009Assignee: Microsoft CorporationInventors: Paramvir Bahl, Lidong Zhou, Lili Qiu, Ananth Rajagopala Rao
-
Publication number: 20090271707Abstract: An enhancement to a web browser offers an extension mechanism for web applications to utilize client-side resources, thereby moving more extensibility and flexibility to the client-side. The web browser may expose some control interfaces to meet various requirements from web applications. Using the extension mechanism, the web applications are able to offload the cloud servers, function when offline, and improve performance. The extension mechanism also provides users with full control to the data passing through their web browsers.Type: ApplicationFiled: April 23, 2008Publication date: October 29, 2009Applicant: MICROSOFT CORPORATIONInventors: Shiding Lin, Lidong Zhou, Chandramohan A. Thekkath, Dahlia Malkhi, Zheng Zhang
-
Patent number: 7606165Abstract: A network troubleshooting framework is described. In an implementation, a method includes generating a first estimation of network performance by a simulator based on network settings obtained from a network, estimating the new performance under an alternative setting by providing the alternative setting to the network simulation and observing the simulation output, repeating the procedure for other alternative settings, and suggesting the alternative setting that improves network performance.Type: GrantFiled: June 30, 2004Date of Patent: October 20, 2009Assignee: Microsoft CorporationInventors: Lili Qiu, Paramvir Bahl, Lidong Zhou, Ananth Rajagopala Rao
-
Patent number: 7583587Abstract: A network troubleshooting framework is described. In an implementation, a method includes detecting discrepancy in operation of a network by supplying data that describes the network to a network simulation so that the network simulation provides an estimation of network performance. A determination is made as to whether the estimation of network performance differs from observed network performance of the network. A root cause of the discrepancy is diagnosed by injecting one or more of a plurality of faults into the network simulation until the estimation of network performance approximates the observed network performance.Type: GrantFiled: June 30, 2004Date of Patent: September 1, 2009Assignee: Microsoft CorporationInventors: Lili Qiu, Paramvir Bahl, Lidong Zhou, Ananth Rajagopala Rao
-
Publication number: 20090150566Abstract: A variant of Paxos is referred to as Virtually Synchronous Paxos (VS Paxos). VS Paxos is a self-reconfigurable protocol that allows for delay only for reconfiguration decisions, without placing an artificial limit on regular decisions. In an implementation of VS Paxos, subject to any restriction on reconfiguration decisions, a leader may activate an unbounded number of consensus instances ahead. A VS Paxos technique permits unlimited progress during stability periods, in that a leader may initiate commands at any number of consensus instances without bound. VS Paxos waits for command completion only when configuration-changing commands occur.Type: ApplicationFiled: December 7, 2007Publication date: June 11, 2009Applicant: MICROSOFT CORPORATIONInventors: Dahlia Malkhi, Leslie B. Lamport, Lidong Zhou
-
Patent number: 7529891Abstract: Balanced prefetching automatically balances the benefits of prefetching data that has not been accessed recently against the benefits of caching recently accessed data, and can be applied to most types of structured data without needing application-specific details or hints. Balanced prefetching is performed in applications in a computer system, such as storage-centric applications, including file systems and databases. Balanced prefetching exploits the structure of the data being prefetched, providing superior application throughput. For a fixed amount of memory, it is automatically and dynamically determined how much memory should be devoted to prefetching.Type: GrantFiled: September 19, 2005Date of Patent: May 5, 2009Assignee: Microsoft CorporationInventors: Chandramohan A. Thekkath, John P. MacCormick, Lidong Zhou, Nicholas Charles Murphy
-
Publication number: 20090113550Abstract: Methods and architectures for automatic filter generation are described. In an embodiment, these filters are generated in order to block inputs which would otherwise disrupt the normal functioning of a program. An initial set of filter conditions is generated by analyzing the path of a program from a point at which a bad input is received to the point at which the malfunctioning of the program is detected and creating conditions on an input which ensure that this path is followed. Having generated the initial set of filter conditions, the set is made less specific by determining which instructions do not influence whether the point of detection of the attack is reached and removing the filter conditions which correspond to these instructions.Type: ApplicationFiled: October 26, 2007Publication date: April 30, 2009Applicant: Microsoft CorporationInventors: Manuel Costa, Miguel Castro, Lidong Zhou, Lintao Zhang, Marcus Peinado
-
Publication number: 20080313496Abstract: Multiple versions of data on different sets of machines allow a system to degrade gracefully even when experiencing excessive failures. When excessive failures cause the latest versions to be unavailable, the system becomes degraded, but still offers an old version if available. A most recent coherent set of the available older versions is found and provided. The degree of degradation increases gradually as the system experiences more and more failures. Graceful degradation is desirably complementary to fault tolerance.Type: ApplicationFiled: June 12, 2007Publication date: December 18, 2008Applicant: Microsoft CorporationInventors: Vijayan Prabhakaran, Venugopalan Ramasubramanian, Lidong Zhou, Roy Levin, Chandramohan A. Thekkath
-
Publication number: 20080209523Abstract: Data is automatically shared over one or more contact networks which are interrelated by a trust relationship. The data can be shared using a network-based communication service and is stored as a data record in a local data store. The communication service may be implemented as an instant messaging, electronic mail, mobile phone or some other type of communication service. The data record can include data created by a user, a relevance value, a maximum share count and/or other data. The number of times that data may be shared may be configured by the user that generates the data. The relevance of the data may be updated each time the data is shared.Type: ApplicationFiled: February 28, 2007Publication date: August 28, 2008Applicant: MICROSOFT CORPORATIONInventors: Dahlia Malkhi, Lidong Zhou, Yaacov Fernandess
-
Publication number: 20080065704Abstract: A distributed data store employs replica placement techniques in which a number k hash functions are used to compute k potential locations for a data item. A number r of the k locations are chosen for storing replicas. These replica placement techniques provide a system designer with the freedom to choose r from k, are structured in that they are determined by a straightforward functional form, and are diffuse such that the replicas of the items on one server are scattered over many other servers. The resulting storage system exhibits excellent storage balance and request load balance in the presence of incremental system expansions, server failures, and load changes. Data items may be created, read, and updated or otherwise modified.Type: ApplicationFiled: September 12, 2006Publication date: March 13, 2008Applicant: Microsoft CorporationInventors: John Philip MacCormick, Nicholas Murphy, Venugopalan Ramasubramanian, Ehud Wieder, Lidong Zhou, Junfeng Yang
-
Publication number: 20070299955Abstract: A global state management service manages replication in a distributed system. A distributed system can have several replica groups. The global state management service manages state associated with each replica group. Data replication is implemented without implementing an instance of a state machine on each device in a replica group. A replica group comprises a primary device and at least one secondary device. Each device in a replica group contains a replica of data of interest. The global state management service manages the allocation of primary and secondary devices. In the absence of a failure in either a primary device or a secondary device, read and write operations are performed without consulting the global state management service. When a failure is detected, the global state management service manages failover.Type: ApplicationFiled: June 27, 2006Publication date: December 27, 2007Applicant: Microsoft CorporationInventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou
-
Patent number: 7283834Abstract: An invention is disclosed whereby a wireless network node, equipped with two or more radio transceivers statically tuned to non-interfering frequency channels, can make decisions regarding which channel to use when communicating with a neighboring wireless node. A multi-radio unification protocol implemented in a wireless node coordinates the use of multiple wireless network interface cards and provides a virtual layer that hides the multiple physical network interfaces from higher layers of a node's network protocol stack. The invention is applicable to wireless networks generally, including those in which some nodes do not have multiple radios or do not recognize the multi-radio unification protocol. The invention makes possible simultaneous transmissions using available channels, thereby reducing interference and delay while increasing the overall capacity of the network.Type: GrantFiled: February 24, 2006Date of Patent: October 16, 2007Assignee: Microsoft CorporationInventors: Alastair Wolman, Atul Adya, Paramvir Bahl, Jitendra D. Padhye, Lidong Zhou
-
Publication number: 20070160002Abstract: An invention is disclosed whereby a wireless network node, equipped with two or more radio transceivers statically tuned to non-interfering frequency channels, can make decisions regarding which channel to use when communicating with a neighboring wireless node. A multi-radio unification protocol implemented in a wireless node coordinates the use of multiple wireless network interface cards and provides a virtual layer that hides the multiple physical network interfaces from higher layers of a node's network protocol stack. The invention is applicable to wireless networks generally, including those in which some nodes do not have multiple radios or do not recognize the multi-radio unification protocol. The invention makes possible simultaneous transmissions using available channels, thereby reducing interference and delay while increasing the overall capacity of the network.Type: ApplicationFiled: February 23, 2007Publication date: July 12, 2007Applicant: Microsoft CorporationInventors: Alastair Wolman, Atul Adya, Paramvir Bahl, Jitendra Padhye, Lidong Zhou
-
Publication number: 20070067576Abstract: Balanced prefetching automatically balances the benefits of prefetching data that has not been accessed recently against the benefits of caching recently accessed data, and can be applied to most types of structured data without needing application-specific details or hints. Balanced prefetching is performed in applications in a computer system, such as storage-centric applications, including file systems and databases. Balanced prefetching exploits the structure of the data being prefetched, providing superior application throughput. For a fixed amount of memory, it is automatically and dynamically determined how much memory should be devoted to prefetching.Type: ApplicationFiled: September 19, 2005Publication date: March 22, 2007Applicant: Microsoft CorporationInventors: Chandramohan Thekkath, John MacCormick, Lidong Zhou, Nicholas Murphy