IP Library Granted Patent US 9,208,080
Granted Patent B2
US 9,208,080 · App. 13/905,235 · Granted Dec 8, 2015

Persistent memory garbage collection

Inventor: Dhruva Chakrabarti (San Jose, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F12/0253G06F12/0246
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,208,080
App. No.
13/905,235
Filed
May 30, 2013
Granted
Dec 8, 2015
Kind
B2
Art Unit
2138
USPC
711/103
Abstract

A technique includes identifying a dependency between a first persistent memory region and at least one other persistent memory region. The technique includes using a process having access to the first persistent memory region to selectively perform garbage collection for the first persistent memory region based at least in part on whether the process has access to the other persistent memory region(s) from which the first persistent memory region depends.

Claims (46)

1. A method comprising:

identifying a dependency between a first persistent memory region and at least one other persistent memory region; and

using a process having access to the first persistent memory region to selectively perform garbage collection for the first persistent memory region based at least in part on whether the process has access to the at least one other persistent memory region from which the first persistent memory region depends.

2. The method of claim 1 , wherein using the process comprises tracing the dependency for each of the at least one other persistent memory region and using the tracing to perform the garbage collection for the first persistent region.

3. The method of claim 2 , wherein the tracing comprises determining whether the process can acquire a lock for reading from and writing to the at least one other persistent memory region.

4. The method of claim 3 , further comprising:

based at least in part on whether the process can acquire the lock for reading and writing, selectively performing a garbage collection for the at least one persistent memory region.

5. The method of claim 1 , wherein

the first persistent memory region and the at least one other persistent memory region are part of a plurality of persistent memory regions;

a read lock is automatically acquired for a persistent memory region of the plurality of persistent memory regions opened in a read mode and a read-write lock is automatically acquired for a persistent memory region of the plurality of persistent memory regions opened in a read-write mode;

the process is part of a plurality of processes;

first and second processes of the plurality of processes are adapted to acquire respective read locks on a given persistent memory region of the plurality of persistent memory regions concurrently; and

the second process is adapted to wait for one of the read lock and the read-write lock on the given persistent memory region to be released in response to the combination of the first process previously acquiring the read lock on the given persistent memory region and the second process attempting to acquire the read-write lock on the given persistent memory region or the combination of the first process previously acquiring the read-write lock on the given persistent memory region and the second process attempting to acquire either the read lock or the read-write lock on the given persistent memory region.

6. The method of claim 1 , further comprising:

using the process to selectively perform the garbage collection for the first persistent memory region based at least in part on whether the process can acquire a read lock or a read-write lock on at least one other persistent memory region.

7. The method of claim 1 , wherein identifying the dependency comprises reading metadata updated by at least one application process accessing at least one of the first memory persistent region and the at least one other persistent memory region.

8. The method of claim 1 , wherein

the first persistent memory region and the at least one other persistent memory region are part of a plurality of persistent memory regions and the first persistent memory region depends from a group of persistent memory regions of the plurality of persistent memory regions; and

using the process comprises using the process to perform garbage collection on the first persistent memory region in response to the process being able to open all of the group of persistent memory regions in a read mode, the method further comprising:

selectively performing garbage collection on a given persistent memory region of the group of persistent memory regions based at least in part on whether the given persistent memory region can be opened in read-write mode.

9. A system comprising:

a persistent memory comprising a first persistent memory region and at least one other persistent memory region from which the first persistent memory region depends;

and

a garbage collector comprising a processor and being associated with a process to access the first persistent memory region, the garbage collector to access the at least one other persistent memory region to trace at least one dependency of the first persistent memory region to the at least one other persistent memory region and perform garbage collection for the first persistent memory region.

10. The system of claim 9 , wherein the garbage collector is adapted to identify the at least one dependency by reading metadata stored in a non-volatile memory.

11. The system of claim 9 , wherein

the first persistent memory region and the at least one other persistent memory region are part of a plurality of persistent memory regions;

a read lock is automatically acquired for a persistent memory region of the plurality of persistent memory regions opened in a read mode and a read-write lock is automatically acquired for a persistent memory region of the plurality of persistent memory regions opened in a read-write mode;

the process is part of a plurality of processes;

first and second processes of the plurality of processes are adapted to acquire read locks on a given persistent memory region of the plurality of persistent memory regions concurrently; and

the second process is adapted to wait for one of the read lock and the read-write lock on the given persistent memory region to be released in response to the combination of the first process previously acquiring the read lock on the given persistent memory region and the second process attempting to acquire the read-write lock on the given persistent memory region or the combination of the first process previously acquiring the read-write lock on the given persistent memory region and the second process attempting to acquire either the read lock or the read-write lock on the given persistent memory region.

12. The system of claim 9 , wherein:

the first persistent memory region and the at least one other persistent memory region are part of a plurality of persistent memory regions and the first persistent memory region depends from a group of persistent memory regions of the plurality of persistent memory regions; and

the garbage collector is adapted to:

perform garbage collection on the first persistent memory region in response to the garbage collector being able to open all of the persistent memory regions of the group of persistent memory regions in a read mode; and

selectively perform garbage collection on a given persistent memory region of the group of persistent memory regions based at least in part on whether the given persistent memory region can be opened in a read-write mode.

13. The system of claim 9 , wherein the persistent memory comprises a non-volatile memory.

14. The system of claim 9 , wherein the processor comprises a central processing unit.

15. An article comprising a non-transitory computer readable storage medium to store instructions that when executed by a computer cause the computer to:

identify a dependency between a first persistent memory region and at least one other persistent memory region from which the first persistent memory region depends; and

use a process having access to the first persistent memory region to selectively perform garbage collection for the first persistent memory region based at least in part on whether the process has access to the at least one other persistent region.

16. The article of claim 15 , the storage medium storing instructions that when executed by the computer cause the computer to trace the dependency for each of the at least one other persistent memory region and use the tracing to perform the garbage collection for the first persistent region.

17. The article of claim 16 , the storage medium storing instructions that when executed by the computer cause the computer to determine whether the process can acquire a lock for reading from and writing to the at least one other persistent memory region.

18. The article of claim 17 , the storage medium storing instructions that when executed by the computer cause the computer to, based at least in part on whether the process can acquire the lock for reading and writing, selectively perform a garbage collection for the at least one persistent memory region.

19. The article of claim 16 , the storage medium storing instructions that when executed by the computer cause the computer to determine whether the process can acquire a lock for reading from the at least one other persistent memory region.

20. The article of claim 16 , the storage medium storing instructions that when executed by the computer cause the computer to, based at least in part on whether the process can acquire the lock for reading from the at least one other persistent memory region, determine whether to skip the garbage collection.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2013
From: CHAKRABARTI, DHRUVA
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 030511/0817 →
Continuity (1)
Related Publication 20140359201A1 · Dec 4, 2014