IP Library Granted Patent US 12,147,699
Granted Patent B2
US 12,147,699 · App. 17/790,419 · Granted Nov 19, 2024

Data management system and method of controlling preliminary class

Inventors: Vinod Kumar Daga (Cupertino, CA); Angel Aviles (San Jose, CA); Venkata Bhanu Prakash Gollapudi (Pleasanton, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0655G06F3/0604G06F3/0611G06F3/0619G06F3/0635G06F3/0652G06F3/067G06F3/0679G06F13/1668
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 12,147,699
App. No.
17/790,419
Granted
Nov 19, 2024
Kind
B2
Abstract

Provided is a method of data storage in a data storage system, the method including identifying object headers respectively corresponding to object data, storing the object data at one side of an allocated data chunk, and storing the object headers at another side of the allocated data chunk.

Claims (77)

1. A method of data storage in a data storage system, the method comprising:

identifying object headers respectively corresponding to object data;

storing the object data, comprising a first data object and a second data object, at one side of an allocated data chunk, the allocated data chunk comprising a single line of blocks; and

storing the object headers, comprising a first object header for the first data object and a second object header for the second data object, at another side of the allocated data chunk.

2. The method of claim 1 , further comprising:

deleting or aggregating the object data such that invalid data causes the allocated data chunk to be fragmented;

reading one of the object headers to determine a corresponding one of the object data is a valid data object; and

moving the valid data object to a new allocated data chunk.

3. The method of claim 1 , further comprising:

reading one of the object headers to determine a corresponding one of the object data is an invalid data object; and

refraining from reading the invalid data object.

4. The method of claim 1 , further comprising:

reading the object headers to determine that the object data are valid object data;

determining that the valid object data correspond to a single object;

concatenating the valid object data; and

writing the valid object data as the single object to a drive.

5. The method of claim 1 , further comprising:

staging the object data into a contiguous buffer in a persistent memory;

determining the contiguous buffer has reached a threshold; and

sequentially writing data corresponding to the object data to a drive.

6. The method of claim 1 , further comprising:

determining one of the object headers has an attribute set to long; and

staging the one of the object headers in an active block in a persistent memory and writing the active block to a drive; or

directly writing the active block to the drive.

7. The method of claim 1 , further comprising:

determining one of the object headers has an attribute set to short; and

caching the one of the object headers in a persistent memory.

8. A data storage system configured to store data, the data storage system comprising a storage node comprising a key-value store for storing data, and a data management node for sending or retrieving the data from the storage node, wherein the data management node is configured to:

identify object headers respectively corresponding to object data;

store the object data, comprising a first data object and a second data object, at one side of an allocated data chunk, the allocated data chunk comprising a single line of blocks; and

store the object headers, comprising a first object header for the first data object and a second object header for the second data object, at another side of the allocated data chunk.

9. The data storage system of claim 8 , wherein the data management node is further configured to:

delete or aggregate the object data such that invalid data causes the allocated data chunk to be fragmented;

read one of the object headers to determine a corresponding one of the object data is a valid data object; and

move the valid data object to a new allocated data chunk.

10. The data storage system of claim 8 , wherein the data management node is further configured to:

read one of the object headers to determine a corresponding one of the object data is an invalid data object; and

refrain from reading the invalid data object.

11. The data storage system of claim 8 , wherein the data management node is further configured to:

read the object headers to determine that the object data are valid object data;

determine that the valid object data correspond to a single object;

concatenate the valid object data; and

write the valid object data as the single object to a drive.

12. The data storage system of claim 8 , wherein the data management node is further configured to:

stage the object data into a contiguous buffer in a persistent memory;

determine the contiguous buffer has reached a threshold; and

sequentially write data corresponding to the object data to a drive.

13. The data storage system of claim 8 , wherein the data management node is further configured to:

determine one of the object headers has an attribute set to long; and

stage the one of the object headers in an active block in a persistent memory and write the active block to a drive; or

directly write the active block to the drive.

14. The data storage system of claim 8 , wherein the data management node is further configured to:

determine one of the object headers has an attribute set to short; and

cache the one of the object headers in a persistent memory.

15. A non-transitory computer readable medium implemented on a distributed object store system, the non-transitory computer readable medium having computer code that, when executed on a processor, implements a method of data storage by a data management node, the method comprising:

identifying object headers respectively corresponding to object data;

storing the object data, comprising a first data object and a second data object, at one side of an allocated data chunk, the allocated data chunk comprising a single line of blocks; and

storing the object headers, comprising a first object header for the first data object and a second object header for the second data object, at another side of the allocated data chunk.

16. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of data storage by causing the data management node to:

delete or aggregate the object data such that invalid data causes the allocated data chunk to be fragmented;

read one of the object headers to determine a corresponding one of the object data is a valid data object; and

move the valid data object to a new allocated data chunk.

17. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of data storage by causing the data management node to:

read one of the object headers to determine a corresponding one of the object data is an invalid data object; and

refrain from reading the invalid data object.

18. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of data storage by causing the data management node to:

read the object headers to determine that the object data are valid object data;

determine that the valid object data correspond to a single object;

concatenate the valid object data; and

write the valid object data as the single object to a drive.

19. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of data storage by causing the data management node to:

stage the object data into a contiguous buffer in a persistent memory;

determine the contiguous buffer has reached a threshold; and

sequentially write data corresponding to the object data to a drive.

20. The non-transitory computer readable medium of claim 15 , wherein the computer code, when executed by the processor, further implements the method of data storage by causing the data management node to:

determine one of the object headers has an attribute set to short; and

cache the one of the object headers in a persistent memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2023
From: DAGA, VINOD KUMAR; AVILES, ANGEL; GOLLAPUDI, VENKATA BHANU PRAKASH
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064521/0030 →
Continuity (4)
Provisional Application 62969623 · Feb 3, 2020
Provisional Application 62969650 · Feb 3, 2020
Provisional Application 62970158 · Feb 4, 2020
Related Publication 20230046216A1 · Feb 16, 2023