Patents by Inventor Brett Shirley
Brett Shirley 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: 11379431Abstract: A system for write optimization in transactional data management systems is described. The system stores a tree data structure that comprises a root, a plurality of internal nodes, and a plurality of leaf nodes. Each internal node comprises a pivot key and a child pointer. Each leaf node stores key-value pairs sorted by a corresponding key. The system forms a plurality of hybrid nodes. The hybrid nodes comprise a layer of internal nodes that are immediate parents of the plurality of leaf nodes. A buffer is formed only for each internal node of the plurality of hybrid nodes. The buffer is used to store a message that encodes an operation. The message is to be applied to the corresponding leaf nodes of the plurality of hybrid nodes.Type: GrantFiled: December 9, 2019Date of Patent: July 5, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Yogesh Bansal, Anil Ruia, Alexandre Costa, Tobias Klima, Brett Shirley, Ian Jose, Andrew Goodsell, Serguei Martchenko, Umair Ahmad
-
Publication number: 20210173819Abstract: A system for write optimization in transactional data management systems is described. The system stores a tree data structure that comprises a root, a plurality of internal nodes, and a plurality of leaf nodes. Each internal node comprises a pivot key and a child pointer. Each leaf node stores key-value pairs sorted by a corresponding key. The system forms a plurality of hybrid nodes. The hybrid nodes comprise a layer of internal nodes that are immediate parents of the plurality of leaf nodes. A buffer is formed only for each internal node of the plurality of hybrid nodes. The buffer is used to store a message that encodes an operation. The message is to be applied to the corresponding leaf nodes of the plurality of hybrid nodes.Type: ApplicationFiled: December 9, 2019Publication date: June 10, 2021Inventors: Yogesh Bansal, Anil Ruia, Alexandre Costa, Tobias Klima, Brett Shirley, Ian Jose, Andrew Goodsell, Serguei Martchenko, Umair Ahmad
-
Patent number: 9135158Abstract: Systems and methods are disclosed in which a derived table can inherit a growth pattern from a template table. A growth pattern is used to define how memory is allocated to a table as the table grows. The derived table can inherit the growth pattern defined by its template table or it can provide an override growth pattern. Inheritance of the growth pattern can be performed by explicit copying or by reference or link. Growth patterns can be edited, and the edits can be applied universally or locally.Type: GrantFiled: December 14, 2010Date of Patent: September 15, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Brett A. Shirley, Marcus E. Markiewicz
-
Patent number: 8868618Abstract: Systems and methods are disclosed for employing usage-optimized tables with a computer database system. In one embodiment, the database system stores create, update, and delete database operations in the usage-optimized table. The create, update, and delete database operations remain in the usage-optimized table until a flush condition is reached. When the flush condition is reached, the create, update, and delete operations are transferred to their corresponding real tables. In embodiments, the read operation does not flush the contents of the usage-optimized table to the real table. In such embodiments, the database system modifies read operations to account for data resident on the usage-optimized tables.Type: GrantFiled: December 14, 2010Date of Patent: October 21, 2014Assignee: Microsoft CorporationInventors: Naresh Sundaram, Marcus E. Markiewicz, Brett A. Shirley
-
Patent number: 8768890Abstract: A continuous set of committed transactions can be lost without destroying the integrity of the database, by deferring the writing of the database pages stored in cache to the database on stable storage. A waypoint tracks a point in the transaction log following which transactions have not been applied to the database on stable storage and thus records after the waypoint are not needed for recovery to a consistent database. When there is a failover of an active database on Node A to a passive database on Node B, log records are compared starting with the most current and moving backwards and the point at which divergence in the log occurs is determined. When the lost portion of the log occurs after the point indicated by after the waypoint, the database is recoverable by log-based incremental reseed.Type: GrantFiled: March 14, 2007Date of Patent: July 1, 2014Assignee: Microsoft CorporationInventors: Laurion D. Burchall, Andrew E. Goodsell, Brett A. Shirley
-
Patent number: 8621267Abstract: The embodiments described herein generally relate to methods and systems for using an extended patching procedure for correction or repair of logical data portions, pages, or sectors of a computer data storage device. The extended patching procedure targets for repair not only the page(s) appearing to be defective or unusable based on a failed read operation for a data transfer request, but also additional pages. Determining the additional pages to include for automatic patching is based on: statistical distribution analyzes to include pages within the physical or logical vicinity of the original page, information about the underlying storage device technology or Input/Output (I/O) subsystem, and/or historical data about error conditions for areas related to the original page. Preemptively patching pages based on extended page lists improves system performance by reducing the total number of costly repair processes and by avoiding situations involving correction actions that fail to resolve.Type: GrantFiled: December 15, 2010Date of Patent: December 31, 2013Assignee: Microsoft CorporationInventors: Alexandre Santana da Costa, Umair Ahmad, Brett A. Shirley, Matthew G. Gossage
-
Publication number: 20120159262Abstract: The embodiments described herein generally relate to methods and systems for using an extended patching procedure for correction or repair of logical data portions, pages, or sectors of a computer data storage device. The extended patching procedure targets for repair not only the page(s) appearing to be defective or unusable based on a failed read operation for a data transfer request, but also additional pages. Determining the additional pages to include for automatic patching is based on: statistical distribution analyses to include pages within the physical or logical vicinity of the original page, information about the underlying storage device technology or Input/Output (I/O) subsystem, and/or historical data about error conditions for areas related to the original page. Preemptively patching pages based on extended page lists improves system performance by reducing the total number of costly repair processes and by avoiding situations involving correction actions that fail to resolve.Type: ApplicationFiled: December 15, 2010Publication date: June 21, 2012Applicant: Microsoft CorporationInventors: Alexandre Santana da Costa, Umair Ahmad, Brett A. Shirley, Matthew G. Gossage
-
Publication number: 20120151173Abstract: Systems and methods are disclosed in which a derived table can inherit a growth pattern from a template table. A growth pattern is used to define how memory is allocated to a table as the table grows. The derived table can inherit the growth pattern defined by its template table or it can provide an override growth pattern. Inheritance of the growth pattern can be performed by explicit copying or by reference or link. Growth patterns can be edited, and the edits can be applied universally or locally.Type: ApplicationFiled: December 14, 2010Publication date: June 14, 2012Applicant: Microsoft CorporationInventors: Brett A. Shirley, Marcus E. Markiewicz
-
Publication number: 20120150917Abstract: Systems and methods are disclosed for employing usage-optimized tables with a computer database system. In one embodiment, the database system stores create, update, and delete database operations in the usage-optimized table. The create, update, and delete database operations remain in the usage-optimized table until a flush condition is reached. When the flush condition is reached, the create, update, and delete operations are transferred to their corresponding real tables. In embodiments, the read operation does not flush the contents of the usage-optimized table to the real table. In such embodiments, the database system modifies read operations to account for data resident on the usage-optimized tables.Type: ApplicationFiled: December 14, 2010Publication date: June 14, 2012Inventors: Naresh Sundaram, Marcus E. Markiewicz, Brett A. Shirley
-
Patent number: 8108587Abstract: A computing system stores a database comprising pages. Each of the pages is the same size. When a page is requested, a block of virtual memory addresses is associated with the page and a set of physical data storage locations is committed to the block of virtual memory addresses. A copy of the page is then stored into the set of physical data storage locations. Physical data storage locations committed to the virtual memory addresses associated with available free space in the copy of the page are deallocated, thereby allowing reuse of these physical data storage locations. A reference to the copy of the page is then returned.Type: GrantFiled: May 26, 2009Date of Patent: January 31, 2012Assignee: Microsoft CorporationInventors: Brett A. Shirley, Laurion Burchall, Matthew Gossage
-
Publication number: 20100306444Abstract: A computing system stores a database comprising pages. Each of the pages is the same size. When a page is requested, a block of virtual memory addresses is associated with the page and a set of physical data storage locations is committed to the block of virtual memory addresses. A copy of the page is then stored into the set of physical data storage locations. Physical data storage locations committed to the virtual memory addresses associated with available free space in the copy of the page are deallocated, thereby allowing reuse of these physical data storage locations. A reference to the copy of the page is then returned.Type: ApplicationFiled: May 26, 2009Publication date: December 2, 2010Applicant: Microsoft CorporationInventors: Brett A. Shirley, Laurion Burchall, Matthew Gossage
-
Publication number: 20080228834Abstract: A continuous set of committed transactions can be lost without destroying the integrity of the database, by deferring the writing of the database pages stored in cache to the database on stable storage. A waypoint tracks a point in the transaction log following which transactions have not been applied to the database on stable storage and thus records after the waypoint are not needed for recovery to a consistent database. When there is a failover of an active database on Node A to a passive database on Node B, log records are compared starting with the most current and moving backwards and the point at which divergence in the log occurs is determined. When the lost portion of the log occurs after the point indicated by after the waypoint, the database is recoverable by log-based incremental reseed.Type: ApplicationFiled: March 14, 2007Publication date: September 18, 2008Applicant: Microsoft CorporationInventors: Laurion D. Burchall, Andrew E. Goodsell, Brett A. Shirley
-
Patent number: 7249281Abstract: A method and system for backing up and restoring a data set on a node of a distributed system prevents conflicts in data replication caused by restoration from backup data. Before a node is backed up, state data of the data set of the node are set to mark the data set as “backed up.” The data set also stores a lowest serial number for uncommitted changes. A snapshot of the data set, including the state data, of the node is then taken to provide a backup copy. When the backup copy is later used to restore the data set of the node, the “backed up” value of the state data of the restored data set serves as a notification to the replication server of the node that the data set has been restored, so that the replication server will switch to a new Node ID for labeling new changes for replication to other nodes in the distributed system.Type: GrantFiled: July 28, 2003Date of Patent: July 24, 2007Assignee: Microsoft CorporationInventors: Brett A. Shirley, Gregory C. Johnson
-
Publication number: 20050028026Abstract: A method and system for backing up and restoring a data set on a node of a distributed system prevents conflicts in data replication caused by restoration from backup data. Before a node is backed up, state data of the data set of the node are set to mark the data set as “backed up.” The data set also stores a lowest serial number for uncommitted changes. A snapshot of the data set, including the state data, of the node is then taken to provide a backup copy. When the backup copy is later used to restore the data set of the node, the “backed up” value of the state data of the restored data set serves as a notification to the replication server of the node that the data set has been restored, so that the replication server will switch to a new Node ID for labeling new changes for replication to other nodes in the distributed system.Type: ApplicationFiled: July 28, 2003Publication date: February 3, 2005Applicant: Microsoft CorporationInventors: Brett Shirley, Gregory Johnson