IP Library Granted Patent US 10,282,228
Granted Patent B2
US 10,282,228 · App. 14/316,630 · Granted May 7, 2019

Log-based transaction constraint management

Inventor: Allan Henry Vermeulen (Corvallis, OR)
Assignee: Amazon Technologies, Inc.
G06F9/466G06F17/30156G06F17/30303
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,282,228
App. No.
14/316,630
Granted
May 7, 2019
Kind
B2
Abstract

A transaction request is received at a log-based transaction manager, indicating a logical constraint to be satisfied before the corresponding transaction is committed. The transaction manager identifies a subset of transaction records stored in a persistent change log that are to be examined to evaluate the logical constraint. Based at least in part on the result of a comparison of one or more constraint-related data signatures included in the transaction request with corresponding data signatures in the subset of transaction records, a decision is made to commit the requested transaction.

Claims (38)

1. A system, comprising:

one or more computing devices to:

receive, at a log-based transaction manager instantiated for one or more data stores, a requested transaction from a client, wherein the requested transaction includes a transaction descriptor that indicates a first logical constraint for the requested transaction specified by the client to be checked to determine whether the requested transaction is to be committed based at least in part on (a) a constraint type from a plurality of different supported constraint types, and (b) one or more data signatures;

determine, by the log-based transaction manager using at least some transaction records corresponding to committed transactions stored in a particular persistent log, that the requested transaction is committable with respect to a set of concurrency control requirements distinct from the first client-specified logical constraint;

identify, by the log-based transaction manager, a subset of transaction records stored in the particular persistent log to be examined for checking the first client-specified logical constraint,

compare, by the log-based transaction manager, contents of the one or more data signatures with other data signatures stored in the subset of transaction records;

determine, by the log-based transaction manager based at least in part on a result of one or more comparisons, that the first client-specified logical constraint is satisfied by the requested transaction; and

commit, by the log-based transaction manager, the requested transaction in response to determining that the requested transaction is committable with respect to the set of concurrency requirements and the first client-specified logical constraint is satisfied by the requested transaction.

2. The system as recited in claim 1 , wherein the constraint type of the first client-specified logical constraint is de-duplication, and wherein, to determine that the first client-specified logical constraint is satisfied, the one or more computing devices are further configured to verify that a particular data signature of the one or more data signatures indicated in the transaction descriptor does not match a data signature stored in the subset of transaction records.

3. The system as recited in claim 1 , wherein the constraint type of the first client-specified logical constraint is commit sequencing, and wherein, to determine that the first client-specified logical constraint is satisfied, the one or more computing devices are further configured to verify that a particular data signature of the one or more data signatures indicated in the transaction descriptor matches a data signature stored in the subset of transaction records.

4. The system as recited in claim 1 , wherein the transaction descriptor indicates, corresponding to a second logical constraint specified by the client to be checked to determine whether the requested transaction is to be committed, a second constraint type that differs from the constraint type of the first client-specified logical constraint.

5. The system as recited in claim 1 , wherein the transaction descriptor includes at least a first delimiter to be used to identify the subset of transaction records to be examined to check the first client-specified logical constraint.

6. A method, comprising:

performing, by one or more computing devices:

receiving, at a log-based transaction manager, a requested transaction from a client, wherein the requested transaction includes a transaction descriptor indicating a first logical constraint for the requested transaction specified by the client that indicates one or more data signatures and a constrain type selected from a plurality of different supported constraint types, and the log-based transaction manager is configured to enforce one or more commit requirements for transactions distinct from the first client-specified logical constraint;

identifying a subset of transaction records stored in a particular persistent log to be examined for checking the first client-specified logical constraint,

comparing contents of the one or more data signatures indicated in the transaction descriptor with one or more data signatures stored in the subset of transaction records;

determining, based at least in part on a result of said comparing, that the first client-specified logical constraint is met by the requested transaction; and

in response to determining that one or more commit requirements of the requested transaction have been met, and that the first client-specified logical constraint is met, committing the requested transaction.

7. The method as recited in claim 6 , wherein the first client-specified logical constraint comprises a de-duplication constraint, wherein the one or more data signatures indicated in the transaction descriptor include a particular de-duplication signature representing a location to which a write operation of the requested transaction is directed, and wherein said determining that the first client-specified logical constraint is met by the requested transaction includes verifying that the particular de-duplication signature does not match another de-duplication signature stored in the subset of transaction records.

8. The method as recited in claim 6 , wherein the first client-specified logical constraint comprises a commit-sequencing constraint, wherein the one or more data signatures indicated in the transaction descriptor comprise a sequencing signature, and wherein said determining that the client-specified logical constraint is met by the requested transaction comprises verifying that the particular sequencing signature matches another sequencing signature stored in the subset of transaction records.

9. The method as recited in claim 6 , wherein the transaction descriptor indicates a second logical constraint specified by the client for the requested transaction.

10. The method as recited in claim 9 , wherein the first client-specified logical constraint comprises a de-duplication constraint and the second client-specified logical constraint comprises a commit sequencing constraint.

11. The method as recited in claim 6 , wherein the one or more commit requirements comprise a concurrency control requirement.

12. The method as recited in claim 6 , wherein the transaction descriptor includes at least a first delimiter to be used to identify the subset of transaction records to be examined to check the first client-specified logical constraint.

13. The method as recited in claim 12 , wherein the first delimiter comprises a client-specified logical timestamp corresponding to a commit of a particular transaction, wherein the particular transaction was committed prior to said receiving the transaction descriptor.

14. The method as recited in claim 12 , wherein the transaction descriptor indicates a second client-specified logical constraint, and wherein the transaction descriptor comprises a different delimiter to be used to identify a different subset of transaction records to be examined to check the second client-specified logical constraint.

15. The method as recited in claim 6 , wherein the transaction descriptor comprises a particular write signature indicative of a targeted write location of the requested transaction, wherein the one or more data signatures comprise a particular de-duplication signature corresponding to the targeted write location, wherein the particular de-duplication signature differs from the particular write signature.

16. The method as recited in claim 6 , wherein the requested transaction includes one or more reads from a data store comprising one of: (a) a relational database, (b) a non-relational database, (c) an in-memory database, (d) a storage service implementing a web service interface, (e) a file system, or (f) an instance of a distributed cache.

17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:

receive, at a log-based transaction manager, a requested transaction from a client, wherein the transaction includes a transaction descriptor indicating a first logical constraint for the requested transaction specified by the client that indicates one or more data signatures and a constrain type selected from a plurality of different supported constraint types, and the log-based transaction manager is configured to enforce one or more commit requirements for transactions distinct from the first client-specified logical constraint;

identify a subset of transaction records stored in a particular persistent log to be examined for checking the first client-specified logical constraint,

compare contents of the one or more data signatures indicated in the transaction descriptor with one or more data signatures stored in the subset of transaction records;

determine, based at least in part on a result of comparing the contents of the one or more data signatures, that the first client-specified logical constraint is met by the requested transaction; and

in response to a determination that one or more commit requirements of the requested transaction have been met, and that the first client-specified logical constraint is met, commit the requested transaction.

18. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 17 , wherein the first client-specified logical constraint comprises one of: a de-duplication constraint, or a commit sequencing constraint.

19. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 17 , wherein the one or more one or more commit requirements comprise a concurrency control requirement.

20. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 17 , wherein the transaction descriptor includes at least a first delimiter to be used to identify the subset of transaction records to be examined to check the first client-specified logical constraint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2015
From: VERMEULEN, ALLAN HENRY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 034860/0274 →
Continuity (1)
Related Publication 20150378775A1 · Dec 31, 2015
Cited By (3)
US 12,217,177 US 12,657,210 US 12,675,684