IP Library › Granted Patent US 12,360,802
Granted Patent B2
US 12,360,802 · App. 17/359,495 · Granted Jul 15, 2025

Systems and method for batching requests in computational devices

Inventors: Oscar P. Pinto (San Jose, CA); Matthew Bryson (Los Gatos, CA); Vishwanath Maram (San Jose, CA); Son T. Pham (San Ramon, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F9/4881G06F2209/482
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,360,802
App. No.
17/359,495
Granted
Jul 15, 2025
Kind
B2
Abstract

A system is described. The system may include a processor. Software may run on the processor to build a batch request, which may include at least a first request and a second request. The system may also include a storage device and a computational storage unit associated with the storage device, which may be configured to execute the batch request.

Claims (49)

1. A system, comprising:

a chassis;

a processor in the chassis;

software configured to run on the processor and to build a batch request for an application, the batch request including at least a first request and a second request;

a storage device in the chassis; and

a computational storage unit in the chassis associated with the storage device, the computational storage unit configured to process the batch request using data stored on the storage device received from the application.

2. The system according to claim 1 , wherein the computational storage unit is configured to receive the batch request from the application running on the processor and to return a batch result of the batch request to the application based at least in part on the first request and the second request.

3. The system according to claim 1 , wherein the software includes request add software to add the first request to the batch request.

4. The system according to claim 1 , wherein the batch request includes one of a serial structure, a parallel structure, or a hybrid structure.

5. The system according to claim 1 , wherein:

the software includes a first software; and

the system further comprises second software configured to send the batch request to the computational storage unit.

6. The system according to claim 1 , wherein the first request and the second request are included in the batch request based at least in part on the first request and the second request being related.

7. The system according to claim 1 , wherein the computational storage unit includes:

a receiver to receive the batch request from the application running on the processor;

a parser to parse the batch request into at least the first request and the second request;

a graph constructor to construct a directed graph from at least the first request and the second request;

a scheduler to schedule the first request and the second request for execution based at least in part on the directed graph; and

hardware to execute at least the first request.

8. A computational storage unit, comprising:

a receiver to receive a batch request from an application running on a processor in a chassis;

a parser to parse the batch request into at least a first request and a second request;

a graph constructor to construct a directed graph from at least the first request and the second request;

a scheduler to schedule the first request and the second request for execution based at least in part on the directed graph;

hardware to execute the first request based at least in part on the scheduler; and

a transmitter to send a batch result of the batch request to the application running on the processor based at least in part on the first request and the second request,

wherein the computational storage unit is in the chassis.

9. The computational storage unit according to claim 8 , further comprising second hardware to execute the second request.

10. The computational storage unit according to claim 8 , further comprising a verifier to verify that the directed graph is acyclic.

11. The computational storage unit according to claim 8 , wherein the scheduler is configured to schedule the first request to execute based at least in part on the directed graph indicating that the first request is independent of the second request.

12. The computational storage unit according to claim 8 , wherein the scheduler is configured to schedule the first request to execute based at least in part on a completion of the second request and the directed graph indicating that the first request depends on the second request.

13. A method, comprising:

receiving, at a software, a batch create request from an application to create a batch request;

receiving, at the software, a first add request from the application to add a first request to the batch request;

receiving, at the software, a second add request from the application to add a second request to the batch request; and

storing, by the software, the batch request,

wherein the software is separate from the application.

14. The method according to claim 13 , wherein receiving, at the software, the second add request from the application to add the second request to the batch request includes receiving, at the software, the second add request from the application to add the second request to the batch request in series with the first request.

15. The method according to claim 13 , wherein receiving, at the software, the second add request from the application to add the second request to the batch request includes receiving, at the software, the second add request from the application to add the second request to the batch request in parallel with the first request.

16. The method according to claim 13 , wherein receiving, at the software, the first add request from the application to add the first request to the batch request includes:

receiving, at the software, from the application, an identifier of an input buffer for the first request; and

receiving, at the software, from the application, an identifier of an output buffer for the first request.

17. The method according to claim 13 , further comprising configuring, by the software, the batch request.

18. The method according to claim 17 , wherein configuring, by the software, the batch request includes setting, by the software, a parameter of the batch request to a value.

19. The method according to claim 13 , wherein the batch request is independent of a hardware of a storage device or a computational storage unit associated with the storage device.

20. The method according to claim 13 , wherein a computational storage unit is configured to execute the batch request on behalf of the application on a first data and to execute the batch request on behalf of a second application on a second data.

21. The method according to claim 13 , wherein:

the first request is to process a first data into a second data; and

the second request is to process the second data into a third data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2023
From: PINTO, OSCAR P.; BRYSON, MATTHEW; MARAM, VISHWANATH; PHAM, SON T.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064340/0883 →
Continuity (5)
Provisional Application 63144469 · Feb 1, 2021
Provisional Application 63142485 · Jan 27, 2021
Provisional Application 63141970 · Jan 26, 2021
Provisional Application 63073922 · Sep 2, 2020
Related Publication 20220066821A1 · Mar 3, 2022
References Cited (146)
US 5805777A · Kuchta · 1998 [cited by applicant]
US 6976255B1 · Clark et al. · 2005 [cited by applicant]
US 7315807B1 · Lavallee et al. · 2008 [cited by applicant]
US 7433931B2 · Richoux · 2008 [cited by applicant]
US 7801931B2 · Tunar et al. · 2010 [cited by applicant]
US 7937703B2 · Bethea · 2011 [cited by examiner]
US 8381004B2 · Elnozahy et al. · 2013 [cited by applicant]
US 8615570B2 · Brewis et al. · 2013 [cited by applicant]
US 8726299B1 · Bromley et al. · 2014 [cited by applicant]
US 8904072B2 · Lee · 2014 [cited by applicant]
US 8943504B2 · Vijayarajan · 2015 [cited by examiner]
US 9203627B2 · Edstrom et al. · 2015 [cited by applicant]
US 9398016B1 · Chakraborty et al. · 2016 [cited by applicant]
US 9406082B2 · Smedberg et al. · 2016 [cited by applicant]
US 9596135B1 · Thomas et al. · 2017 [cited by applicant]
US 9626120B1 · Jia et al. · 2017 [cited by applicant]
US 10162793B1 · Bshara et al. · 2018 [cited by applicant]
US 10303382B1 · Chu et al. · 2019 [cited by applicant]
US 10359953B2 · Cargnini et al. · 2019 [cited by applicant]
US 10394746B2 · Kachare et al. · 2019 [cited by applicant]
US 10404811B2 · Ly · 2019 [cited by examiner]
US 10412187B2 · Busayarat et al. · 2019 [cited by applicant]
US 10476936B1 · Retnakumari et al. · 2019 [cited by applicant]
US 10521114B2 · Thomas · 2019 [cited by applicant]
US 10621114B1 · Bshara et al. · 2020 [cited by applicant]
US 10637962B2 · Gay et al. · 2020 [cited by applicant]
US 10771340B2 · Ballapuram · 2020 [cited by applicant]
US 10795726B2 · Fujii · 2020 [cited by examiner]
US 10802753B2 · Kabra et al. · 2020 [cited by applicant]
US 10838905B2 · Zou et al. · 2020 [cited by applicant]
US 10846096B1 · Chung et al. · 2020 [cited by applicant]
US 10860511B1 · Thompson et al. · 2020 [cited by applicant]
US 10877750B1 · Connolly et al. · 2020 [cited by applicant]
US 11294576B2 · Khan et al. · 2022 [cited by applicant]
US 11334382B2 · Bernat · 2022 [cited by examiner]
US 11474974B2 · Lutz · 2022 [cited by examiner]
US 11507298B2 · Yang et al. · 2022 [cited by applicant]
US 11630921B2 · Sinha · 2023 [cited by examiner]
US 11687498B2 · Trika et al. · 2023 [cited by applicant]
US 20030093572A1 · Laux et al. · 2003 [cited by applicant]
US 20040220918A1 · Scriffignano · 2004 [cited by examiner]
US 20050132341A1 · Lanzatella et al. · 2005 [cited by applicant]
US 20070276924A1 · Newton et al. · 2007 [cited by applicant]
US 20080004887A1 · Brunswig et al. · 2008 [cited by applicant]
US 20080279161A1 · Stirbu et al. · 2008 [cited by applicant]
US 20110066676A1 · Kleyzit · 2011 [cited by examiner]
US 20110185295A1 · Kashida · 2011 [cited by applicant]
US 20120079172A1 · Yoshida · 2012 [cited by applicant]
US 20120152576A1 · Bassinger et al. · 2012 [cited by applicant]
US 20120162234A1 · Blinzer et al. · 2012 [cited by applicant]
US 20130173662A1 · Kaplinger · 2013 [cited by examiner]
US 20140143778A1 · Gopal et al. · 2014 [cited by applicant]
US 20140310332A1 · Huang et al. · 2014 [cited by applicant]
US 20150319246A1 · Ishizaka · 2015 [cited by applicant]
US 20160012128A1 · Siebler et al. · 2016 [cited by applicant]
US 20160054931A1 · Romanovsky et al. · 2016 [cited by applicant]
US 20160328344A1 · Jose et al. · 2016 [cited by applicant]
US 20170249088A1 · Thomas · 2017 [cited by applicant]
US 20180063145A1 · Cayton et al. · 2018 [cited by applicant]
US 20180352038A1 · Sathyanarayana et al. · 2018 [cited by applicant]
US 20190037280A1 · Yang et al. · 2019 [cited by applicant]
US 20190349281A1 · Oztaskent et al. · 2019 [cited by applicant]
US 20200012439A1 · Khan et al. · 2020 [cited by applicant]
US 20200050480A1 · Cao et al. · 2020 [cited by applicant]
US 20200057578A1 · Benisty et al. · 2020 [cited by applicant]
US 20200081640A1 · Enz et al. · 2020 [cited by applicant]
US 20200117517A1 · Costa et al. · 2020 [cited by applicant]
US 20200167098A1 · Shah et al. · 2020 [cited by applicant]
US 20200183582A1 · Kachare et al. · 2020 [cited by applicant]
US 20200192592A1 · Song et al. · 2020 [cited by applicant]
US 20200201575A1 · Mizrahi · 2020 [cited by applicant]
US 20200301898A1 · Samynathan et al. · 2020 [cited by applicant]
US 20200310694A1 · Gao et al. · 2020 [cited by applicant]
US 20200379781A1 · Rachapudi et al. · 2020 [cited by applicant]
US 20210026560A1 · Pillai et al. · 2021 [cited by applicant]
US 20210247922A1 · Song et al. · 2021 [cited by applicant]
US 20210303159A1 · Ke · 2021 [cited by applicant]
US 20210377117A1 · Kanevsky et al. · 2021 [cited by applicant]
US 20220058137A1 · Xu et al. · 2022 [cited by applicant]
US 20220188028A1 · Mesnier et al. · 2022 [cited by applicant]
US 20220236911A1 · Jones · 2022 [cited by applicant]
US 20220295255A1 · Karampatsis et al. · 2022 [cited by applicant]
US 20230244499A1 · Gupta et al. · 2023 [cited by applicant]
CN 102929813B · 2016 [cited by applicant]
CN 109254873A · 2019 [cited by applicant]
EP 3964956A1 · 2022 [cited by applicant]
KR 20120071060A · 2012 [cited by applicant]
KR 20140001970A1 · 2014 [cited by applicant]
KR 20170121661A · 2017 [cited by applicant]
KR 20180106822A · 2018 [cited by applicant]
KR 20200068564A · 2020 [cited by applicant]
TW 200622673A · 2006 [cited by applicant]
TW 201214288A · 2012 [cited by applicant]
TW 201324352A · 2013 [cited by applicant]
TW 202102976A · 2021 [cited by applicant]
WO 2002097610A1 · 2002 [cited by applicant]
Office Action for U.S. Appl. No. 17/234,780, mailed Jan. 5, 2023. [cited by applicant]
Anandan, Sabby et al., “Industry Paper: Spring XD—A Modular Distributed Stream and Batch Processing System,” DEBS '15: Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems, Jun. 2015, p… [cited by applicant]
Carbone, Paris et al., “Apache Flink™: Stream and Batch Processing in a Single Engine,” Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, vol. 36, No. 4, 2015, pp. 28-38. [cited by applicant]
European Extended Search Report for Application No. 21190626.8, mailed Jan. 28, 2022. [cited by applicant]
European Extended Search Report for Application No. 21212137.0, mailed Apr. 28, 2022. [cited by applicant]
Fisher, Mark et al., “Spring XD Guide”, 1.3.3.BUILD-SNAPSHOT, 2013, 400 pages. [cited by applicant]
NVM Express, Inc., “NVM Express TM over Fabrics Revision 1.1,” Oct. 22, 2019, pp. 1-83, XP055877791, Retrieved from the Internet: URL:https://nvmexpress.org/wp-content/uploads/NVMe-over-Fabrics-1.1-2019.10.22-Ratified.p… [cited by applicant]
Office Action for U.S. Appl. No. 17/495,810, mailed Oct. 17, 2022. [cited by applicant]
Torabzadehkashi, Mahdi, et al. “Computational Storage: An Efficient and Scalable Platform for Big Data and HPC Applications,” Journal of Big Data, vol. 6, No. 1, 2019, pp. 1-29. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/495,810, mailed Apr. 14, 2023. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/234,780, mailed Aug. 17, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/234,780, mailed Dec. 22, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/495,810, mailed Oct. 5, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/502,023, mailed Oct. 5, 2023. [cited by applicant]
Bates, Stephen, “Accelerating RocksDB with Eideticom's NoLoad NVMe-based Computational Storage Processor,” Storage Developer Conference 2019, Sep. 2019, retrieved from the Internet: URL:https://www.snia.org/sites/defaul… [cited by applicant]
Chambers, Bill et al., “Spark, The Definitive Guide: Big Data Processing Made Simple”, first 400 pages, Feb. 2018, retrieved from the Internet: URL:https://analyticsdata24.files.wordpress.com/2020/02/spark-the-definitiv… [cited by applicant]
European Summons to Oral Proceedings for Application No. 21190626.8, mailed Feb. 15, 2024. [cited by applicant]
European Summons to Oral Proceedings for Application No. 21190952.8, mailed Jan. 25, 2024. [cited by applicant]
Gounaris, Anastasios et al., “Dynamic Configuration of Partitioning in Spark Applications,” IEEE Transactions on Parallel and Distributed Systems, vol. 28, No. 7, Jul. 2017, [retrieved on Jun. 10, 2017], pp. 1891-1904. [cited by applicant]
Molgaard, Jason, “A Simple Approach to Implementing Computational Storage,” Storage Developer Conference 2019, Sep. 2019, retrieved from the Internet: URL:https://www.snia.org/sites/defaultifiles/SDC/2019/presentations/… [cited by applicant]
Prasaad, Guna et al., “Improving High Contention OLTP Performance via Transaction Scheduling”, arXiv.org, Oct. 2018, retrieved from the Internet: URL:https://arxiv.org/pdf/1810.01997.pdf [retrieved on Jan. 17, 2024], 15… [cited by applicant]
Sabiu, Habib Ado, “Performance Evaluation of Job Scheduling and Resource Allocation in Apache Spark,” Jul. 2018, retrieved from the Internet: URL:https://harvest.usask.ca/server/api/core/bitstreams/9654d97a-5217-486d-b8… [cited by applicant]
Shadley, Scott et al., “What Happens When Compute Meets Storage?,” Sep. 2019, retrieved from the Internet: URL:https://www.snia.org/sites/defaultifiles/SDC/2019/presentations/Computational/Shadley_Scott_Adams_Nick_What_… [cited by applicant]
SNIAVIDEO: “What Happens when Compute Meets Storage (SDC 2019),” Oct. 2019, retrieved from the Internet: URL:https://www.youtube.com/watch?=45nhck3tN4U [retrieved on Feb. 8, 2024], 2 pages. [cited by applicant]
Tang, Shanjiang et al., “A Survey on Spark Ecosystem for Big Data Processing,” arxiv.org, Nov. 2018, 21 pages. [cited by applicant]
Wikipedia, “Message Broker,” Jul. 2020, retrieved from the Internet: URL:https://en.wikipedia.org/w/index.php?title=Message_broker&0ldid=966520924 [retrieved on Jan. 18, 2024], 3 pages. [cited by applicant]
European Office Action for Application No. 21190952.8, mailed Oct. 18, 2024. [cited by applicant]
European Office Action for Application No. 21212137.0, mailed Oct. 25, 2024. [cited by applicant]
Li, Yonghui et al., “Architecture and Analysis of a Dynamically-Scheduled Real-Time Memory Controller,” Real-Time Systems, Jul. 2015, vol. 52, pp. 675-729. [cited by applicant]
Li, Yonghui, “Design and Formal Analysis of Real-Time Memory Controllers,” Phd Thesis 1 (Research TU/e /Graduation TU/e), Electrical Engineering, Sep. 2016, 207 pages. [cited by applicant]
Mutlu, Onur et al., “Parallelism-Aware Batch Scheduling: Enhancing both Performance and Fairness of Shared DRAM Systems,” International Symposium on Computer Architecture, ACM SIGARCH Computer Architecture News, 2008, v… [cited by applicant]
Prieto, Pablo et al., “CMP Off-Chip Bandwidth Scheduling Guided by Instruction Criticality,” ICS '13: Proceedings of the 27th International ACM Conference on International Conference on Supercomputing, Jun. 2013, pp. 37… [cited by applicant]
Zhou, Ping et al., “Throughput Enhancement for Phase Change Memories,” IEEE Transactions on Computers, vol. 63, No. 8, Aug. 2014, pp. 2080-2093. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/495,810, mailed Dec. 11, 2024. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/495,810, mailed Oct. 25, 2024. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/495,810, mailed Oct. 7, 2024. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/502,023, mailed Nov. 26, 2024. [cited by applicant]
Office Action for U.S. Appl. No. 17/234,780, mailed Dec. 19, 2024. [cited by applicant]
Warke, Amit, et al. “Storage Service Orchestration with Container Elasticity,” 2018 IEEE 4th International Conference on Collaboration and Internet Computing (CIC), IEEE, 2018, pp. 283-292. [cited by applicant]
Notice of Allowability for U.S. Appl. No. 17/502,023, mailed Feb. 4, 2025. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/495,810, mailed May 20, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/234,780, mailed Jul. 5, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/502,023, mailed Jun. 20, 2024. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/495,810, mailed Aug. 22, 2024. [cited by applicant]
Castellani, Angelo P. et al., “WebIoT: A Web Application Framework for the Internet of Things,” WCNC 2012 Workshop on Internet of Things Enabling Technologies, Embracing Machine-to-Machine Communications and Beyond, 201… [cited by applicant]
European Office Action for Application No. 22174076.4, mailed Jul. 8, 2024. [cited by applicant]
Kerdoudi, Mohamed Lamine et al., “Recovering Software Architecture Product Lines,” 2019 24th International Conference on Engineering of Complex Computer Systems (ICECCS), 2019, pp. 226-235. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/234,780, mailed Apr. 15, 2025. [cited by applicant]
European Summons to Oral Proceedings for Application No. 21190952.8, mailed Mar. 26, 2025. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/502,023, mailed May 23, 2025. [cited by applicant]