发明名称 |
Multi-row transactions |
摘要 |
Techniques are provided for more efficient multi-row atomic, consistent, isolated and durable (ACID)-compliant transactions with snapshot isolation semantics (or just “multi-row transactions” for short). In some embodiments, the techniques are implemented in a computing system that includes a client application, a lightweight in-memory lease-based lock service, a multi-row transaction orchestrator, and an underlying database system. The transaction orchestrator implements a read protocol and a write protocol that provides support to the client application for carrying out multi-row transactions against the underlying database system irrespective of whether the database system itself supports multi-row transactions. The transaction orchestrator explicitly maintains transaction-level locks obtained from the lease-based lock service as part of the transaction protocol. Further, the transaction orchestrator is tolerant to lock service failure and unavailability without compromising ACID-compliance and snapshot isolation guarantees to the client application. |
申请公布号 |
US8954410(B2) |
申请公布日期 |
2015.02.10 |
申请号 |
US201313958817 |
申请日期 |
2013.08.05 |
申请人 |
Palantir Technologies, Inc. |
发明人 |
Chang Allen;Carrino John Antonio |
分类号 |
G06F7/00;G06F17/00;G06F17/30 |
主分类号 |
G06F7/00 |
代理机构 |
Hickman Palermo Truong Becker et al LLP |
代理人 |
Hickman Palermo Truong Becker et al LLP ;Stone Adam C. |
主权项 |
1. A method comprising:
acquiring, from a lock service, a lock on a row of a database table, the row representing a transaction; after acquiring the lock, writing data to a plurality of database rows as part of the transaction, the plurality of database rows not including the row representing the transaction; querying the lock service to validate the lock after writing the data to the plurality of database rows; attempting to commit the transaction after successfully validating the lock; wherein attempting to commit the transaction comprises attempting to atomically add the row representing the transaction to the database table; wherein the method is performed by one or more computing devices. |
地址 |
Palo Alto CA US |