IP Library Granted Patent US 11,886,334
Granted Patent B2
US 11,886,334 · App. 17/831,295 · Granted Jan 30, 2024

Optimizing spool and memory space management

Inventors: Hari Kannan (Sunnyvale, CA); Ying Gao (San Jose, CA); Boris Feigin (San Francisco, CA)
Assignee: PURE STORAGE, INC.
G06F12/0246G06F3/061G06F3/0605G06F3/0647G06F3/0652G06F3/0653G06F3/0688G06F11/3034G06F2212/7205
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 11,886,334
App. No.
17/831,295
Granted
Jan 30, 2024
Kind
B2
Abstract

A storage system has NVRAM (non-volatile random-access memory), solid-state storage memory, and a processor to perform a method. The method includes allocating virtual units of NVRAM with mapping of the virtual units to physical memory. The method includes writing data having various sizes into allocated first virtual units of memory and into allocated second virtual units of memory. The first virtual units of memory each include a first contiguous physical addressed amount of NVRAM having a first size. The second virtual units of memory each include an amount of NVRAM having a second size. The method includes relocating at least some of the data such that a portion of the allocated second virtual units of memory become available for the allocating.

Claims (42)

1. A method, comprising:

allocating, by a memory manager in a storage system, virtual units of NVRAM (nonvolatile random-access memory) corresponding to physical memory;

writing data having various sizes into allocated first virtual units each comprising a first contiguous physical addressed amount of NVRAM having a first size, and into allocated second virtual units of memory each comprising an amount of NVRAM having a second size; and

relocating at least some of the data such that a portion of the allocated second virtual units of memory become available for the allocating.

2. The method of claim 1 , wherein the relocating comprises:

defragmenting the NVRAM via movement of some of the first virtual units of memory.

3. The method of claim 1 , wherein the second size is larger than the first size.

4. The method of claim 1 , wherein the relocating comprises:

moving data in the NVRAM corresponding to portions of the second virtual units of memory, to free up contiguous space in the NVRAM.

5. The method of claim 1 , further comprising:

tracking correspondence between the first virtual units, the second virtual units and physical memory addresses in the NVRAM.

6. The method of claim 1 , wherein the writing data into allocated first virtual units of memory and allocated second virtual units of memory is performed by a plurality of authorities in the storage system, each authority owning a range of data and handling data in the range of data using first virtual units of memory and second virtual units of memory allocated to the authority by the memory manager.

7. The method of claim 5 , wherein the writing operates at a logical layer in the storage system, the relocating operates at a device layer, in the storage system, and the tracking translates between the logical layer and the device layer.

8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

allocating, by a memory manager in a storage system, virtual units of NVRAM (nonvolatile random-access memory) with mapping of the virtual units to physical memory;

writing data having various sizes into allocated first virtual units of memory each comprising a first contiguous physical addressed amount of NVRAM having a first size, and into allocated second virtual units of memory each comprising an amount of NVRAM having a second size; and

relocating at least some of the data such that a portion of the allocated second virtual units of memory become available for the allocating.

9. The computer-readable media of claim 8 , wherein the relocating comprises:

defragmenting the NVRAM via movement of some of the first virtual units of memory.

10. The computer-readable media of claim 8 , wherein the second size is larger than the first size.

11. The computer-readable media of claim 8 , wherein the relocating comprises:

moving data in the NVRAM corresponding to portions of the second virtual units of memory, to free up contiguous space in the NVRAM.

12. The computer-readable media of claim 8 , further comprising:

tracking correspondence between the first virtual units, the second virtual units and physical memory addresses in the NVRAM.

13. The computer-readable media of claim 8 , wherein the writing data into allocated first virtual units of memory and allocated second virtual units of memory is performed by a plurality of authorities in the storage system, each authority owning a range of data and handling data in the range of data using first virtual units of memory and second virtual units of memory allocated to the authority by the memory manager.

14. The computer-readable media of claim 12 , wherein the writing operates at a logical layer in the storage system, the relocating operates at a device layer, in the storage system, and the tracking translates between the logical layer and the device layer.

15. A storage system, comprising:

NVRAM (nonvolatile random-access memory);

solid-state storage memory; and

a processor, to perform a method, comprising:

allocating virtual units of NVRAM with mapping of the virtual units to physical memory;

writing data having various sizes into allocated first virtual units of memory each comprising a first contiguous physical addressed amount of NVRAM having a first size, and into allocated second virtual units of memory each comprising an amount of NVRAM having a second size; and

relocating at least some of the data such that a portion of the allocated second virtual units of memory become available for the allocating.

16. The storage system of claim 15 , wherein the defragmenting comprises:

relocating data in the NVRAM corresponding to a plurality of the first virtual units of memory, to free up contiguous space in the NVRAM.

17. The storage system of claim 15 , wherein the defragmenting comprises:

relocating data in the NVRAM, to free up a plurality of contiguous spaces in the NVRAM, each comprising the contiguous physical addressed amount of NVRAM having the second, larger size.

18. The storage system of claim 15 , wherein the relocating comprises:

defragmenting the NVRAM via movement of some of the first virtual units of memory.

19. The storage system of claim 15 , further comprising:

tracking correspondence between the first virtual units, the second virtual units and physical memory addresses in the NVRAM.

20. The storage system of claim 19 , wherein the writing data into allocated first virtual units of memory and allocated second virtual units of memory is to be performed in a logical layer by a plurality of authorities in the storage system, each authority owning a range of data and handling data in the range of data, the relocating is to operate at a device layer, in the storage system, and the tracking is to translate between the logical layer and the device layer.

Continuity (7)
Continuation In Part 17235630 · Apr 20, 2021
Continuation In Part 16524491 · Jul 29, 2019
Continuation 15359225 · Nov 22, 2016
Provisional Application 62415398 · Oct 31, 2016
Provisional Application 62395344 · Sep 15, 2016
Provisional Application 62367083 · Jul 26, 2016
Related Publication 20220300413A1 · Sep 22, 2022