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: 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: 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: 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
-
Patent number: 7082438Abstract: 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: GrantFiled: September 1, 2005Date of Patent: July 25, 2006Assignee: Microsoft CorporationInventors: Marc A. Najork, Chandramohan A. 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
-
Patent number: 7072904Abstract: 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, the system includes a mechanism for initially assigning each disk block a first prescribed version number (e.g., version number 0), and a mechanism for performing an allocate operation whereby a handle identifying a disk block is returned along with the disk block's version number. The system may also include a mechanism for performing a deallocate operation that increments the disk block's version number, as well as a mechanism for performing a read operation that returns a disk block's version number in addition to the node stored at that disk block. Moreover, a caller of the read operation checks whether the version number returned by the read operation matches the version number of the handle that was read.Type: GrantFiled: December 2, 2002Date of Patent: July 4, 2006Assignee: Microsoft CorporationInventors: Marc A. Najork, Chandramohan A. Thekkath
-
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
-
Patent number: 7007027Abstract: 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: GrantFiled: December 2, 2002Date of Patent: February 28, 2006Assignee: Microsoft CorporationInventors: Marc A. Najork, Chandramohan A. Thekkath
-
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
-
Publication number: 20040243827Abstract: A method for managing access control of a resource includes storing a revocation list containing a list of revoked capabilities and their corresponding groups; storing a group list containing a list of valid groups; receiving a capability revocation request to revoke a specified capability; selecting a revocation method from among a plurality of revocation methods, including an individual capability revocation method and a group revocation method; revoking the specified capability by invalidating the group to which the specified capability belongs if the group revocation method is selected; and revoking the specified capability by invalidating only the specified capability if the individual capability revocation method is selected.Type: ApplicationFiled: May 30, 2003Publication date: December 2, 2004Inventors: Marcos K. Aguilera, Minwen Ji, Mark David Lillibridge, John Philip MacCormick, Erwin Oertli, David Godbe Andersen, Michael Burrows, Timothy P. Mann, Chandramohan A. Thekkath
-
Publication number: 20040243828Abstract: A system for protecting data integrity in a network attached block-device, such as a disk or a disk array, includes a capability issuer module coupled to a metadata server. The capability-issuer module creates capability data in accordance with a predetermined set of rules, and issues the capability data to the client over a secured channel. The capability data includes a group identifier, a capability identifier, a block-device identifier, a list of extents for specifying a range of blocks to which access is granted, an access mode for indicating the type of access allowed, and a cryptographic string for preventing forgery of capabilities by unauthorized parties. A capability checker module coupled to a network attached block-device verifies that the client's block access request is consistent with the capability data issued, and that the capability data is authentic. Upon verifying the client's capability data, the client's block access request is granted and executed at the network-attached block-device.Type: ApplicationFiled: May 30, 2003Publication date: December 2, 2004Inventors: Marcos K. Aguilera, Minwen Ji, Mark Lillibridge, John Philip MacCormick, Erwin Oertli, David Godbe Andersen, Michael Burrows, Timothy P. Mann, Chandramohan A. Thekkath
-
Publication number: 20040107186Abstract: 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: December 2, 2002Publication date: June 3, 2004Applicant: Microsoft CorporationInventors: Marc A. Najork, Chandramohan A. Thekkath
-
Publication number: 20040107185Abstract: 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, the system includes a mechanism for initially assigning each disk block a first prescribed version number (e.g., version number 0), and a mechanism for performing an allocate operation whereby a handle identifying a disk block is returned along with the disk block's version number. The system may also include a mechanism for performing a deallocate operation that increments the disk block's version number, as well as a mechanism for performing a read operation that returns a disk block's version number in addition to the node stored at that disk block. Moreover, a caller of the read operation checks whether the version number returned by the read operation matches the version number of the handle that was read.Type: ApplicationFiled: December 2, 2002Publication date: June 3, 2004Applicant: Microsoft CorporationInventors: Marc A. Najork, Chandramohan A. Thekkath
-
Patent number: 6721275Abstract: Managing end stations locations in a bridged network includes providing a smart bridge, and performing communications operations using a network flood active port connections table, a network flood reaching table, a best path forwarding table and a best path sourcing table. An end station locations revision manages a host location (HLOC) table. End stations locations revision is invoked upon detection of changes in any end station location. The end stations locations revision exchanges location revision grandparent (LRG), a location revision child (LRC) table and a location revision wavefront distribution protocol. The locations revision passes the location revision request from the smart bridge over a topology of the bridged network. A location revision wavefront starts at the root and, spreads a location revision request for revising the HLOC of the other smart bridges. The wavefront spreads by wavefront protocol.Type: GrantFiled: February 1, 2000Date of Patent: April 13, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventors: Thomas L. Rodeheffer, Darrell Anderson, Chandramohan A. Thekkath, Raymond P. Stata, Mark D. Lillibridge
-
Patent number: 6614764Abstract: A bridged network and a method for performing bridged network topology acquisition. The bridged network includes network segments and smart bridges having one or more ports. The network segments are interconnected by the smart bridges via the ports. Each of the smart bridges being configured to perform steps to accomplish the network topology acquisition. The method also performs steps to accomplish the network topology acquisition. The steps include an inventory construction that compiles a list of the ports that are connected to each of the network segments. Among the ports that are connected to any of the network segments the inventory construction respecting each port operates cooperatively so as to cause the list respecting each of the ports to converge rapidly to the state in which all the lists are similar and yielding a uniform segment inventory.Type: GrantFiled: February 1, 2000Date of Patent: September 2, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventors: Thomas L. Rodeheffer, Darrell Anderson, Chandramohan A. Thekkath, Mark D. Lillibridge