发明名称 ACCELERATING MULTIVERSION CONCURRENCY CONTROL USING HARDWARE TRANSACTIONAL MEMORY
摘要 Atomically updating shared data in a transactional memory system comprising transactional memory storage and a transactional memory enabled processor. The computer creates a pointer stored in a stable memory location that is used to locate a shared data stored in a second memory location. The computer accesses the shared data and loads the pointer used to locate the accessed shared data into transactional memory storage. The computer updates the accessed shared data using copy-on-write, whereby the updated shared data is stored in a third memory location, and performs the atomic update of the shared data by updating the pointer such that it locates the updated shared data stored in the third memory location.
申请公布号 US2016239410(A1) 申请公布日期 2016.08.18
申请号 US201514623656 申请日期 2015.02.17
申请人 International Business Machines Corporation 发明人 Bhattacharjee Bishwaranjan;Canim Mustafa;Hamedani Mohammad S.
分类号 G06F12/02;G06F9/46 主分类号 G06F12/02
代理机构 代理人
主权项 1. A method for accelerating multi-version concurrency control using a transactional memory enabled processor, the method comprising: providing a multi-version concurrency database, configured for: multiple versions of a shared data record stored on a computer readable storage medium, wherein the multiple versions include committed data records and can include modified but not yet committed data records;version dependent record identifiers, stored on the computer readable storage medium, pointing to the storage locations of the multiple versions of the data records; anda logical pointer, stored in a translation table on the computer readable storage medium, pointing to the data record by which an access request to a version of the data record is translated, via the version dependent record identifiers, to a storage location of the requested version of the data record; beginning, by a computer, a transactional execution; responsive to beginning the transactional execution, accessing, by the computer, a shared data record in the multi-version concurrency database, via the logical pointer for the shared data record stored in the translation table, and loading into transactional memory storage, by the computer, the version dependent record identifier for the committed version of the shared data record; marking as part of the transactional execution write set the version dependent record identifier for the committed version of the shared data record that is loaded into the transactional memory; responsive to loading the version dependent record identifier for the committed version of the shared data record into the transactional memory storage, suspending, by the computer, transactional execution; reading, by the computer, the committed version of the shared data record, whereby the committed version of the shared data record is not read into the transactional memory and is not marked as part of the transactional execution write set; updating, by the computer, the read committed version of the shared data record; storing the updated committed version of the shared data record using copy-on-write, whereby the updated shared data record is stored on the computer readable storage medium as an updated but not yet committed version of the data record in a location pointed to by an associated version dependent record identifier; responsive to storing the updated committed version of the shared data record, resuming by the computer, transactional execution; successfully completing the transaction; and performing, by the computer, an atomic update of the shared data record on the computer readable storage medium by updating the version dependent record identifier for the committed version of the shared data record to correspond to the version dependent record identifier associated with the updated but not yet committed version of the data record stored to the computer readable storage medium.
地址 Armonk NY US