IP Library Granted Patent US 12681663
Granted Patent B2
US 12681663 · App. 18/889,524 · Granted Jul 14, 2026

Data management system and method of controlling

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 12681663
App. No.
18/889,524
Granted
Jul 14, 2026
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 (68)

1 . A method comprising:

storing a first data object and a second data object at a first side of a row of a data chunk; and

storing a first object header for the first data object and a second object header for the second data object at a second side of the row of the data chunk.

2 . The method of claim 1 , wherein the first side and the second side are at opposite ends of the row of the data chunk.

3 . The method of claim 2 , wherein, among elements comprising the first data object, the second data object, the first object header, and the second object header, the first data object is a closest element to the first side and the first object header is a closest element to the second side.

4 . The method of claim 1 , further comprising:

reading the first object header to determine the first data object is an invalid data object; and

refraining from reading the invalid data object.

5 . The method of claim 1 , wherein:

the first data object and the second data object are two data objects of object data comprising two or more data objects; and

the first object header and the second object header are two object headers of object headers comprising two or more object headers,

the method further comprising:

deleting or aggregating the object data such that invalid data causes the 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.

6 . The method of claim 5 , 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.

7 . The method of claim 5 , 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.

8 . The method of claim 5 , 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.

9 . The method of claim 5 , 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.

10 . A 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 perform:

storing a first data object and a second data object at a first side of a row of a data chunk; and

storing a first object header for the first data object and a second object header for the second data object at a second side of the row of the data chunk.

11 . The system of claim 10 , wherein the first side and the second side are at opposite ends of the row of the data chunk.

12 . The system of claim 11 , wherein, among elements comprising the first data object, the second data object, the first object header, and the second object header, the first data object is a closest element to the first side and the first object header is a closest element to the second side.

13 . The system of claim 10 , wherein the data management node is configured to perform:

reading the first object header to determine the first data object is an invalid data object; and

refraining from reading the invalid data object.

14 . The system of claim 10 , wherein:

the first data object and the second data object are two data objects of object data comprising two or more data objects; and

the first object header and the second object header are two object headers of object headers comprising two or more object headers,

the data management node is configured to perform:

deleting or aggregating the object data such that invalid data causes the 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.

15 . The system of claim 14 , wherein the data management node is configured to perform:

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.

16 . The system of claim 14 , wherein the data management node is configured to perform:

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.

17 . The system of claim 14 , wherein the data management node is configured to perform:

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.

18 . The system of claim 14 , wherein the data management node is configured to perform:

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

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

19 . 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:

storing a first data object and a second data object at a first side of a row of a data chunk; and

storing a first object header for the first data object and a second object header for the second data object at a second side of the row of the data chunk.

20 . The non-transitory computer readable medium of claim 19 , wherein the first side and the second side are at opposite ends of the row of the data chunk.