Patents by Inventor Chandramohan Thekkath
Chandramohan Thekkath 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).
-
Publication number: 20070171915Abstract: Disclosed herein are scheduling techniques for transmitting time-critical data in a cost-aware manner over a network comprising a plurality of heterogeneous transmission interfaces. The scheduling problem is formulated as a linear programming problem with the deliver-by deadlines of the various data blocks as hard constraints and minimizing cost set as an objective (soft) constraint. The problem is simplified by assuming data blocks with the earliest deadlines should be scheduled first and the most aggressive interfaces should be used first. To formulate the linear programming problem, the time domain is divided into bins and various bin-level schedules are enumerated for switching the transmission of the data over various transmission interfaces. The linear programming techniques are applied to the various bin configurations and the least costly of the resulting transmission schedule is selected for submission to a switching layer.Type: ApplicationFiled: January 26, 2006Publication date: July 26, 2007Applicant: Microsoft CorporationInventors: Kentaro Toyama, Rohan Murty, Chandramohan Thekkath, Ranveer Chandra
-
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
-
Publication number: 20060282481Abstract: 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: ApplicationFiled: June 10, 2005Publication date: December 14, 2006Applicant: Microsoft CorporationInventors: Lidong Zhou, Chandramohan Thekkath
-
Publication number: 20060282438Abstract: 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: ApplicationFiled: June 10, 2005Publication date: December 14, 2006Applicant: Microsoft CorporationInventors: Lidong Zhou, Chandramohan Thekkath
-
Publication number: 20060221860Abstract: Nodal pattern configuration is described, including generating successive values at a source node, processing the successive values using a plurality of intermediate nodes, sending the processed values from a node in the plurality of intermediate nodes to a destination node, and configuring the plurality of intermediate nodes such that each node of the plurality of intermediate nodes, concurrently performs at least two actions. Also, nodal pattern configuration includes generating a series of data blocks at a source node, processing data blocks from the series of data blocks using a plurality of intermediate nodes in data communication with the source node, each node of the plurality of intermediate nodes being configured to concurrently perform at least two operations, and sending processed data blocks from the plurality of intermediate nodes to a destination node, the destination node being in data communication with the plurality of intermediate nodes.Type: ApplicationFiled: March 31, 2005Publication date: October 5, 2006Applicant: Microsoft CorporationInventors: Mark Manasse, Alice Silverberg, Chandramohan Thekkath
-
Publication number: 20060179086Abstract: An information management system includes a database comprising a B-Tree data structure. The B-Tree includes a plurality of nodes associated with disk blocks, handles stored in the nodes, and version numbers attached to each of the handles and disk blocks. In addition, a method is provided that can include initially assigning version numbers to disk blocks, wherein the disk blocks are associated with nodes in a B-Tree data structure, and then performing an allocate operation whereby a handle identifying a disk block is returned along with the disk block's version number.Type: ApplicationFiled: March 16, 2006Publication date: August 10, 2006Applicant: Microsoft CorporationInventors: Marc Najork, Chandramohan Thekkath
-
Publication number: 20060155781Abstract: High-performance, scalable, and fault-tolerant distributed systems include decoupling data replication functions from reconfiguration and read functions to optimize system performance and provide a clean separation between scalability and fault tolerance. Each data object is replicated on multiple servers and a data replication protocol can be used to ensure data consistency. Read requests can be streamlined because any server can satisfy a read request, thus improving read performance, throughput, and overall system performance.Type: ApplicationFiled: January 10, 2005Publication date: July 13, 2006Applicant: Microsoft CorporationInventors: John MacCormick, Chandramohan Thekkath, Lidong Zhou
-
Publication number: 20060129612Abstract: 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: ApplicationFiled: December 14, 2004Publication date: June 15, 2006Applicant: Microsoft CorporationInventors: John MacCormick, Chandramohan Thekkath, Lidong Zhou
-
Publication number: 20060026188Abstract: An information management system includes a computer and a database comprising a B-Tree data structure comprising a plurality of nodes associated with disk blocks and handles stored in the nodes. At least one left-link handle, hleft, stored in each node points to a left sibling of that node. A mechanism for performing a lookup operation with respect to a key, k, traverses the B-Tree and refers to the left-link handle, hleft, of a node to access a left sibling of the node if the key k is less than or equal to a value kmin stored in the node. Mechanisms are also provided for performing insert and delete operations, and the lookup, insert, and delete operations detect if the key range of an index node, A, does not include the key k that the operation is trying to locate, and follow a handle A.hleft to the left sibling when k?A.kmin.Type: ApplicationFiled: September 1, 2005Publication date: February 2, 2006Applicant: Microsoft CorporationInventors: Marc Najork, Chandramohan Thekkath
-
Publication number: 20050071336Abstract: Systems and methods for logging and recovering updates to data structures in the event of failure of an information management system are provided. In exemplary implementations, methods for implementing an efficient redo log for a data structure that is concurrently accessed by multiple clients is provided. The data structure is implemented in two layers: the data structure algorithm layer which sits atop an allocator that provides distributed, persistent, and replicated storage allocation. Both the B-link tree algorithm layer and the allocator use the service of the logging mechanism to implement fault-tolerance and atomicity guarantees. The present invention uses a single log and allows periodic truncation of that log for space efficiency.Type: ApplicationFiled: September 30, 2003Publication date: March 31, 2005Inventors: Marc Najork, Chandramohan Thekkath, Lidong Zhou
-
Publication number: 20050036500Abstract: A network includes multiple segments and bridges interconnecting the segments, with hosts coupled to the segments. The bridges are smart bridges that each perform a host location initialization function. The host location initialization function in one bridge is performed in corporation with all other bridges in the bridged network via an instance through a propagation order spanning tree (POST). The initialization method includes obtaining prior host location information which is at least a partial representation of the host locations in the bridged network before the network topology change, obtaining hints on host location changes resulting from the network topology change, and modifying the prior host location information according to the hints to construct host location information for initialization. Location information for at least a portion of the hosts in the bridged network is preserved or discovered quickly each time when the network topology changes.Type: ApplicationFiled: August 15, 2003Publication date: February 17, 2005Inventors: Thomas Rodeheffer, Mark Lillibridge, Chandramohan Thekkath