Patents by Inventor Robert Patrick Fitzgerald

Robert Patrick Fitzgerald 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: 20170206137
    Abstract: A versioned records management computing system that uses a restart era in order to promote rapid recovery. A persistent store includes a multi-versioned record collection. The records are also associated with a restart era that corresponds to the era of operation of the computing system after a restart. Upon a recovery, the current restart era changes. An object collection media has an object collection that conforms to an object model such that the object model is used to operate upon the records. The object collection media is operable such that the object collection is durable so as to survive restarts of the system to thereby allow for accelerated recovery.
    Type: Application
    Filed: January 19, 2016
    Publication date: July 20, 2017
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu
  • Publication number: 20170168904
    Abstract: A system that uses a persistent main memory to preserve events that await logging in a persistent store. Each event is written into the persistent main memory so as to be loggable in case of recovery. For instance, the event may be written into a log cache structure, along with other state which identifies that the event is in the particular log cache structure, the location of the event within the particular log cache structure, and the order of the event. To recover, the log in the persistent store is evaluated to identify the end of the stored log. The tail of the log is identified in the persistent main memory by identifying any log cache structures that are after the end of the stored log and which are validly recoverable. The log cache structure contents are then serialized one log cache at a time, earliest first.
    Type: Application
    Filed: December 11, 2015
    Publication date: June 15, 2017
    Inventors: Robert Patrick Fitzgerald, Per-Ake Larson, Michael James Zwilling, Cristian Diaconu
  • Publication number: 20170060703
    Abstract: The recovery of one or more transactions in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record.
    Type: Application
    Filed: November 9, 2016
    Publication date: March 2, 2017
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20170031973
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. The transaction processing uses torn write detection so that recovery processes may use such guards to verify that there are no torn writes. For instance, torn write guards may be used to verify the integrity of record versions as well as the log buffers that refer to the record versions.
    Type: Application
    Filed: October 17, 2016
    Publication date: February 2, 2017
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Patent number: 9519551
    Abstract: The recovery of one or more transactions in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record.
    Type: Grant
    Filed: May 10, 2013
    Date of Patent: December 13, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Patent number: 9477557
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. The transaction processing uses torn write detection so that recovery processes may use such guards to verify that there are no torn writes. For instance, torn write guards may be used to verify the integrity of record versions as well as the log buffers that refer to the record versions.
    Type: Grant
    Filed: May 10, 2013
    Date of Patent: October 25, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Patent number: 9436561
    Abstract: The recovery of a transaction, and perhaps the recovery of multiple transactions, in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which that the record version is considered to properly represent the record. Torn write guards may be used to verify that there are no torn writes in the record versions or in the log buffer associated with the transaction.
    Type: Grant
    Filed: May 10, 2013
    Date of Patent: September 6, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Patent number: 9417974
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. As part of the transaction, post-commit processing information is generated to allow the computing system to recover in the event of a system failure.
    Type: Grant
    Filed: May 10, 2013
    Date of Patent: August 16, 2016
    Assignee: Microsoft Technology Licensing, LLC.
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297609
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. The transaction processing uses torn write detection so that recovery processes may use such guards to verify that there are no torn writes. For instance, torn write guards may be used to verify the integrity of record versions as well as the log buffers that refer to the record versions.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297595
    Abstract: Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. As part of the transaction, post-commit processing information is generated to allow the computing system to recover in the event of a system failure.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Applicant: Microsoft Corporation
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297598
    Abstract: The recovery of one or more transactions in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140297608
    Abstract: The recovery of a transaction, and perhaps the recovery of multiple transactions, in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. As an example, the persistent system may serve as part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which that the record version is considered to properly represent the record. Torn write guards may be used to verify that there are no torn writes in the record versions or in the log buffer associated with the transaction.
    Type: Application
    Filed: May 10, 2013
    Publication date: October 2, 2014
    Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
  • Publication number: 20140258672
    Abstract: The positioning a block of data within a storage hierarchy. For the given block of data, demand statistics are accumulated for each of multiple time periods by evaluating input/output operations on the block of data during the time period and assigning a resulting demand value to the time period for that time period. This is done for multiple time periods so that the accumulated demand for a given point of time may be calculated using the assigned demand values for the previous time periods. The accumulated demand may then be used to determine a level in the storage hierarchy that the block of data should be placed. This allows for the more in-demand memory blocks to be placed in higher in the storage hierarchy. Thus, the principles described herein allow for efficient use of computing resources.
    Type: Application
    Filed: March 8, 2013
    Publication date: September 11, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Andrew Herron, Robert Patrick Fitzgerald, Juan-Lee Pang
  • Patent number: 8560762
    Abstract: Storage devices can retain information through application of a charge upon the storage device. However, applying the charge upon the storage device can be change physical characteristics of the charge and ultimately increase a likelihood of device failure. Therefore, a determination can be made on how to apply the charge based upon analysis of the device, of data for retention, and the like. Raw data can be analyzed and/or estimations can be made to determine the charge.
    Type: Grant
    Filed: June 25, 2008
    Date of Patent: October 15, 2013
    Assignee: Microsoft Corporation
    Inventors: Ruston Panabaker, Robert Patrick Fitzgerald, William J. Westerinen
  • Patent number: 7925807
    Abstract: Providing for arbitration and dynamic downloading of microcode at a controller associated with electrically erasable non-volatile memory is described herein. By way of example, a download agent can be provided to a module of such non-volatile memory. Characteristics of the memory module and/or specifications of a host application can be utilized to select one or more memory control modules from a group of such control modules. A selected control module(s) can be installed at the controller via the download agent to provide non-default management of raw memory. Further, arbitration of multiple control modules can be implemented to select among various mechanisms to control/manage raw memory. Arbitration can be based, for instance, on specifications of a host device application. Accordingly, great flexibility and control of raw non-volatile memory can be provided for a host device at an application level.
    Type: Grant
    Filed: May 27, 2008
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Ruston Panabaker, John Mark Miller, James R. Hamilton, Avi R. Geiger, Robert Patrick Fitzgerald, James Charles Kleewein
  • Publication number: 20090327579
    Abstract: Storage devices can retain information through application of a charge upon the storage device. However, applying the charge upon the storage device can be change physical characteristics of the charge and ultimately increase a likelihood of device failure. Therefore, a determination can be made on how to apply the charge based upon analysis of the device, of data for retention, and the like. Raw data can be analyzed and/or estimations can be made to determine the charge.
    Type: Application
    Filed: June 25, 2008
    Publication date: December 31, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Ruston Panabaker, Robert Patrick Fitzgerald, William J. Westerinen
  • Publication number: 20090327577
    Abstract: Solid-state memory and mechanical disk memory can be used together to create a reliable storage unit with desirable performance characteristics. Initially, memory can be entered to the solid-state memory until filled as well as backed-up upon the mechanical disk memory. After the solid-state memory fills, less used information can be deleted from the solid-state memory yet retained upon the mechanical disk such that the less used information is not lost. To determine information use, an algorithm can be employed, such as an exponential algorithm.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: MICROSOFT CORPORATION
    Inventor: Robert Patrick Fitzgerald
  • Publication number: 20090300238
    Abstract: Providing for arbitration and dynamic downloading of microcode at a controller associated with electrically erasable non-volatile memory is described herein. By way of example, a download agent can be provided to a module of such non-volatile memory. Characteristics of the memory module and/or specifications of a host application can be utilized to select one or more memory control modules from a group of such control modules. A selected control module(s) can be installed at the controller via the download agent to provide non-default management of raw memory. Further, arbitration of multiple control modules can be implemented to select among various mechanisms to control/manage raw memory. Arbitration can be based, for instance, on specifications of a host device application. Accordingly, great flexibility and control of raw non-volatile memory can be provided for a host device at an application level.
    Type: Application
    Filed: May 27, 2008
    Publication date: December 3, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Ruston Panabaker, John Mark Miller, James R. Hamilton, Avi R. Geiger, Robert Patrick Fitzgerald, James Charles Kleewein
  • Publication number: 20090271563
    Abstract: Providing for improved transactioning for Flash memory is described herein. By way of example, transactioning operations associated with abstract data structures can be bundled into a common layer of a Flash management protocol stack, to reduce transaction redundancy at abstracted layers. In some aspects, the common layer can be a block level layer providing relatively direct access to low level Flash. Thus, a file system or database application, operating at a higher, abstracted layer of the Flash management protocol stack, can offload transactioning operations to a block level process that has access to underlying Flash memory. As a result, increased efficiency, throughput, and added flexibility can be achieved for storage system transactioning.
    Type: Application
    Filed: April 28, 2008
    Publication date: October 29, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Yadhu N. Gopalan, William J. Westerinen, James R. Hamilton, John Mark Miller, Vladimir Sadovsky, Robert Patrick Fitzgerald