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: 11379431
    Abstract: 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: Grant
    Filed: December 9, 2019
    Date of Patent: July 5, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yogesh Bansal, Anil Ruia, Alexandre Costa, Tobias Klima, Brett Shirley, Ian Jose, Andrew Goodsell, Serguei Martchenko, Umair Ahmad
  • Publication number: 20210173819
    Abstract: 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: Application
    Filed: December 9, 2019
    Publication date: June 10, 2021
    Inventors: Yogesh Bansal, Anil Ruia, Alexandre Costa, Tobias Klima, Brett Shirley, Ian Jose, Andrew Goodsell, Serguei Martchenko, Umair Ahmad
  • Patent number: 9135158
    Abstract: 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: Grant
    Filed: December 14, 2010
    Date of Patent: September 15, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Brett A. Shirley, Marcus E. Markiewicz
  • Patent number: 8868618
    Abstract: 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: Grant
    Filed: December 14, 2010
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Naresh Sundaram, Marcus E. Markiewicz, Brett A. Shirley
  • Patent number: 8768890
    Abstract: 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: Grant
    Filed: March 14, 2007
    Date of Patent: July 1, 2014
    Assignee: Microsoft Corporation
    Inventors: Laurion D. Burchall, Andrew E. Goodsell, Brett A. Shirley
  • Patent number: 8621267
    Abstract: 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: Grant
    Filed: December 15, 2010
    Date of Patent: December 31, 2013
    Assignee: Microsoft Corporation
    Inventors: Alexandre Santana da Costa, Umair Ahmad, Brett A. Shirley, Matthew G. Gossage
  • Publication number: 20120159262
    Abstract: 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: Application
    Filed: December 15, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Alexandre Santana da Costa, Umair Ahmad, Brett A. Shirley, Matthew G. Gossage
  • Publication number: 20120151173
    Abstract: 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: Application
    Filed: December 14, 2010
    Publication date: June 14, 2012
    Applicant: Microsoft Corporation
    Inventors: Brett A. Shirley, Marcus E. Markiewicz
  • Publication number: 20120150917
    Abstract: 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: Application
    Filed: December 14, 2010
    Publication date: June 14, 2012
    Inventors: Naresh Sundaram, Marcus E. Markiewicz, Brett A. Shirley
  • Patent number: 8108587
    Abstract: 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: Grant
    Filed: May 26, 2009
    Date of Patent: January 31, 2012
    Assignee: Microsoft Corporation
    Inventors: Brett A. Shirley, Laurion Burchall, Matthew Gossage
  • Publication number: 20100306444
    Abstract: 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: Application
    Filed: May 26, 2009
    Publication date: December 2, 2010
    Applicant: Microsoft Corporation
    Inventors: Brett A. Shirley, Laurion Burchall, Matthew Gossage
  • Publication number: 20080228834
    Abstract: 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: Application
    Filed: March 14, 2007
    Publication date: September 18, 2008
    Applicant: Microsoft Corporation
    Inventors: Laurion D. Burchall, Andrew E. Goodsell, Brett A. Shirley
  • Patent number: 7249281
    Abstract: 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: Grant
    Filed: July 28, 2003
    Date of Patent: July 24, 2007
    Assignee: Microsoft Corporation
    Inventors: Brett A. Shirley, Gregory C. Johnson
  • Publication number: 20050028026
    Abstract: 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: Application
    Filed: July 28, 2003
    Publication date: February 3, 2005
    Applicant: Microsoft Corporation
    Inventors: Brett Shirley, Gregory Johnson