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: 20170206137Abstract: 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: ApplicationFiled: January 19, 2016Publication date: July 20, 2017Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu
-
Publication number: 20170168904Abstract: 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: ApplicationFiled: December 11, 2015Publication date: June 15, 2017Inventors: Robert Patrick Fitzgerald, Per-Ake Larson, Michael James Zwilling, Cristian Diaconu
-
Publication number: 20170060703Abstract: 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: ApplicationFiled: November 9, 2016Publication date: March 2, 2017Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Publication number: 20170031973Abstract: 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: ApplicationFiled: October 17, 2016Publication date: February 2, 2017Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Patent number: 9519551Abstract: 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: GrantFiled: May 10, 2013Date of Patent: December 13, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Patent number: 9477557Abstract: 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: GrantFiled: May 10, 2013Date of Patent: October 25, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Patent number: 9436561Abstract: 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: GrantFiled: May 10, 2013Date of Patent: September 6, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Patent number: 9417974Abstract: 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: GrantFiled: May 10, 2013Date of Patent: August 16, 2016Assignee: Microsoft Technology Licensing, LLC.Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Publication number: 20140297609Abstract: 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: ApplicationFiled: May 10, 2013Publication date: October 2, 2014Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Publication number: 20140297595Abstract: 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: ApplicationFiled: May 10, 2013Publication date: October 2, 2014Applicant: Microsoft CorporationInventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Publication number: 20140297598Abstract: 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: ApplicationFiled: May 10, 2013Publication date: October 2, 2014Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Publication number: 20140297608Abstract: 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: ApplicationFiled: May 10, 2013Publication date: October 2, 2014Inventors: Per-Ake Larson, Robert Patrick Fitzgerald, Cristian Diaconu, Michael James Zwilling
-
Publication number: 20140258672Abstract: 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: ApplicationFiled: March 8, 2013Publication date: September 11, 2014Applicant: MICROSOFT CORPORATIONInventors: Andrew Herron, Robert Patrick Fitzgerald, Juan-Lee Pang
-
Patent number: 8560762Abstract: 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: GrantFiled: June 25, 2008Date of Patent: October 15, 2013Assignee: Microsoft CorporationInventors: Ruston Panabaker, Robert Patrick Fitzgerald, William J. Westerinen
-
Patent number: 7925807Abstract: 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: GrantFiled: May 27, 2008Date of Patent: April 12, 2011Assignee: Microsoft CorporationInventors: Ruston Panabaker, John Mark Miller, James R. Hamilton, Avi R. Geiger, Robert Patrick Fitzgerald, James Charles Kleewein
-
Publication number: 20090327579Abstract: 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: ApplicationFiled: June 25, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Ruston Panabaker, Robert Patrick Fitzgerald, William J. Westerinen
-
Publication number: 20090327577Abstract: 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: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventor: Robert Patrick Fitzgerald
-
Publication number: 20090300238Abstract: 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: ApplicationFiled: May 27, 2008Publication date: December 3, 2009Applicant: MICROSOFT CORPORATIONInventors: Ruston Panabaker, John Mark Miller, James R. Hamilton, Avi R. Geiger, Robert Patrick Fitzgerald, James Charles Kleewein
-
Publication number: 20090271563Abstract: 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: ApplicationFiled: April 28, 2008Publication date: October 29, 2009Applicant: MICROSOFT CORPORATIONInventors: Yadhu N. Gopalan, William J. Westerinen, James R. Hamilton, John Mark Miller, Vladimir Sadovsky, Robert Patrick Fitzgerald