IP Library Granted Patent US 12,657,191
Granted Patent B2
US 12,657,191 · App. 17/881,550 · Granted Jun 16, 2026

Systems and methods for processing database queries via a computational storage device

Inventors: Yang Seok Ki (Palo Alto, CA); Changho Choi (San Jose, CA); Yangwook Kang (San Jose, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F16/2455G06F16/2471G06F16/273
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,657,191
App. No.
17/881,550
Granted
Jun 16, 2026
Kind
B2
Abstract

Systems and methods for processing a database query from a device are disclosed. A first command is received in response to the database query. In response to the first command, a storage device is signaled for scanning data in a database object. The signaling of the storage device may include: transmitting a second command for configuring the storage device based on the database query; transmitting a third command for executing a scan of the data in the database object; and transmitting a fourth command for reading an output of the scan, wherein the output is responsive to the database query.

Claims (44)

1 . A method for processing a database query from a device, the method comprising:

loading one or more programs to a first processor of a computational storage device;

receiving, by a database management system (DBMS) of a computing device having a second processor, a first database query associated with a first database object;

identifying, by the DBMS, a first type of data associated with the first database object; and

in response to identifying the first type of data:

identifying an address of the computational storage device storing the first database object;

based on identifying the address of the computational storage device storing the first database object:

transmitting by a device driver of the computing device a first command to the one or more programs for configuring the computational storage device based on the first database query;

transmitting by the device driver a second command to the one or more programs, wherein the first processor of the computational storage device executes the one or more programs and scans a first data in the first database object based on the second command and generates an output of the scan; and

transmitting by the device driver a third command for reading the output of the scan, wherein the output is responsive to the database query.

2 . The method of claim 1 further comprising:

providing the output to a client.

3 . The method of claim 1 , wherein the configuring of the computational storage device includes allocating a region of a second memory of the computational storage device for use for the scan of the data.

4 . The method of claim 3 further comprising:

identifying a physical address associated with the first database object; and

transmitting a fourth command to the computational storage device for retrieving data from the physical address, into the region of the second memory.

5 . The method of claim 4 , wherein the first database object is a file, wherein the identifying the physical address includes identifying the physical address mapped to the file.

6 . The method of claim 3 , wherein the output is stored in the region of the second memory.

7 . The method of claim 1 further comprising receiving a request from a gateway to process the first database query by the computational storage device, wherein the request is based on a status of the computational storage device.

8 . The method of claim 7 , wherein the gateway is configured to select the computational storage device based on the status.

9 . A system for processing a database query from a client, the system comprising:

a first computational storage device having a first processing circuit;

a second computational storage device having a second processing circuit;

a processor; and

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

load one or more programs onto the first processing circuit of the first computational storage device;

provide to a database managing system (DBMS) a first database query associated with a first database object;

identify, via the DBMS, a first type of data associated with the first database object; and

in response to identifying the first type of data:

identify an address of a selected computational storage device from the first computational storage device and the second computational storage device storing the first database object;

based on identifying the selected computational storage device storing the first database object:

transmit by a device driver a first command to the one or more programs for configuring the selected computational storage device based on the database query;

transmit by the device driver a second command to the one or more programs, wherein a corresponding processing circuit of the selected computational storage device is designed to execute the one or more programs and scan a first data in the first database object based on the second command and generate an output of the scan; and

transmit by the device driver a third command for reading the output of the scan, wherein the output is responsive to the database query.

10 . The system of claim 9 , wherein the instructions further cause the processor to:

provide the output to the client.

11 . The system of claim 9 , wherein the configuring of the selected computational storage device includes allocating a region of a second memory of the selected computational storage device for use for the scan of the data.

12 . The system of claim 11 , wherein the output is stored in the region of the second memory.

13 . The system of claim 9 , wherein the instructions further cause the processor to:

identify a physical address associated with the first database object; and

transmit a fourth command to the selected computational storage device for retrieving data from the physical address, into a region of a second memory.

14 . The system of claim 13 , wherein the first database object is a file, wherein the identifying the physical address includes identifying the physical address mapped to the file.

15 . The system of claim 9 further comprising a gateway configured to generate a request to process the first database query by the selected computational storage device, wherein the request is based on a status of the selected computational storage device.

16 . The system of claim 15 , wherein the gateway is configured to select the selected computational storage device based on the status.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2022
From: KI, YANG SEOK; CHOI, CHANGHO; KANG, YANGWOOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 061375/0097 →
Continuity (2)
Provisional Application 63339861 · May 9, 2022
Related Publication 20230359624A1 · Nov 9, 2023
References Cited (72)
US 7660793B2 · Indeck et al. · 2010 [cited by applicant]
US 7895151B2 · Shau et al. · 2011 [cited by applicant]
US 8244718B2 · Chamdani et al. · 2012 [cited by applicant]
US 8458129B2 · Surlaker et al. · 2013 [cited by applicant]
US 8561037B2 · Wallach et al. · 2013 [cited by applicant]
US 9063974B2 · Aingaran · 2015 [cited by examiner]
US 9075710B2 · Talagala · 2015 [cited by examiner]
US 9424315B2 · Chamdani et al. · 2016 [cited by applicant]
US 9569477B1 · McSweeney et al. · 2017 [cited by applicant]
US 9936020B2 · Leggette · 2018 [cited by examiner]
US 10394746B2 · Kachare et al. · 2019 [cited by applicant]
US 10528599B1 · Pandis · 2020 [cited by examiner]
US 10565014B2 · Bolkhovitin et al. · 2020 [cited by applicant]
US 10909114B1 · Virtuoso · 2021 [cited by examiner]
US 10922189B2 · Swallow · 2021 [cited by examiner]
US 10936587B2 · Sirohi · 2021 [cited by examiner]
US 11061889B2 · Chong · 2021 [cited by examiner]
US 11074261B1 · Pandis · 2021 [cited by examiner]
US 11093496B1 · Bhatia · 2021 [cited by examiner]
US 11144290B2 · Azimi et al. · 2021 [cited by applicant]
US 11586630B2 · Lee · 2023 [cited by examiner]
US 11816103B1 · Goel · 2023 [cited by examiner]
US 12050620B2 · Sonawane · 2024 [cited by examiner]
US 12135712B2 · Ramesh · 2024 [cited by examiner]
US 20030200282A1 · Arnold · 2003 [cited by examiner]
US 20030236577A1 · Clinton · 2003 [cited by examiner]
US 20040187006A1 · Trapp · 2004 [cited by applicant]
US 20050187977A1 · Frost · 2005 [cited by applicant]
US 20050246443A1 · Yao et al. · 2005 [cited by applicant]
US 20100005067A1 · Howard et al. · 2010 [cited by applicant]
US 20100005077A1 · Krishnamurthy · 2010 [cited by examiner]
US 20100262633A1 · Bhattacharjee · 2010 [cited by examiner]
US 20110099533A1 · Clinton · 2011 [cited by examiner]
US 20120137365A1 · Lee · 2012 [cited by examiner]
US 20130110862A1 · Chen · 2013 [cited by examiner]
US 20130159316A1 · Egan · 2013 [cited by examiner]
US 20130173971A1 · Zimmerman · 2013 [cited by examiner]
US 20130275656A1 · Talagala · 2013 [cited by examiner]
US 20140095534A1 · Aingaran · 2014 [cited by examiner]
US 20140123316A1 · Leggette · 2014 [cited by examiner]
US 20140143266A1 · Bice · 2014 [cited by examiner]
US 20140310232A1 · Plattner et al. · 2014 [cited by applicant]
US 20150046679A1 · Gathala et al. · 2015 [cited by applicant]
US 20150058353A1 · Sorkin et al. · 2015 [cited by applicant]
US 20150154225A1 · Fauser · 2015 [cited by examiner]
US 20150363113A1 · Rahman · 2015 [cited by examiner]
US 20160062954A1 · Ruff · 2016 [cited by examiner]
US 20180097908A1 · Ayyagari et al. · 2018 [cited by applicant]
US 20180121297A1 · Swallow · 2018 [cited by examiner]
US 20180150514A1 · Willems · 2018 [cited by examiner]
US 20180285418A1 · Petropoulos · 2018 [cited by examiner]
US 20200050694A1 · Avalani · 2020 [cited by examiner]
US 20200097210A1 · Chang · 2020 [cited by examiner]
US 20210182064A1 · Kara et al. · 2021 [cited by applicant]
US 20210216459A1 · Benhanokh · 2021 [cited by examiner]
US 20210271680A1 · Lee et al. · 2021 [cited by applicant]
US 20210397567A1 · Kang et al. · 2021 [cited by applicant]
US 20220156150A1 · Peake et al. · 2022 [cited by applicant]
US 20220342601A1 · Daoud · 2022 [cited by examiner]
US 20230161771A1 · Lee · 2023 [cited by examiner]
US 20230185804A1 · Jakschitsch · 2023 [cited by examiner]
US 20240160610A1 · An · 2024 [cited by examiner]
WO WO2017101478A1 · 2017 [cited by applicant]
WO WO2017101505A1 · 2017 [cited by applicant]
WO 2020133391A1 · 2020 [cited by applicant]
EPO Extended European Search Report dated Oct. 4, 2023, issued in European Patent Application No. 23171286.0 (10 pages). [cited by applicant]
EPO Extended European Search Report dated Oct. 16, 2023, issued in European Patent Application No. 23171293.6 (10 pages). [cited by applicant]
Choi, Won Gi et al., “OurRocks: Offloading Disk Scan Directly to GPU in Write-Optimized Database System,” IEEE Transactions on Computers, vol. 70, No. 11, 2021, pp. 1831-1844. [cited by applicant]
Chiu, Steve C., “Processor-Embedded Distributed Storage for High-Performance I/O,” Northwestern University, Jun. 2004, 193 pages. [cited by applicant]
US Office Action dated Mar. 11, 2025, issued in U.S. Appl. No. 17/881,378 (12 pages). [cited by applicant]
US Final Office action dated Oct. 17, 2024, issued in U.S. Appl. No. 17/881,378 (11 pages). [cited by applicant]
US Final Office Action dated Oct. 20, 2025, issued in U.S. Appl. No. 17/881,378 (11 pages). [cited by applicant]