Patents by Inventor Bruce D. Holenstein

Bruce D. Holenstein 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: 10394798
    Abstract: A method is provided for ensuring transactional integrity of a system that includes a first subsystem and a second subsystem. The first subsystem receives a request to process a transaction. The first subsystem sends to the second subsystem the request to process a transaction. Each of the subsystems process the identical request. An indicia engine at each subsystem computes indicia of the outcome of the processing of the identical request. The indicia engine at the second subsystem sends its computed indicia to the first subsystem, and the indicia engine at the first subsystem compares its computed indicia with the indicia received from the second subsystem, and sends a transaction abort directive to the second subsystem when the comparison indicates that the computed indicia of the second subsystem does not match the computed indicia of the first subsystem, thereby indicating a lack of transactional integrity in one or both of the first and second subsystems.
    Type: Grant
    Filed: December 7, 2018
    Date of Patent: August 27, 2019
    Assignee: Gravic, Inc.
    Inventors: Bruce D. Holenstein, John R. Hoffmann, Paul J. Holenstein, Wilbur H. Highleyman, Dylan R. Holenstein
  • Patent number: 10303699
    Abstract: An automated method is provided for replacing a currently operating data replication engine with a new data replication engine. A currently operating data replication engine reports its audit trail position upon stopping. The new data replication engine starts and is positioned at an audit trail position which is prior to the reported stopped audit trail position by an amount of the audit trail which corresponds to a source database transaction abort timer. The position of the new data replication engine to the stopped audit trail position defines a position window. Audit trail transactions are processed in the position window by the new data replication engine by ignoring transactions which committed or aborted in the position window, and replicating remaining transactions in the position window from the source database to the target database. The new data replication engine replicates all transactions that are started after the stopped audit trail position.
    Type: Grant
    Filed: December 12, 2017
    Date of Patent: May 28, 2019
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, Bruce D. Holenstein, John R. Hoffmann, Wilbur H. Highleyman
  • Patent number: 10296759
    Abstract: A method is provided for controlling whether transactions applied against a database go forward or are aborted on a transaction processing system. A tracking engine identifies an uncompleted transaction to be joined, joins the uncompleted transaction, and collects selected attributes of the joined uncompleted transaction. The collected attributes of the joined uncompleted transaction are compared against rules in a rules engine to determine whether the joined uncompleted transaction goes forward or is aborted. Alternatively, the joined uncompleted transaction is automatically modified so that the collected attributes are in compliance with the rules in the rules engine, thereby allowing the joined uncompleted transaction to go forward and be applied against the database of the transaction processing system.
    Type: Grant
    Filed: July 12, 2018
    Date of Patent: May 21, 2019
    Assignee: RPX Corporation
    Inventors: Paul J. Holenstein, John R. Hoffmann, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 10216820
    Abstract: An extractor and an applier of a database replication system are configured to perform the functions of resolving constraint violations for replicated database transactions. The extractor replicates changes made at the source database to the target database. An applier immediately applies the changes to the target database that do not cause a constraint violation. The applier also performs the remaining functions, including detecting database changes that cause constraint violations, subsequent processing of these detected database changes, and performing a commit for the database transaction when the constraint violations are resolved.
    Type: Grant
    Filed: December 12, 2017
    Date of Patent: February 26, 2019
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, John R. Hoffmann, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 10176243
    Abstract: Systems and methods are provided to log changes to a database on a transaction processing system. A tracking engine identifies an uncompleted transaction to be joined, joins the uncompleted transaction, and collects non-durable attributes of the joined uncompleted transaction. A logging engine makes durable the non-durable attributes by logging the non-durable attributes.
    Type: Grant
    Filed: July 12, 2018
    Date of Patent: January 8, 2019
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, John R. Hoffmann, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 10152506
    Abstract: A method is provided to verify the computational results of a transaction processing system that includes a parent node a plurality of child nodes. The parent node sends to at least two child nodes an identical request to process a transaction. The transaction is allowed to modify an application's state only if the validity of the result of the processing of the transaction is verified across participating child nodes. Otherwise, the transaction is aborted.
    Type: Grant
    Filed: July 3, 2018
    Date of Patent: December 11, 2018
    Assignee: Gravic, Inc.
    Inventors: John R. Hoffmann, Bruce D. Holenstein, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 10095730
    Abstract: An apparatus is provided to verify the computational results of a transaction processing system utilizing a parent node and a plurality of child nodes in a high-availability and scalable fashion. A transaction is executed in an identical manner in two or more participating child nodes, and the transaction is allowed to modify an application's state (e.g., commit) only if the validity of the result of the processing of the transaction is verified across the majority of the participating child nodes. Otherwise, the transaction is aborted. The child nodes may exist within a cloud provider or across multiple cloud providers.
    Type: Grant
    Filed: February 7, 2018
    Date of Patent: October 9, 2018
    Assignee: Gravic, Inc.
    Inventors: John R. Hoffmann, Bruce D. Holenstein, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 10025845
    Abstract: A method is provided for logging non-durable attributes of an uncompleted transaction to a persistent storage medium. A tracking engine identifies an uncompleted transaction to be joined, joins the uncompleted transaction, and collects non-durable attributes of the joined uncompleted transaction. The non-durable attributes of the joined uncompleted transaction are made durable by logging them to the persistent storage medium.
    Type: Grant
    Filed: December 8, 2015
    Date of Patent: July 17, 2018
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, John R. Hoffmann, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 10025946
    Abstract: A method is provided for controlling whether transactions applied against a database go forward or are aborted on a transaction processing system. A tracking engine identifies an uncompleted transaction to be joined, joins the uncompleted transaction, and collects one or more attributes of the joined uncompleted transaction. The collected one or more attributes become available as a result of the joining of the uncompleted transaction. The collected one or more attributes of the joined uncompleted transaction are compared against rules in a rules engine to determine whether the joined uncompleted transaction goes forward or is aborted. Alternatively, the joined uncompleted transaction is automatically modified so that the collected attributes are in compliance with the rules in the rules engine, thereby allowing the joined uncompleted transaction to go forward and be applied against the database of the transaction processing system.
    Type: Grant
    Filed: December 8, 2015
    Date of Patent: July 17, 2018
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, John R. Hoffmann, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 10013452
    Abstract: An identical request to process a transaction is initiated at a trusted subsystem of a system and a new subsystem of the system. Computed indicia of the transaction from both subsystems are compared at the trusted subsystem. An error condition is generated that indicates a logic error in the new subsystem when the comparison indicates that the computed indicia of the new subsystem does not match the computed indicia of the trusted subsystem. The error condition indicates a lack of transactional integrity in the new subsystem. The new subsystem may be taken out of service after the error condition is generated.
    Type: Grant
    Filed: February 14, 2018
    Date of Patent: July 3, 2018
    Assignee: Gravic, Inc.
    Inventors: Bruce D. Holenstein, John R. Hoffmann, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 9996578
    Abstract: An identical request to process a transaction is initiated at multiple nodes or multiple applications, and the results are committed. Subsequent to the commit, indicia regarding the outcome of the processing are compared, and the transaction is rolled back if the comparison indicates that the processing was incorrect.
    Type: Grant
    Filed: February 12, 2018
    Date of Patent: June 12, 2018
    Assignee: Gravic, Inc.
    Inventors: Bruce D. Holenstein, John R. Hoffmann, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 9985823
    Abstract: A system is provided for mitigating partially correlated failure modes to increase application availability. The system includes a plurality of nodes connected by a computer network, each node configured to run an instance of the same application, a failure analysis engine configured to maintain current availability statistics for the nodes of the system, calculate current mean time to failure (MTTF) for the system as a function of the current time from the availability statistics, and compare the current MTTF to a plurality of threshold values, each of the threshold values corresponding to one or more actions to be taken to increase application availability, and a failure prevention engine that performs the one or more actions to increase application availability.
    Type: Grant
    Filed: June 17, 2016
    Date of Patent: May 29, 2018
    Assignee: Gravic, Inc.
    Inventors: Bruce D. Holenstein, Wilbur H. Highleyman, Paul J. Holenstein
  • Patent number: 9922074
    Abstract: A method is provided to verify the computational results of a transaction processing system utilizing cloud resources in a high-availability and scalable fashion. A transaction is allowed to modify an application's state only if the validity of the result of the processing of the transaction is verified across the majority of the participating child nodes in the cloud. Otherwise, the transaction is aborted.
    Type: Grant
    Filed: September 11, 2017
    Date of Patent: March 20, 2018
    Assignee: Gravic, Inc.
    Inventors: John R. Hoffmann, Bruce D. Holenstein, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 9904721
    Abstract: Methods and apparatus are provided for performing source-side merging of distributed transactions prior to replication, wherein a distributed transaction occurs at a plurality of nodes. A first node includes a database and an audit trail that stores database change events from the database of the first node. One or more other nodes each include a database and an audit trail that stores database change events from the database of the respective node. In use, a transaction is initiated which updates the database of the first node and the database at one or more of the other nodes. The database updates are captured in the audit trails of the respective nodes involved with the transaction. The first node receives and merges the database change events from the audit trails of each of the nodes involved in the transaction. The merged database change events are replicated via a replication engine only from the first node.
    Type: Grant
    Filed: November 16, 2015
    Date of Patent: February 27, 2018
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, Bruce D. Holenstein, John R. Hoffmann
  • Patent number: 9830223
    Abstract: A corrupted database is returned to a correct state by rolling forward or backward through a change queue and applying changes to the database in a selective manner. Changes that did not cause the corruption are applied without modification when rolling forward or are skipped when rolling backward. Changes that caused corruption are addressed when rolling forward, such as by being ignored or modified and then applied. Changes that caused corruption are corrected when rolling backward.
    Type: Grant
    Filed: January 26, 2015
    Date of Patent: November 28, 2017
    Assignee: Intel Corporation
    Inventors: Paul J. Holenstein, John R. Hoffmann, Jonathan M. Ziegler, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 9804935
    Abstract: Both redo operations and undo operations are provided for returning a database that is corrupted to a correct state. When corruption of the database is detected, an automatic selection is made of one or more operations from the redo operations and undo operations for returning the database that is corrupted to a correct state. The selected one or more redo and undo operations are then performed on the database, thereby returning the database that is corrupted to a correct state.
    Type: Grant
    Filed: January 26, 2015
    Date of Patent: October 31, 2017
    Assignee: Intel Corporation
    Inventors: Bruce D. Holenstein, Paul J. Holenstein, John R. Hoffmann, Wilbur H. Highleyman
  • Patent number: 9760598
    Abstract: A method is provided to verify the computational results of a transaction processing system utilizing cloud resources. A transaction is allowed to modify an application's state only if the validity of the result of the processing of the transaction is verified across the majority of the participating child nodes in the cloud. Otherwise, the transaction is aborted.
    Type: Grant
    Filed: June 20, 2017
    Date of Patent: September 12, 2017
    Assignee: Gravic, Inc.
    Inventors: Bruce D. Holenstein, John R. Hoffmann, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 9734190
    Abstract: A method is provided to verify the computational results of a transaction processing system. A transaction is allowed to modify an application's state only if the validity of the result of the processing of the transaction is verified. Otherwise, the transaction is aborted.
    Type: Grant
    Filed: December 7, 2015
    Date of Patent: August 15, 2017
    Assignee: Gravic, Inc.
    Inventors: Bruce D. Holenstein, John R. Hoffmann, Paul J. Holenstein, Wilbur H. Highleyman, Dylan Holenstein
  • Patent number: 9569473
    Abstract: Transactions are applied against a database on a transaction processing system. A tracking engine identifies an uncompleted transaction to be joined, joins the uncompleted transaction, and collects one or more non-durable attributes of the joined uncompleted transaction. Collected attributes of the joined uncompleted transaction are compared against rules in a rules engine that are applicable to the transaction to determine whether an applicable rule in the rules engine is met. The joined uncompleted transaction is allowed to go forward and be applied against the database of the transaction processing system using a synchronous replication engine when the applicable rule is met, and an asynchronous replication engine when the applicable rule is not met. Alternatively, the joined uncompleted transaction is allowed to go forward using a replication engine that replicates using encryption when the applicable rule is met, or replicates unencrypted when the applicable rule is not met.
    Type: Grant
    Filed: December 8, 2015
    Date of Patent: February 14, 2017
    Assignee: Gravic, Inc.
    Inventors: Paul J. Holenstein, John R. Hoffmann, Bruce D. Holenstein, Wilbur H. Highleyman
  • Patent number: 9330363
    Abstract: Locks placed on corresponding objects held in a plurality of databases located at different nodes in a network during replication are released in accordance with fairness criteria. Propagation delays are determined between a transaction initiating node and one or more other nodes in the network. An object is locked during a transaction being executed at the transaction initiating node. Corresponding objects are locked at one or more other nodes in the network that are manipulated as a result of the replication Upon determining that the object locks should be released, the propagation delays are used to determine when to release the object locks so that all of the object locks at the one or more other nodes are released in accordance with the fairness criteria.
    Type: Grant
    Filed: June 22, 2012
    Date of Patent: May 3, 2016
    Assignee: Intel Corporation
    Inventors: Paul J. Holenstein, Bruce D. Holenstein, Wilbur H. Highleyman