A transaction request is received at a log-based transaction manager, indicating a conflict check delimiter and a read set descriptor indicative of one or more locations from which data is read during the requested transaction. Using the conflict check delimiter, a subset of transaction records stor
A transaction request is received at a log-based transaction manager, indicating a conflict check delimiter and a read set descriptor indicative of one or more locations from which data is read during the requested transaction. Using the conflict check delimiter, a subset of transaction records stored in a particular persistent log to be examined for conflicts prior to committing the requested transaction is identified. In response to determining that none of the read locations of the requested transaction correspond to a write location indicated in the subset of transaction records, a new transaction record is stored in the particular persistent log indicating that the requested transaction has been committed.
대표청구항▼
1. 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 transaction descriptor of a requested transaction from a client, wherein the transaction descriptor comprises at least (a)
1. 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 transaction descriptor of a requested transaction from a client, wherein the transaction descriptor comprises at least (a) respective read signatures indicative of one or more objects from which data is read during the requested transaction, including a first object at a first data store and a second object at a second data store, (b) a first committed state identifier (CSI) determined based at least in part on a first logical timestamp corresponding to a first previously-committed transaction at the first data store and a second logical timestamp corresponding to a second previously-committed transaction at the second data store, and (c) respective write signatures indicative of one or more objects to which data is to be written in response to a commit of the requested transaction;identify, by the log-based transaction manager using the first CSI, a subset of transaction records stored in a particular persistent log to be examined for conflicts prior to committing the requested transaction, wherein the particular persistent log comprises transaction records corresponding to previously-committed transactions associated with one or more data stores including the first and second source data stores,in response to a determination, by the log-based transaction manager, that none of the objects indicated by the read signatures of the requested transaction have been modified by a write operation indicated in the subset of transaction records, accept the requested transaction for commit. 2. The non-transitory computer-accessible storage medium as recited in claim 1, wherein a particular read signature included in the transaction descriptor comprises a first hash value generated from a particular read location of one or more read locations corresponding to the one or more objects from which data is read, and wherein a particular write signature included in the transaction descriptor comprises a second hash value generated from a particular write location of one or more write locations corresponding to the one or more objects to which data is to be written. 3. The non-transitory computer-accessible storage medium as recited in claim 1, wherein the first logical timestamp is retrieved from the first data store immediately before any read within the requested transaction is first issued to the first data store. 4. The non-transitory computer-accessible storage medium as recited in claim 1, wherein the CSI includes the first logical timestamp and the second logical timestamp. 5. The non-transitory computer-accessible storage medium as recited in claim 1, wherein the transaction descriptor comprises a data payload to be written to a first write location, wherein the instructions when executed at the one or more processors: store one or more replicas of a transaction record corresponding to the transaction request subsequent to an acceptance of the requested transaction for commit;provide an indication that the requested transaction has been committed; andinitiate, asynchronously with respect to the indication that the requested transaction has been committed, an operation to propagate the data payload to the first write location. 6. A method, comprising: performing, by one or more computing devices:receiving a transaction descriptor of a requested transaction, wherein the transaction descriptor comprises at least (a) a read set descriptor indicative of one or more objects from which data is read during the requested transaction including a first object in a first data store and a second object in a second data store, (b) a conflict check delimiter determined based at least in part on a first logical timestamp corresponding to a first previously-committed transaction at the first data store and a second logical timestamp corresponding to a second previously-committed transaction at the second data store, and (c) a write set descriptor indicative of one or more objects to which data is to be written in response to a commit of the requested transaction;identifying, using the conflict check delimiter, a subset of transaction records stored in a particular persistent log to be examined for conflicts prior to committing the requested transaction,in response to determining that none of the objects indicated in the read set descriptor were modified by a write operation indicated in the subset of transaction records, accepting the requested transaction for commit. 7. The method as recited in claim 6, wherein the read set descriptor comprises a first hash value generated from a particular read location of one or more read locations corresponding to the one or more objects from which data is read, and wherein the write set descriptor comprises a second hash value generated from a particular write location of one or more write locations corresponding to the one or more objects to which data is to be written. 8. The method as recited in claim 6, wherein the conflict check delimiter comprises a vector including the first logical timestamp the second logical timestamp. 9. The method as recited in claim 6, further comprising performing, by the one or more computing devices: submitting a first request to the first data store by a client-side component of a log-based transaction manager to obtain the first logical timestamp; andsubmitting a second request to the second data store by the client-side component of the log-based transaction manager to obtain the second logical timestamp. 10. The method as recited in claim 9, further comprising performing, by the one or more computing devices: selecting by the client-side component of the log-based transaction manager the first logical timestamp as the conflict check delimiter by determining that the first logical timestamp is smaller than the second logical timestamp. 11. The method as recited in claim 6, wherein the transaction descriptor comprises a data payload to be written to a first write location indicated in the write set descriptor, further comprising performing, by the one or more computing devices: storing one or more copies of a transaction record corresponding to the transaction request subsequent to accepting the requested transaction for commit;providing an indication that the requested transaction has been committed; andscheduling, asynchronously with respect to said providing an indication, an operation to write the data payload to the first write location. 12. The method as recited in claim 6, wherein the one or more objects indicated in the read set descriptor comprise an object located at a first data store, and wherein the one or more objects indicated in the write set descriptor comprise another object located at a different data store. 13. The method as recited in claim 6, further comprising: receiving a second transaction descriptor of a requested read-only transaction, wherein the second transaction descriptor comprises (a) a second conflict check delimiter and (b) a second read set descriptor indicative of one or more read locations from which data is read during the read-only transaction; andin response to determining that at least one read location of the requested read-only transaction corresponds to a write location updated subsequent to an operation indicated by the second conflict check delimiter, providing an indication that the read-only transaction has been rejected. 14. The method as recited in claim 6, further comprising: receiving a second transaction descriptor of a requested write-only transaction, wherein the second transaction descriptor comprises a second write set descriptor indicative of a particular write location to which data is to be written;generating a logical timestamp corresponding to a commit of the write-only transaction;determining that at least one write operation corresponding to a write requested in a particular transaction committed prior to the write-only transaction has not yet been scheduled, andscheduling the at least one write operation. 15. The method as recited in claim 6, wherein at least one descriptor of the read set descriptor and the write set descriptor indicates an object stored in one of: a non-relational database system, a relational database system, a storage service that implements a web services interface allowing access to unstructured data objects, an in-memory database, or an instance of a distributed cache. 16. A system, comprising: one or more computing devices configured to:receive a transaction descriptor of a requested transaction from a client, wherein the transaction descriptor comprises at least (a) a read set descriptor indicative of one or more read locations from which data is read during the requested transaction, including a first location in a first data store and a second location in a second data store, and (b) a conflict check delimiter determined based at least in part on a first logical timestamp corresponding to a first previously-committed transaction at the first data store and a second logical timestamp corresponding to a second previously-committed transaction at the second data store;identify, using the conflict check delimiter, a subset of transaction records stored in a particular persistent log to be examined for conflicts prior to committing the requested transaction; andin response to determining that none of the read locations of the requested transaction correspond to a write location indicated in the subset of transaction records, store a new transaction record in the particular persistent log indicating that the requested transaction has been committed. 17. The system as recited in claim 16, wherein the transaction descriptor comprises a write set descriptor indicating one or more locations to which data is to be written subsequent to a commit of the transaction, wherein the new transaction record comprises an indication of the write set descriptor. 18. The system as recited in claim 17, wherein the one or more computing devices are further configured to: schedule an operation, asynchronous with respect to an insertion of the new transaction record in the particular persistent log, to propagate a write payload indicated in the transaction descriptor to a first write location of the one or more locations of the write set descriptor. 19. The system as recited in claim 16, wherein the read set descriptor comprises a first hash value generated from a particular read location of the one or more read locations. 20. The system as recited in claim 16, wherein the conflict check delimiter comprises a minimum logical time stamp of a plurality of logical time stamps obtained from a plurality of data stores that are read by the requested transaction, including the first and second data stores.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (10)
Corbin, Scott Roger; Shepherd, Joel; Pareek, Alok; McAllister, Chris, Apparatus and method for log based replication of distributed transactions using globally acknowledged commits.
Wang, Rui; Byrne, Peter; Stewart, Leigh M.; Dhamankar, Robin D.; Guo, Qun; Habben, Michael E.; Jiang, Xiaowei, Data change ordering in multi-log based replication.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.