Patent ID: 9705680
Date: 2017-07-11
CPC Classifications: G06F,H04L

Claim:
1. A method for performing a transaction in a transactional memory environment for performing transactional executions, the transactional memory environment comprising a digest-generating transaction that generates a computed digest and a digest-checking transaction that compares computed digests, the method comprising: identifying, by a computer system, a first indicator, the first indicator signaling a beginning instruction of a digest-generating transaction comprising a first plurality of instructions, the digest-generating transaction suppresses committing memory store data of the digest-generating transaction to memory; identifying, by the computer system, a second indicator associated with the first plurality of instructions, the second indicator signaling an ending instruction of the digest-generating transaction comprising the first plurality of instructions; generating, by the computer system, a first computed digest based on at least one of a first plurality of instructions executed between the beginning instruction of the digest-generating transaction and the ending instruction of the digest-generating transaction, wherein the first computed digest is replicable for an error-free execution of the first plurality of instructions; saving, by the computer system, the first computed digest, as a reliability digest, based on completing the digest-generating transaction; not saving the first computed digest based on an abort of the digest-generating transaction; identifying, by the computer system, a third indicator, the third indicator signaling a beginning instruction of a digest-checking transaction comprising a second plurality of instructions that are identical to the first plurality of instructions; identifying, by the computer system, a fourth indicator associated with the second plurality of instructions, the fourth indicator signaling an ending instruction of the digest-checking transaction comprising the second plurality of instructions; generating, by the computer system, a second computed digest based on at least one of a second plurality of instructions executed between the beginning instruction of the digest-checking transaction and the ending instruction of the digest-checking transaction, wherein the at least one of the second plurality of instructions is identical to the at least one of the first plurality of instructions, and wherein the second computed digest is replicable for an error-free execution of the second plurality of instructions, and wherein the first plurality of instructions and the second plurality of instructions execute in parallel and on different threads, and memory conflicts between the first plurality of instructions and the second plurality of instructions are suppressed; comparing, by the computer system, the second computed digest with the saved reliability digest; based on the second computed digest being equal to the reliability digest, completing the digest-checking transaction and committing the memory store data of the digest-checking transaction to memory; and based on the second computed digest being not equal to the reliability digest, aborting the digest-checking transaction.