-
公开(公告)号:US11204912B2
公开(公告)日:2021-12-21
申请号:US17073221
申请日:2020-10-16
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
Abstract: Techniques for using commit coalescing when performing micro-journal-based transaction logging are provided. In one embodiment a computer system can maintain, in a volatile memory, a globally ascending identifier, a first list of free micro-journals, and a second list of in-flight micro-journals. The computer system can further receive a transaction comprising a plurality of modifications to data or metadata stored in the byte-addressable persistent memory, select a micro-journal from the first list, obtain a lock on the globally ascending identifier, write a current value of the globally ascending identifier as a journal commit identifier into a header of the micro-journal, and write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction. The computer system can then commit the micro-journal to the byte-addressable persistent memory, increment the current value of the globally ascending identifier, and release the lock.
-
公开(公告)号:US10198352B2
公开(公告)日:2019-02-05
申请号:US15192946
申请日:2016-06-24
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Rajesh Venkatasubramanian
IPC: G06F12/06
Abstract: Techniques for efficiently swizzling pointers in persistent objects are provided. In one embodiment, a computer system can allocate slabs in a persistent heap, where the persistent heap resides on a byte-addressable persistent memory of the system, and where each slab is a continuous memory segment of the persistent heap that is configured to store instances of an object type used by an application. The system can further store associations between the slabs and their respective object types, and information indicating the locations of pointers in each object type. At the time of a system restart or crash recovery, the system can iterate through each slab and determine, based on the stored associations, the slab's object type. The system can then scan though the allocated objects in the slab and, if the system determines that the object includes any pointers based on the stored pointer location information, can swizzle each pointer.
-
公开(公告)号:US20170344475A1
公开(公告)日:2017-11-30
申请号:US15192946
申请日:2016-06-24
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Rajesh Venkatasubramanian
IPC: G06F12/06
CPC classification number: G06F12/0646 , G06F9/4493 , G06F11/00 , G06F2212/1008
Abstract: Techniques for efficiently swizzling pointers in persistent objects are provided. In one embodiment, a computer system can allocate slabs in a persistent heap, where the persistent heap resides on a byte-addressable persistent memory of the system, and where each slab is a continuous memory segment of the persistent heap that is configured to store instances of an object type used by an application. The system can further store associations between the slabs and their respective object types, and information indicating the locations of pointers in each object type. At the time of a system restart or crash recovery, the system can iterate through each slab and determine, based on the stored associations, the slab's object type. The system can then scan though the allocated objects in the slab and, if the system determines that the object includes any pointers based on the stored pointer location information, can swizzle each pointer.
-
公开(公告)号:US20210034600A1
公开(公告)日:2021-02-04
申请号:US17073221
申请日:2020-10-16
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
IPC: G06F16/23
Abstract: Techniques for using commit coalescing when performing micro-journal-based transaction logging are provided. In one embodiment a computer system can maintain, in a volatile memory, a globally ascending identifier, a first list of free micro-journals, and a second list of in-flight micro-journals. The computer system can further receive a transaction comprising a plurality of modifications to data or metadata stored in the byte-addressable persistent memory, select a micro-journal from the first list, obtain a lock on the globally ascending identifier, write a current value of the globally ascending identifier as a journal commit identifier into a header of the micro-journal, and write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction. The computer system can then commit the micro-journal to the byte-addressable persistent memory, increment the current value of the globally ascending identifier, and release the lock.
-
公开(公告)号:US10445308B2
公开(公告)日:2019-10-15
申请号:US15192937
申请日:2016-06-24
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
Abstract: Techniques for using commit coalescing when performing micro-journal-based transaction logging are provided. In one embodiment a computer system can maintain, in a volatile memory, a globally ascending identifier, a first list of free micro-journals, and a second list of in-flight micro-journals. The computer system can further receive a transaction comprising a plurality of modifications to data or metadata stored in the byte-addressable persistent memory, select a micro-journal from the first list, obtain a lock on the globally ascending identifier, write a current value of the globally ascending identifier as a journal commit identifier into a header of the micro-journal, and write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction. The computer system can then commit the micro-journal to the byte-addressable persistent memory, increment the current value of the globally ascending identifier, and release the lock.
-
公开(公告)号:US20170344595A1
公开(公告)日:2017-11-30
申请号:US15192937
申请日:2016-06-24
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
IPC: G06F17/30
CPC classification number: G06F16/2343 , G06F16/2358 , G06F16/2379
Abstract: Techniques for using commit coalescing when performing micro-journal-based transaction logging are provided. In one embodiment a computer system can maintain, in a volatile memory, a globally ascending identifier, a first list of free micro-journals, and a second list of in-flight micro-journals. The computer system can further receive a transaction comprising a plurality of modifications to data or metadata stored in the byte-addressable persistent memory, select a micro-journal from the first list, obtain a lock on the globally ascending identifier, write a current value of the globally ascending identifier as a journal commit identifier into a header of the micro-journal, and write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction. The computer system can then commit the micro-journal to the byte-addressable persistent memory, increment the current value of the globally ascending identifier, and release the lock.
-
公开(公告)号:US10528436B2
公开(公告)日:2020-01-07
申请号:US15192940
申请日:2016-06-24
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
Abstract: Techniques for using micro-journals to ensure crash consistency of a transactional application are provided. In one embodiment, a computer system can receive a transaction associated with the transactional application, where the transaction includes a plurality of modifications to data or metadata of the transactional application. The computer system can further select a free micro-journal from a pool of micro-journals, where the pool of micro-journals are stored in a byte-addressable persistent memory of the computer system, and where each micro-journal in the pool is configured to record journal entries for a single transaction at a time. The computer system can then write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction and commit the journal entries to the byte-addressable persistent memory.
-
公开(公告)号:US20200004735A1
公开(公告)日:2020-01-02
申请号:US16560951
申请日:2019-09-04
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
IPC: G06F16/23
Abstract: Techniques for using commit coalescing when performing micro-journal-based transaction logging are provided. In one embodiment a computer system can maintain, in a volatile memory, a globally ascending identifier, a first list of free micro-journals, and a second list of in-flight micro-journals. The computer system can further receive a transaction comprising a plurality of modifications to data or metadata stored in the byte-addressable persistent memory, select a micro-journal from the first list, obtain a lock on the globally ascending identifier, write a current value of the globally ascending identifier as a journal commit identifier into a header of the micro-journal, and write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction. The computer system can then commit the micro-journal to the byte-addressable persistent memory, increment the current value of the globally ascending identifier, and release the lock.
-
公开(公告)号:US20170344440A1
公开(公告)日:2017-11-30
申请号:US15192940
申请日:2016-06-24
Applicant: VMware, Inc.
Inventor: Pratap Subrahmanyam , Zongwei Zhou , Xavier Deguillard , Rajesh Venkatasubramanian
Abstract: Techniques for using micro-journals to ensure crash consistency of a transactional application are provided. In one embodiment, a computer system can receive a transaction associated with the transactional application, where the transaction includes a plurality of modifications to data or metadata of the transactional application. The computer system can further select a free micro-journal from a pool of micro-journals, where the pool of micro-journals are stored in a byte-addressable persistent memory of the computer system, and where each micro-journal in the pool is configured to record journal entries for a single transaction at a time. The computer system can then write journal entries into the micro-journal corresponding to the plurality of modifications included in the transaction and commit the journal entries to the byte-addressable persistent memory.
-
-
-
-
-
-
-
-