×

Automatically retrying transactions with split procedure execution

  • US 10,474,645 B2
  • Filed: 02/24/2014
  • Issued: 11/12/2019
  • Est. Priority Date: 02/24/2014
  • Status: Active Grant
First Claim
Patent Images

1. A computer implemented method of running a transaction against a database that allows the transaction to be automatically retried when the transaction fails such that certain transaction failures that cause the transaction to be automatically retried are not visible to an entity that receives data as a result of the execution of the transaction, the method comprising:

  • receiving a transaction to be performed on a database, the transaction comprising a plurality of executable statements and the transaction, when completed, resulting in data being sent to the entity;

    prior to running the database transaction, dividing the plurality of executable statements into at least two sets of statements by performing each of;

    identifying a first set of statements of the transaction, each statement of the first set of statements identified as a statement which, when executed, will cause a change in the database state, will not cause data to be sent to the entity, and which can be automatically and transparently to the entity retried in the event of failure, andidentifying a second set of statements of the transaction, each statement of the second set of statements identified as a statement which, when executed, will result in data being generated to be sent to the entity and which cannot be retried transparently with respect to the entity;

    after dividing the plurality of executable statements into the first and second sets of statements, running the database transaction by executing the first and second sets of statements separately in at least two phases, including;

    in a first phase, prior to executing at least some statements of the second set of statements, executing the first set of statements to change the database state, performing operations to delay execution of at least a portion of the statements in the second set of statements, and storing non-deterministic results of execution of the first set of statements; and

    in a second phase, subsequent to executing one or more statements of the first set of statements, executing again statements in first set of statements necessary to establish flow control and executing the at least a portion of the second set of statements separately from the first set of statements to generate data to be sent to the entity; and

    saving a timestamp and a statement identifier with a saved statement.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×