IP Library › Granted Patent US 12,498,869
Granted Patent B2
US 12,498,869 · App. 17/666,548 · Granted Dec 16, 2025

Systems, methods, and apparatus for hierarchical aggregation for computational storage

Inventors: Yang Seok Ki (Palo Alto, CA); Sungwook Ryu (Palo Alto, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/0644G06F3/0604G06F3/0673G06F16/245G06F16/27
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,498,869
App. No.
17/666,548
Filed
Feb 7, 2022
Granted
Dec 16, 2025
Kind
B2
Examiner
KIM, PAUL
Art Unit
2152
USPC
707/736
Abstract

A method for computational storage may include storing, at a storage device, two or more portions of data, wherein a first one of the two or more portions of data comprises a first fragment of a record and a second one of the two or more portions of data comprises a second fragment of the record, and performing, by the storage device, an operation on the first and second fragments of the record. The method may further include performing, by the storage node, a second operation on first and second fragments of a second record. The operation may include a data selection operation, and the method may further include sending a result of the data selection operation to a server. The method may further include sending a result of a first data selection operation to a server.

Claims (69)

1 . A method for computational storage, the method comprising:

storing, at a solid state drive, two or more portions of data, wherein a first one of the two or more portions of data comprises a first fragment of a record and a second one of the two or more portions of data comprises a second fragment of the record;

receiving, at the solid state drive, an indication of a requested portion of the record;

combining, at the solid state drive, the first and second fragments of the record to generate a reconstructed portion of the record; and

selecting, by the solid state drive based on the indication, the requested portion of the record from the reconstructed portion of the record.

2 . The method of claim 1 , wherein the solid state drive is a first solid state drive, the two or more portions of data are two or more first portions of data, the record is a first record, and the indication is a first indication of the requested portion of the first record, the method further comprising:

storing, at a second solid state drive, one or more second portions of data, wherein one of the two or more first portions of data comprises a first fragment of a second record, one of the one or more second portions of data comprises a second fragment of the second record, and the first solid state drive and the second solid state drive are coupled to a storage node;

receiving at the storage node, a second indication of a requested portion of the second record;

combining, at the storage node, the first and second fragments of the second record to generate a reconstructed portion of the second record; and

selecting by the storage node, based on the second indication, the requested portion of the second record from the reconstructed portion of the second record.

3 . The method of claim 2 , wherein the storage node is a first storage node, the method further comprising:

storing, at a third solid state drive, one or more third portions of data, wherein one of the two or more first portions of data or one or more second portions of data comprises a first fragment of a third record, one of the one or more third portions of data comprises a second fragment of the third record, the third solid state drive is coupled to a second storage node, and the first storage node and the second storage node are coupled to a server;

receiving at the server, a third indication of a requested portion of the third record;

combining, at the server, the first and second fragments of the third record to generate a reconstructed portion of the third record; and

selecting, by the server, based on the third indication, the requested portion of the third record from the reconstructed portion of the third record.

4 . The method of claim 1 , wherein the method further comprising sending the requested portion of the record to a server.

5 . The method of claim 2 , further comprising:

sending the requested portion of the first record to a server; and

sending the requested portion of the second record to the server.

6 . An apparatus comprising:

a solid state drive comprising:

a solid state storage medium;

a controller that:

receives two or more portions of data; and

sends, based on a presence of a first fragment of a first record in one of the two or more portions of data, the first fragment of the first record to a storage node; and

a data processing element that:

combines, based on a presence of a first fragment of a second record in a first one of the two or more portions of data and a second fragment of the second record in a second one of the two or more portions of data, the first and second fragments of the second record to generate a combined result; and

performs an operation on the combined result.

7 . The apparatus of claim 6 , wherein the controller sends a result of the operation to a server.

8 . The apparatus of claim 6 , wherein the operation comprises a data selection operation.

9 . A storage node comprising:

logic that:

receives a first fragment of a first record from a first portion of data from a first one of two or more solid state drives;

receives a second fragment of the first record from a second portion of data from a second one of the two or more solid state drives; and

combines, based on a presence of the first fragment of the first record in the first portion of data at the first one of two or more solid state drives and the second fragment of the first record in the second portion of data at the second one of the two or more solid state drives, the first and second fragments of the first record to generate a combined result; and

sends a first fragment of a second record in a third portion of data at one of the two or more solid state drives to a server; and

a data processing element that performs an operation on the combined result.

10 . The storage node of claim 9 , wherein the data processing element sends a result of the operation to a server.

11 . The storage node of claim 9 , wherein the logic comprises a buffer that receives the first and second fragments of the first record.

12 . The storage node of claim 9 , wherein the operation comprises a data selection operation.

13 . The storage node of claim 9 , wherein the operation is a first operation, and the logic:

receives a result of a second operation from a third solid state drive; and

sends the result of the second operation to a server.

14 . A system comprising:

a storage node;

a first solid state drive coupled to the storage node; and

a server that stores a first portion of data and a second portion of data at the first solid state drive, wherein the second portion of data is contiguous with the first portion of data;

wherein the first solid state drive:

combines a first fragment of a first record from the first portion of data and a second fragment of the first record from the second portion of data to generate a first combined result; and

performs a first operation on the first combined result; and

wherein the storage node:

receives a first fragment of a second record from a portion of data from the first solid state drive and a second fragment of the second record from a portion of data from a second solid state drive;

combines the first and second fragments of the second record to generate a second combined result; and

performs a second operation on the second combined result.

15 . The system of claim 14 , wherein the storage node sends a first fragment of a third record from a portion of data from the first solid state drive to a server.

16 . The system of claim 14 , wherein the first solid state drive sends a result of the first operation to the storage node.

17 . The system of claim 14 , wherein the storage node sends a result of the second operation to a server.

18 . The system of claim 14 , wherein:

the first operation comprises a first data selection operation; and

the second operation comprises a second data selection operation.

19 . The apparatus of claim 6 , wherein the solid state drive is a first solid state drive, the solid state storage medium is a first solid state storage medium, the controller is a first controller, the data processing element is a first data processing element, the two or more portions of data are two or more portions of first data, the operation is a first operation, and the combined result is a first combined result, the apparatus further comprising:

a second solid state drive comprising:

a second solid state storage medium; and

a second controller that receives a portion of second data;

logic at the storage node that:

receives the first fragment of the first record from the first solid state drive;

receives a second fragment of the first record from the portion of second data from the second solid state drive; and

combines, based on a presence of the first fragment of the first record at the first solid state drive and the second fragment of the first record at the second solid state drive, the first and second fragments of the first record to generate a second combined result; and

a second data processing element that performs a second operation on the second combined result.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2023
From: KI, YANG SEOK; RYU, SUNGWOOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 064628/0393 →
Continuity (3)
Provisional Application 63231711 · Aug 10, 2021
Provisional Application 63231709 · Aug 10, 2021
Related Publication 20230049602A1 · Feb 16, 2023
References Cited (165)
US 5396595A · Standley · 1995 [cited by applicant]
US 6351776B1 · O'Brien et al. · 2002 [cited by applicant]
US 6938204B1 · Hind et al. · 2005 [cited by applicant]
US 7065618B1 · Ghemawat et al. · 2006 [cited by applicant]
US 7315923B2 · Retnamma et al. · 2008 [cited by applicant]
US 7447865B2 · Uppala · 2008 [cited by applicant]
US 7464247B2 · Uppala · 2008 [cited by applicant]
US 7571346B2 · Illowsky et al. · 2009 [cited by applicant]
US 7587569B2 · Uppala · 2009 [cited by applicant]
US 7640363B2 · Teodosiu et al. · 2009 [cited by applicant]
US 7681240B2 · Maheshwari et al. · 2010 [cited by applicant]
US 7716180B2 · Vermeulen et al. · 2010 [cited by applicant]
US 7921087B2 · Uppala · 2011 [cited by applicant]
US 8028106B2 · Bondurant et al. · 2011 [cited by applicant]
US 8195978B2 · Flynn et al. · 2012 [cited by applicant]
US 8214517B2 · Dubnicki et al. · 2012 [cited by applicant]
US 8380681B2 · Oltean et al. · 2013 [cited by applicant]
US 8468345B2 · Auradkar et al. · 2013 [cited by applicant]
US 8509315B1 · Petranovich · 2013 [cited by applicant]
US 8533231B2 · Aizman et al. · 2013 [cited by applicant]
US 8645335B2 · Gupta et al. · 2014 [cited by applicant]
US 8689279B2 · Basmov et al. · 2014 [cited by applicant]
US 8712978B1 · Shilane et al. · 2014 [cited by applicant]
US 8762743B2 · Cannon et al. · 2014 [cited by applicant]
US 8799238B2 · Eshghi et al. · 2014 [cited by applicant]
US 8799746B2 · Baker et al. · 2014 [cited by applicant]
US 8832043B2 · Koifman et al. · 2014 [cited by applicant]
US 8838541B2 · Camble et al. · 2014 [cited by applicant]
US 8886914B2 · Huang · 2014 [cited by applicant]
US 8909657B2 · Mensch et al. · 2014 [cited by applicant]
US 8954654B2 · Yu et al. · 2015 [cited by applicant]
US 8972672B1 · Wallace et al. · 2015 [cited by applicant]
US 9002907B2 · Martin et al. · 2015 [cited by applicant]
US 9110936B2 · Li et al. · 2015 [cited by applicant]
US 9165154B2 · Auradkar et al. · 2015 [cited by applicant]
US 9195851B1 · Chandra · 2015 [cited by applicant]
US 9201800B2 · Bolla et al. · 2015 [cited by applicant]
US 9253166B2 · Gauda · 2016 [cited by applicant]
US 9298951B2 · Barney et al. · 2016 [cited by applicant]
US 9400610B1 · Wallace et al. · 2016 [cited by applicant]
US 9426219B1 · Keyser · 2016 [cited by applicant]
US 9537650B2 · Auradkar et al. · 2017 [cited by applicant]
US 9823981B2 · Kalach et al. · 2017 [cited by applicant]
US 10187358B2 · Fahey et al. · 2019 [cited by applicant]
US 10296494B2 · Davis et al. · 2019 [cited by applicant]
US 10310765B1 · Laurence · 2019 [cited by applicant]
US 10318389B2 · Arslan et al. · 2019 [cited by applicant]
US 10346066B2 · Danilov et al. · 2019 [cited by applicant]
US 10348693B2 · Auradkar et al. · 2019 [cited by applicant]
US 10387673B2 · Surla et al. · 2019 [cited by applicant]
US 10394757B2 · Cheung et al. · 2019 [cited by applicant]
US 10552062B2 · Ki · 2020 [cited by applicant]
US 10572161B2 · Subramanian et al. · 2020 [cited by applicant]
US 10608784B2 · Yanovsky et al. · 2020 [cited by applicant]
US 10664165B1 · Faibish et al. · 2020 [cited by applicant]
US 10776321B1 · Balcha et al. · 2020 [cited by applicant]
US 10809945B2 · Patwardhan et al. · 2020 [cited by applicant]
US 10838990B1 · Shilane et al. · 2020 [cited by applicant]
US 10852989B1 · Patel et al. · 2020 [cited by applicant]
US 10949303B2 · Kohli · 2021 [cited by applicant]
US 10977136B2 · Patel et al. · 2021 [cited by applicant]
US 11017127B2 · Secatch et al. · 2021 [cited by applicant]
US 11023318B1 · Volkov et al. · 2021 [cited by applicant]
US 11177012B1 · Avraham et al. · 2021 [cited by applicant]
US 12106455B2 · Chiyoda et al. · 2024 [cited by applicant]
US 20030088783A1 · DiPierro · 2003 [cited by applicant]
US 20040049700A1 · Yoshida · 2004 [cited by applicant]
US 20060020605A1 · Chan et al. · 2006 [cited by applicant]
US 20060182274A1 · Nicolai et al. · 2006 [cited by applicant]
US 20090132760A1 · Flynn · 2009 [cited by examiner]
US 20120089775A1 · Ranade et al. · 2012 [cited by applicant]
US 20120159098A1 · Cheung et al. · 2012 [cited by applicant]
US 20120198275A1 · Koifman et al. · 2012 [cited by applicant]
US 20120254689A1 · Resch · 2012 [cited by applicant]
US 20140250119A1 · Bhattiprolu et al. · 2014 [cited by applicant]
US 20140281146A1 · Horn · 2014 [cited by applicant]
US 20150012709A1 · Lad et al. · 2015 [cited by applicant]
US 20150378616A1 · Khadiwala et al. · 2015 [cited by applicant]
US 20150379072A1 · Dirac et al. · 2015 [cited by applicant]
US 20150379425A1 · Dirac et al. · 2015 [cited by applicant]
US 20170185625A1 · Cheru et al. · 2017 [cited by applicant]
US 20180024746A1 · Jagadeesh et al. · 2018 [cited by applicant]
US 20180026655A1 · Gopal et al. · 2018 [cited by applicant]
US 20180152733A1 · Karaje et al. · 2018 [cited by applicant]
US 20180267856A1 · Hayasaka et al. · 2018 [cited by applicant]
US 20180285014A1 · Li et al. · 2018 [cited by applicant]
US 20180314710A1 · Peloski · 2018 [cited by applicant]
US 20180365102A1 · Li et al. · 2018 [cited by applicant]
US 20190005262A1 · Surla et al. · 2019 [cited by applicant]
US 20190007493A1 · Gray et al. · 2019 [cited by applicant]
US 20190196907A1 · Khan et al. · 2019 [cited by applicant]
US 20200042500A1 · Li et al. · 2020 [cited by applicant]
US 20200117362A1 · McCarthy et al. · 2020 [cited by applicant]
US 20200117518A1 · Costa et al. · 2020 [cited by applicant]
US 20200134049A1 · Bassov et al. · 2020 [cited by applicant]
US 20200162101A1 · Beckman et al. · 2020 [cited by applicant]
US 20200201789A1 · Durham et al. · 2020 [cited by applicant]
US 20200241960A1 · Yanovsky et al. · 2020 [cited by applicant]
US 20200274855A1 · Xin · 2020 [cited by applicant]
US 20200296100A1 · Prahlad et al. · 2020 [cited by applicant]
US 20200341690A1 · Saad et al. · 2020 [cited by applicant]
US 20200372163A1 · Chung · 2020 [cited by applicant]
US 20210004166A1 · Luo · 2021 [cited by examiner]
US 20210011799A1 · Chen et al. · 2021 [cited by applicant]
US 20210019067A1 · Miller et al. · 2021 [cited by applicant]
US 20210064477A1 · Patel et al. · 2021 [cited by applicant]
US 20210064582A1 · Wang et al. · 2021 [cited by applicant]
US 20210072899A1 · Furuta et al. · 2021 [cited by applicant]
US 20210096962A1 · Yang et al. · 2021 [cited by applicant]
US 20210200469A1 · Kim et al. · 2021 [cited by applicant]
US 20210232310A1 · Pitchumani et al. · 2021 [cited by applicant]
US 20220188028A1 · Mesnier et al. · 2022 [cited by applicant]
US 20220276785A1 · Deguchi et al. · 2022 [cited by applicant]
US 20230011742A1 · Merritt · 2023 [cited by applicant]
CN 105242879A · 2016 [cited by applicant]
TW 201520793A · 2015 [cited by applicant]
TW 201821968A · 2018 [cited by applicant]
WO 2013136584A1 · 2013 [cited by applicant]
WO 2020186081A1 · 2020 [cited by applicant]
WO 2020189081A1 · 2020 [cited by applicant]
Adams, Ian F. et al., “Respecting the Block Interface-Computational Storage Using Virtual Objects,” USENIX Association, 11th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 19), (https://www.usenix… [cited by applicant]
Chen, Shengbo, et al., “When Queueing Meets Coding: Optimal-Latency Data Retrieving Scheme in Storage Clouds”, IEEE INFOCOM 2014—IEEE Conference on Computer Communications, 2014, pp. 1042-1050. [cited by applicant]
European Extended Search Report for Application No. 22186187.5, mailed Dec. 15, 2022. [cited by applicant]
European Extended Search Report for Application No. 22187681.6, mailed Dec. 19, 2022. [cited by applicant]
European Extended Search Report for Application No. 22187683.2, mailed Dec. 19, 2022. [cited by applicant]
European Extended Search Report for Application No. 22189731.7, mailed Jan. 3, 2023. [cited by applicant]
Liang, Guanfeng et al., “Fast Cloud: Pushing the Envelope on Delay Performance of Cloud Storage With Coding” IEEE/ACM Transactions on Networking, vol. 22, No. 6, 2014, pp. 2012-2025. [cited by applicant]
Liang, Guanfeng et al., “TOFEC: Achieving Optimal Throughput-Delay Trade-Off of Cloud Storage Using Erasure Codes”, IEEE INFOCOM 2014—IEEE Conference on Computer Communications, 2014, pp. 826-834. [cited by applicant]
Mukhopadhyay, Sinjoni et al., “Efficient Reconstruction Techniques for Disaster Recovery in Secret-Split Datastores”, 2018 IEEE 26th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecomm… [cited by applicant]
Pritchard, Stephen, “Computational Storage: What is it and What are Its Key Use Cases?”, (https://www.computerweekly.com/feature/Computational-storage-What-is-it-and-what-are-its-key-use-cases), 2020, retrieved 2022, 7 … [cited by applicant]
Wikipedia, “Block Cipher”, (https://en.wikipedia.org/w/index.php?title=Block_ciphe%20&oldid=1036074863), retrieved 2022, 17 pages. [cited by applicant]
Wikipedia, “Data Deduplication”, (https:/en.wikipedia.org/w/index.php?title=Data_deduplication&oldid=1025113325), retrieved 2022, 7 pages. [cited by applicant]
Wu, Xingbo, “Supporting Efficient Large-Scale Key-Value Systems with an Optimized Storage Hierarchy”, Dissertation, The University of Texas at Arlington, 2018, 123 pages. [cited by applicant]
Zhang, Xingyu et al., “Data Deduplication Cluster Based on Similarity-Locality Approach”, 2013 IEEE International Conference on Green Computing and Communications and IEEE Internet of Things and IEEE Cyber, Physical and… [cited by applicant]
Zuo, Chunxue et al., “PFCG: Improving the Restore Performance of Package Datasets in Deduplication Systems”, 2018 IEEE 36th International Conference on Computer Design (ICCD), 2018, pp. 553-560. [cited by applicant]
Zuo, Chunxue et al., “RepEC-Duet: Ensure High Reliability and Performance for Deduplicated and Delta-Compressed Storage Systems”, 2019 IEEE 37th International Conference on Computer Design (ICCD), 2019, pp. 190-198. [cited by applicant]
Office Action for U.S. Appl. No. 17/572,621, mailed May 4, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/591,597, mailed May 25, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/677,989, mailed May 9, 2023. [cited by applicant]
Advisory Action for U.S. Appl. No. 17/572,621, mailed Dec. 28, 2023. [cited by applicant]
Anisimov, Anatoly V. et al., “Variable-Length Prefix Codes With Multiple Delimiters,” IEEE Transactions on Information Theory, vol. 63, No. 5, May 2017, pp. 2885-2895. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/677,991, mailed Apr. 10, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/591,597, mailed Feb. 23, 2024. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/677,991, mailed Mar. 5, 2024. [cited by applicant]
Office Action for U.S. Appl. No. 17/677,989, mailed Jan. 26, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/572,621, mailed Oct. 10, 2023. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/677,989, mailed Sep. 20, 2023. [cited by applicant]
Office Action for U.S. Appl. No. 17/677,991, mailed Sep. 27, 2023. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/677,991, mailed May 8, 2024. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/677,991, mailed Jun. 13, 2024. [cited by applicant]
Office Action for U.S. Appl. No. 17/572,621, mailed Jun. 12, 2024. [cited by applicant]
Office Action for U.S. Appl. No. 17/591,597, mailed Jun. 18, 2024. [cited by applicant]
European Office Action for Application No. 22189257.3, mailed Sep. 25, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/572,621, mailed Oct. 31, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/591,597, mailed Jan. 13, 2025. [cited by applicant]
Office Action for U.S. Appl. No. 17/677,989, mailed Dec. 31, 2024. [cited by applicant]
Corrected Notice of Allowability for U.S. Appl. No. 17/677,991, mailed Jul. 22, 2024. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/677,989, mailed Sep. 5, 2024. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/677,989, mailed Apr. 23, 2025. [cited by applicant]
Office Action for U.S. Appl. No. 17/591,597, mailed Jun. 26, 2025. [cited by applicant]
Office Action for U.S. Appl. No. 17/572,621, mailed Aug. 6, 2025. [cited by applicant]
European Office Action for Application No. 22186187.5, mailed Sep. 12, 2025. [cited by applicant]
European Office Action for Application No. 22187683.2, mailed Sep. 12, 2025. [cited by applicant]
Gluster, “Deduplication Part 1: Rabin Karp for Variable Chunking,” The Gluster Blog, XP093308939, retrieved from the Internet:URL:https://www.gluster.org/deduplication-part-1-rabin-karp-for-variablechunking/, Apr. 2016,… [cited by applicant]
Wikipedia, “Peer-to-Peer,”, XP093311001, retrieved from the Internet: URL:https://en.wikipedia.org/w/index.php?title=Peer-topeer&oldid=1033755835, Jul. 2021, 17 pages. [cited by applicant]