IP Library Granted Patent US 12,535,964
Granted Patent B2
US 12,535,964 · App. 17/827,298 · Granted Jan 27, 2026

Systems and methods for hybrid storage

Inventors: Shrihari Sridharan (West Lafayette, IN); Hui Zhang (Campbell, CA); Changho Choi (San Jose, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0644G06F3/0604G06F3/0689G06F16/20G06F16/221G06F16/2282G06F16/258
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,535,964
App. No.
17/827,298
Granted
Jan 27, 2026
Kind
B2
Abstract

Embodiments of the present disclosure are directed to a method for storing and processing data. The method includes identifying a database in a memory of a host device having one or more rows and one or more columns. A partition having a partition size is identified, and the one or more rows of the database is identified based on the partition size. The data stored in the one or more rows is converted into a column-based format, and the data is stored in a computational storage device in the column-based format. The computational storage device is configured to retrieve the data stored in the column-based format, in response to a query, and process the query based on the data.

Claims (52)

1 . A method for storing and processing data, the method comprising:

identifying a database stored in a first memory of a host device, the database having one or more rows and one or more columns, the host device including a first processor coupled to the first memory;

identifying, by the first processor, a partition size;

based on identifying the partition size, identifying, by the first processor, the one or more rows of the database based on the partition size;

converting, by the first processor, data stored in the one or more rows, into a column-based format;

storing the data in a data structure having the partition size, wherein the data is stored in the data structure in the column-based format;

determining, by the first processor, a condition related to the partition size;

storing, by the first processor, second data in the data structure based on determining the condition related to the partition size; and

transmitting, by the first processor, a command to store the data structure in a storage device having a second processor and a second memory, wherein the data in the data structure is stored in the second memory in the column-based format, wherein in response to a query, the second processor of the storage device is configured to retrieve the data stored in the column-based format from the second memory, and process the query based on the data.

2 . The method of claim 1 , wherein the partition size is a multiple of a size of a database page.

3 . The method of claim 1 , wherein the partition size is based on a redundant array of Independent (RAID) stripe size.

4 . The method of claim 1 , wherein in the column-based format, values of one of the one or more columns for the one or more rows are stored contiguously in an address space.

5 . The method of claim 1 , wherein the converting of the data includes generating a database page storing the data in the column-based format.

6 . The method of claim 5 , wherein the database page includes one or more pointers to the one or more columns stored in the database page.

7 . The method of claim 5 further comprising:

encoding the database page, wherein the database page is included in the partition;

determining a second characteristic of the partition; and

generating a second database page based on determining the second characteristic, wherein the second database page stores data in a second row of the database, in the column-based format; and

including the second database page into the partition.

8 . The method of claim 5 further comprising:

encoding the database page, wherein the database page is included in the partition;

determining a second characteristic of the partition; and

based on determining the second characteristic, adding second data stored in a second row of the database, to the database page, in the column-based format.

9 . The method of claim 1 , wherein the database is generated by an application running in the host device, wherein the query is generated by the application.

10 . The method of claim 1 , wherein the second memory of the storage device includes a non-volatile memory.

11 . A system for storing and processing data, the system comprising:

a first processor; and

a first memory, wherein the first memory stores instructions that, when executed by the first processor, cause the first processor to:

identify a database stored in the first memory, the database having one or more rows and one or more columns;

identify a partition size;

based on identifying the partition size, identify the one or more rows of the database based on the partition size;

convert data stored in one or more columns of the one or more rows, into a column-based format, wherein the data stored in the column-based format is associated with the partition;

store the data in a data structure having the partition size, wherein the data is stored in the data structure in the column-based format;

determine a condition related to the partition size:

store second data in the data structure based on determining the condition related to the partition size; and

transmit a command to store the data structure in a storage device having a second processor and a second memory, wherein the data in the data structure is stored in the second memory in the column format, wherein in response to a query, the second processor of the storage device is configured to retrieve the data stored in the column format from the second memory, and process the query based on the data.

12 . The system of claim 11 , wherein the partition size is a multiple of a size of a database page.

13 . The system of claim 11 , wherein the partition size is based on a redundant array of Independent (RAID) stripe size.

14 . The system of claim 11 , wherein in the column-based format, values of one of the one or more columns for the one or more rows are stored contiguously in an address space.

15 . The system of claim 11 , wherein the instructions that cause the first processor to convert the data include instructions that cause the first processor to generate a database page storing the data in the column-based format.

16 . The system of claim 15 , wherein the database page includes one or more pointers to the one or more columns stored in the database page.

17 . The system of claim 15 , wherein the instructions further cause the first processor to:

encode the database page, wherein the database page is included in the partition;

determine a characteristic of the partition; and

generate a second database page based on the determining, wherein the second database page stores data in a second row of the database, in the column-based format; and

include the second database page into the partition.

18 . The system of claim 15 , wherein the instructions further cause the first processor to:

encode the database page, wherein the database page is included in the partition;

determine a characteristic of the partition; and

based on the determining, add second data stored in a second row of the database, to the database page, in the column-based format.

19 . The system of claim 11 , wherein the database is generated by an application executed by the first processor, wherein the query is generated by the application.

20 . The system of claim 11 , wherein the second memory of the storage device includes a non-volatile memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2023
From: SRIDHARAN, SHRIHARI; ZHANG, HUI; CHOI, CHANGHO
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 065321/0693 →
Continuity (2)
Provisional Application 63330218 · Apr 12, 2022
Related Publication 20230325101A1 · Oct 12, 2023
References Cited (21)
US 9575982B1 · Sankara Subramanian · 2017 [cited by examiner]
US 10296462B2 · Loaiza et al. · 2019 [cited by applicant]
US 10311154B2 · Lahiri et al. · 2019 [cited by applicant]
US 11030149B2 · Rupp et al. · 2021 [cited by applicant]
US 11132300B2 · Loh et al. · 2021 [cited by applicant]
US 20060123035A1 · Ivie · 2006 [cited by examiner]
US 20100281004A1 · Kapoor et al. · 2010 [cited by applicant]
US 20110029569A1 · Ganesh et al. · 2011 [cited by applicant]
US 20150347484A1 · Klauke · 2015 [cited by examiner]
US 20170123679A1 · Yoshii · 2017 [cited by examiner]
US 20170293644A1 · Kurokawa · 2017 [cited by examiner]
US 20180232457A1 · López et al. · 2018 [cited by applicant]
US 20190102412A1 · Macnicol et al. · 2019 [cited by applicant]
US 20200042634A1 · Stewart · 2020 [cited by examiner]
US 20210286806A1 · Ahmadi et al. · 2021 [cited by applicant]
US 20210311923A1 · Gohad · 2021 [cited by examiner]
CN 106874437B · 2019 [cited by applicant]
CN 113535729A · 2021 [cited by applicant]
Mihali, C. et al. “The Case for Adding Privacy-Related Offloading to Smart Storage,” SYSTOR '21, Jun. 1-16, 2021, Haifa, Israel, 11 pages. [cited by applicant]
European Search Report for EP Application No. 23165545.7 dated Jun. 15, 2023, 9 pages. [cited by applicant]
Kemper, A. et al., “HyPer: A Hybrid OLTP & OLAP Main Memory Database System Based on Virtual Memory Snapshots,” 2011 IEEE 27 [cited by applicant]