IP Library Granted Patent US 11,416,148
Granted Patent B2
US 11,416,148 · App. 16/795,562 · Granted Aug 16, 2022

System and method of providing atomicity to large writes to persistent memory

Inventors: Angel Benedicto Aviles, Jr. (San Jose, CA); Vinod Kumar Daga (Santa Clara, CA); Vamsikrishna Sadhu (Santa Clara, CA); Tejas Hunsur Krishna (Sunnyvale, CA)
G06F3/0619G06F3/0631G06F3/0685
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,416,148
App. No.
16/795,562
Granted
Aug 16, 2022
Kind
B2
Abstract

A system and a method are disclosed that provides atomicity for large data writes to persistent memory of an object storage system. A segment of persistent memory is allocated to an application. The persistent memory includes non-volatile memory that is accessible in a random access, byte-addressable manner. The segment of persistent memory is associated with first and second bits of a bitmap. The first bit is set indicating that the segment of persistent memory has been allocated. Data is received from the application for storage in the segment of persistent memory, and the second bit is set indicating that data in the segment of persistent memory has been finalized and is ready for storage in a storage medium that is different from persistent memory. The atomicity of the data in persistent memory may be determined based on the first bit and the second bit being set.

Claims (45)

1. An object storage system, comprising:

a storage medium;

persistent memory comprising non-volatile memory that is accessible in a random access, byte-addressable manner, the persistent memory being different from the storage medium; and

a controller coupled to the storage medium and the persistent memory, the controller being configured to:

receive data from an application for storage in a segment of the persistent memory allocated to the application, the segment of the persistent memory associated with a first bit and a second bit of a bitmap, the first bit being different from the second bit, and the first bit indicating that the segment of the persistent memory is allocated to the application;

set the second bit of the bitmap to indicate that data in the segment of the persistent memory is ready for storage in the storage medium; and

determine that the data in the persistent memory has atomicity based on the first bit and the second bit.

2. The object storage system of claim 1 , wherein the controller is further configured to allocate the segment of the persistent memory to the application in response to a request received from the application.

3. The object storage system of claim 2 , wherein the controller is further configured to store the data in the segment of the persistent memory in the storage medium based on the second bit of the bitmap being set.

4. The object storage system of claim 3 , wherein the persistent memory further comprises a plurality of segments each having a same size as another segment of the plurality of segments, and

wherein each segment is associated with a corresponding first bit and a corresponding second bit of the bitmap.

5. The object storage system of claim 4 , wherein the bitmap comprises a first bitmap region and a second bitmap region, and

wherein the first bit associated with each of the plurality of segments are located in the first bitmap region and the second bit associated with each of the plurality of segments are located in the second bitmap region.

6. The object storage system of claim 1 , wherein the persistent memory further comprises random access memory having a power supply with battery backup, a non-volatile dual inline memory (NVDIMM) or a storage class memory (SCM).

7. The object storage system of claim 1 , wherein the storage medium comprises a solid-state drive (SSD) or a hard drive (HD).

8. An object storage system, comprising:

a storage medium;

persistent memory comprising non-volatile memory that is accessible in a random access, byte-addressable manner, the persistent memory being different from the storage medium; and

a controller coupled to the storage medium and the persistent memory, the controller being configured to:

allocate a segment of the persistent memory to an application, the segment of the persistent memory being associated with a first bit and a second bit of a bitmap, the first bit being different from the second bit;

set the first bit of the bitmap to indicate that the segment of the persistent memory is allocated;

receive data from the application for storage in the segment of the persistent memory;

set the second bit of the bitmap to indicate that data in the segment of the persistent memory is ready for storage in the storage medium; and

determine that the data in the persistent memory has atomicity based on the first bit and the second bit.

9. The object storage system of claim 8 , wherein the controller is further configured to store the data in the segment of the persistent memory in the storage medium based on the second bit of the bitmap being set.

10. The object storage system of claim 8 , wherein the persistent memory further comprises a plurality of segments each having a same size as another segment of the plurality of segments, and

wherein each segment is associated with a corresponding first bit and a corresponding second bit of the bitmap.

11. The object storage system of claim 10 , wherein the bitmap comprises a first bitmap region and a second bitmap region, and

wherein the first bit associated with each of the plurality of segments are located in the first bitmap region and the second bit associated with each of the plurality of segments are located in the second bitmap region.

12. The object storage system of claim 8 , wherein the persistent memory further comprises random access memory having a power supply with battery backup.

13. The object storage system of claim 8 , wherein the persistent memory comprises a non-volatile dual inline memory (NVDIMM) or a storage class memory (SCM).

14. The object storage system of claim 8 , wherein the storage medium comprises a solid-state drive (SSD) ora hard drive (HD).

15. A method to provide atomicity for data writes to an object storage system, the method comprising:

allocating a segment of a persistent memory to an application, the persistent memory comprising non-volatile memory that is accessible in a random access, byte-addressable manner, and the segment of the persistent memory being associated with a first bit and a second bit of a bitmap, the first bit being different from the second bit;

setting the first bit of the bitmap to indicate that the segment of the persistent memory is allocated;

receiving data from the application for storage in the segment of the persistent memory;

setting the second bit of the bitmap to indicate that data in the segment of the persistent memory is ready for storage in a storage medium that is different from the persistent memory; and

determining that the data in the persistent memory has atomicity based on the first bit and the second bit.

16. The method of claim 15 , further comprising storing the data in the segment of the persistent memory in the storage medium based on the second bit of the bitmap being set.

17. The method of claim 15 , wherein the persistent memory further comprises a plurality of segments each having a same size as another segment of the plurality of segments, and

wherein each segment is associated with a corresponding first bit and a corresponding second bit of the bitmap.

18. The method of claim 17 , wherein the bitmap comprises a first bitmap region and a second bitmap region, and

wherein the first bit associated with each of the plurality of segments are located in the first bitmap region and the second bit associated with each of the plurality of segments are located in the second bitmap region.

19. The method of claim 15 , wherein the persistent memory further comprises random access memory having a power supply with battery backup, a non-volatile dual inline memory (NVDIMM) or a storage class memory (SCM).

20. The method of claim 15 , wherein the storage medium comprises a solid-state drive (SSD) or a hard drive (HD).

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2021
From: STELLUS TECHNOLOGIES, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 055122/0093 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2020
From: STELLUS TECHNOLOGIES, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 054798/0626 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2020
From: AVILES, ANGEL BENEDICTO, JR.; DAGA, VINOD KUMAR; SADHU, VAMSIKRISHNA; HUNSUR KRISHNA, TEJAS
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 054510/0447 →
Continuity (2)
Provisional Application 62959869 · Jan 10, 2020
Related Publication 20210216219A1 · Jul 15, 2021