SYSTEM AND METHOD FOR RECONCILING TRANSACTIONAL AND NON-TRANSACTIONAL OPERATIONS IN KEY-VALUE STORES
First Claim
1. A method comprising:
- storing, in a database system, data that is accessible to both transaction-enabled clients and native clients;
executing a transaction initiated by a transaction-enabled client, by;
performing read operations that belong to the transaction; and
delaying performance of write operations that belong to the transaction;
while the transaction is executing, allowing native clients to perform operations on items managed by the database system;
in response to a request to commit the transaction, determining whether any conflict exists between the transaction and any native database operation performed by the database system during execution of the transaction;
wherein determining whether any conflict exists includes determining whether a native database operation, executed by the database system between the start and the end of the transaction, wrote to an item that was read by or will be written to by the transaction;
responsive to determining that a conflict exists, aborting the transaction;
responsive to determining that no conflict exists, performing the write operations that belong to the transaction and committing the transaction;
wherein the method is performed by one or more computing devices.
4 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for detecting and resolving conflicts between native and transactional applications sharing a common database. As transactions are received at the database system, a timestamp is assigned to both the start and the commit time of a transaction, where the timestamps are synchronized with a logical clock in the database system. When the database system receives a native operation, the database system increments the time in the logical clock and assigns that updated time to the native operation. When the transaction is ready to commit, database system may determine conflicts between native and transactional operations. If the database system determines that a native operation conflicts with a transactional operation, database system will abort the transaction.
19 Citations
15 Claims
-
1. A method comprising:
-
storing, in a database system, data that is accessible to both transaction-enabled clients and native clients; executing a transaction initiated by a transaction-enabled client, by; performing read operations that belong to the transaction; and delaying performance of write operations that belong to the transaction; while the transaction is executing, allowing native clients to perform operations on items managed by the database system; in response to a request to commit the transaction, determining whether any conflict exists between the transaction and any native database operation performed by the database system during execution of the transaction; wherein determining whether any conflict exists includes determining whether a native database operation, executed by the database system between the start and the end of the transaction, wrote to an item that was read by or will be written to by the transaction; responsive to determining that a conflict exists, aborting the transaction; responsive to determining that no conflict exists, performing the write operations that belong to the transaction and committing the transaction; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable medium storing instructions which, when executed by one or more processors, cause performance of a method comprising the steps of:
-
storing, in a database system, data that is accessible to both transaction-enabled clients and native clients; executing a transaction initiated by a transaction-enabled client, by; performing read operations that belong to the transaction; and delaying performance of write operations that belong to the transaction; while the transaction is executing, allowing native clients to perform operations on items managed by the database system; in response to a request to commit the transaction, determining whether any conflict exists between the transaction and any native database operation performed by the database system during execution of the transaction; wherein determining whether any conflict exists includes determining whether a native database operation, executed by the database system between the start and the end of the transaction, wrote to an item that was read by or will be written to by the transaction; responsive to determining that a conflict exists, aborting the transaction; responsive to determining that no conflict exists, performing the write operations that belong to the transaction and committing the transaction. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a mediator system, executed by one or more processors; a transaction-enabled client operatively coupled to the mediator system; a database system operatively coupled to the mediator system, wherein the database system includes a database server and one or more storage devices; wherein the database system includes a native interface and a transactional interface; wherein the mediator system is configured to; receive a first request to start a transaction for the transaction-enabled client; respond to the request by; performing read operations that belong to the transaction; and delaying performance of write operations that belong to the transaction; receive a second request to commit the transaction; respond to the second request by performing the steps of; causing the database system to determine whether any conflict exists between the transaction and any native database operation performed by the database system during execution of the transaction; responsive to determining that a conflict exists, causing the database system to abort the transaction; responsive to determining that no conflict exists, performing the write operations that belong to the transaction and causing the database system to commit the transaction; wherein the database server allows native clients to perform operations on items managed by the database system while the transaction is executing.
-
Specification