IP Library › Granted Patent US 12,568,153
Granted Patent B2
US 12,568,153 · App. 18/501,367 · Granted Mar 3, 2026

Automatic data replica manager in distributed caching and data processing systems

Inventors: Zhengyu Yang (San Diego, CA); Jiayin Wang (Dorchester, MA); Thomas David Evans (San Diego, CA)
Assignee: Samsung Electronics Co., Ltd.
H04L67/568G06F9/00H04L41/0668H04L41/5009H04L41/5022H04L41/5025H04L43/0852H04L43/0888H04L43/16H04L67/1001H04L67/1095
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,568,153
App. No.
18/501,367
Granted
Mar 3, 2026
Kind
B2
Abstract

A method of data storage includes determining a latency distance from a primary node to each of two or more replica nodes, choosing a preferred replica node of the two or more replica nodes based on the determined latency distances, and write-caching data into the preferred replica node.

Claims (48)

1 . A method of data storage, the method comprising:

determining a first network parameter between a first node and a second node;

determining a second network parameter between the first node and a third node that is greater than the first network parameter; and

writing first data, associated with the first node, from a fourth node to the second node, based on determining that the second network parameter is greater than the first network parameter, such that the first node is configured to access the second node based on the first network parameter,

wherein the first node is configured to serve as a primary node, and

wherein the second node and the fourth node are configured to serve as replica nodes for the first node.

2 . The method of claim 1 , wherein the first network parameter corresponds to a first latency distance, and

wherein the second network parameter corresponds to a second latency distance.

3 . The method of claim 1 , wherein the first data is copied from the first node.

4 . The method of claim 1 , wherein the first network parameter and the second network parameter are less than a third network parameter between the first node and the fourth node.

5 . The method of claim 1 , further comprising:

assigning, to the second node, a first ranking indicating a degree to which the second node is suitable for receiving data that is copied from the first node; and

assigning, to the third node, a second ranking indicating a degree to which the third node is suitable for receiving data that is copied from the first node, the first ranking being based on the first network parameter, the first network parameter being associated with a first path between the first node and the second node, and the second ranking being based on the second network parameter, the second network parameter being associated with a second path between the first node and the third node.

6 . The method of claim 5 , further comprising updating the first ranking or the second ranking based on changes in the first network parameter or the second network parameter.

7 . The method of claim 5 , wherein at least one of the first node, the second node, or the third node comprises a physical host for running virtual machines.

8 . The method of claim 5 , wherein the first ranking or the second ranking is further based on:

an access frequency of data associated with the second node or the third node; or

service level agreements (SLAs) associated with the second node or the third node.

9 . The method of claim 1 , further comprising maintaining the first data on the fourth node.

10 . The method of claim 1 , wherein at least one of the first node, the second node, or the third node comprises:

a solid-state drive tier as a cache tier comprising a cache partition for storing data of local virtual machines; and

a replica partition for storing replica data from other nodes.

11 . The method of claim 1 , wherein the third node comprises a replica node.

12 . The method of claim 1 , wherein the first data comprises replica data.

13 . A method of reading replicated data, the method comprising:

determining a difference between an access speed corresponding to a first node and an access speed corresponding to a second node; or

determining a utilization ratio of throughput corresponding to the second node; and

performing a parallel prefetching of a dataset by reading a first part of the dataset from the first node, and reading a second part of the data set from the second node, such that a makespan of the parallel prefetching is less than a makespan of reading the first part of the dataset and the second part of the dataset from the first node, based on:

comparing the difference with a first threshold; or

comparing the utilization ratio of throughput with a second threshold.

14 . The method of claim 13 , wherein:

the first node comprises a primary node configured to store the first part of the dataset at a cache partition of the first node; and

the second node comprises a replica node configured to store the second part of the dataset at a replica partition of the second node.

15 . A method of prefetching data, the method comprising:

splitting a dataset into a first part and a second part;

determining a first ratio of a total size of the dataset to a first access speed associated with a first node comprising the dataset, the first node being configured to serve as a primary node;

determining a second ratio of the second part to a second access speed associated with a second node, the second node being configured to serve as a replica node; and

triggering a loading of the first part from the first node and the second part from the second node based on the first ratio being greater than or equal to the second ratio.

16 . The method of claim 15 , wherein the first ratio is greater than or equal to a greater of:

a second ratio of a first size of the first part to the first access speed; and

a third ratio of a second size of the second part to a second access speed associated with the second node.

17 . The method of claim 16 , wherein the first access speed accounts for a first network parameter associated with the first node, and wherein the second access speed accounts for a second network parameter associated with the second node.

18 . The method of claim 16 , further comprising:

determining a ratio of the first access speed to a sum of the first access speed and the second access speed; and

achieving a total input/output (I/O) time that is equal to a ratio of the total size of the dataset to the sum of the first access speed and the second access speed.

19 . The method of claim 16 , further comprising:

determining a difference between the first access speed and the second access speed, or determining a utilization ratio of throughput corresponding to the second node; and

triggering parallel prefetching.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2023
From: YANG, ZHENGYU; WANG, JIAYIN; EVANS, THOMAS DAVID
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 065798/0052 →
Continuity (6)
Continuation 17948111 · Sep 19, 2022
Continuation 16569176 · Sep 12, 2019
Division 15408328 · Jan 17, 2017
Provisional Application 62404167 · Oct 4, 2016
Provisional Application 62384078 · Sep 6, 2016
Related Publication 20240064214A1 · Feb 22, 2024
References Cited (175)
US 5627990A · Cord et al. · 1997 [cited by applicant]
US 5768594A · Blelloch et al. · 1998 [cited by applicant]
US 6519756B1 · Kao et al. · 2003 [cited by applicant]
US 6553394B1 · Perry et al. · 2003 [cited by applicant]
US 6609088B1 · Wuytack et al. · 2003 [cited by applicant]
US 7059501B2 · Masuda · 2006 [cited by applicant]
US 7076640B2 · Kadambi · 2006 [cited by applicant]
US 7194587B2 · McCalpin et al. · 2007 [cited by applicant]
US 7555527B1 · Slaughter · 2009 [cited by examiner]
US 7680969B1 · Danilak · 2010 [cited by applicant]
US 7925624B2 · Vosshall · 2011 [cited by examiner]
US 7933087B1 · Tsai et al. · 2011 [cited by applicant]
US 8140751B1 · Wang · 2012 [cited by applicant]
US 8190595B2 · Bruno et al. · 2012 [cited by applicant]
US 8417872B2 · Bae et al. · 2013 [cited by applicant]
US 8463825B1 · Harty et al. · 2013 [cited by applicant]
US 8468299B2 · O'Rourke et al. · 2013 [cited by applicant]
US 8495178B1 · Jia et al. · 2013 [cited by applicant]
US 8762664B2 · Surtani et al. · 2014 [cited by applicant]
US 8874848B2 · Soundararajan et al. · 2014 [cited by applicant]
US 8918362B2 · Calder et al. · 2014 [cited by applicant]
US 8924978B2 · Meng et al. · 2014 [cited by applicant]
US 8953602B2 · Yang et al. · 2015 [cited by applicant]
US 8959519B2 · Agarwal et al. · 2015 [cited by applicant]
US 8959524B2 · Hirsch et al. · 2015 [cited by applicant]
US 9002939B2 · Laden et al. · 2015 [cited by applicant]
US 9026628B2 · Ni · 2015 [cited by examiner]
US 9053167B1 · Swift et al. · 2015 [cited by applicant]
US 9081826B2 · Murthy et al. · 2015 [cited by applicant]
US 9116913B2 · Fukatani et al. · 2015 [cited by applicant]
US 9182927B2 · Liu et al. · 2015 [cited by applicant]
US 9189410B2 · Luo et al. · 2015 [cited by applicant]
US 9201891B2 · Romanski et al. · 2015 [cited by applicant]
US 9213721B1 · Faibish et al. · 2015 [cited by applicant]
US 9256374B1 · Aron et al. · 2016 [cited by applicant]
US 9280300B2 · Liu et al. · 2016 [cited by applicant]
US 9304997B2 · Beard et al. · 2016 [cited by applicant]
US 9323462B2 · Olson et al. · 2016 [cited by applicant]
US 9330108B2 · Jones et al. · 2016 [cited by applicant]
US 9342390B2 · Chen et al. · 2016 [cited by applicant]
US 9348707B2 · Kashyap et al. · 2016 [cited by applicant]
US 9361047B2 · Biederman et al. · 2016 [cited by applicant]
US 9372630B2 · Guo et al. · 2016 [cited by applicant]
US 9513814B1 · Can et al. · 2016 [cited by applicant]
US 9612967B1 · Peterson et al. · 2017 [cited by applicant]
US 9817766B1 · Si et al. · 2017 [cited by applicant]
US 9858191B2 · Choi et al. · 2018 [cited by applicant]
US 10013712B2 · Dugaw et al. · 2018 [cited by applicant]
US 10048996B1 · Bell et al. · 2018 [cited by applicant]
US 10416892B2 · Ding · 2019 [cited by examiner]
US 10455045B2 · Yang · 2019 [cited by examiner]
US 11451645B2 · Yang · 2022 [cited by examiner]
US 11811895B2 · Yang · 2023 [cited by examiner]
US 20020035605A1 · McDowell et al. · 2002 [cited by applicant]
US 20030109940A1 · Guntzer et al. · 2003 [cited by applicant]
US 20040148470A1 · Schulz · 2004 [cited by applicant]
US 20040193952A1 · Narayanan et al. · 2004 [cited by applicant]
US 20050010629A1 · Hess et al. · 2005 [cited by applicant]
US 20050086384A1 · Ernst · 2005 [cited by applicant]
US 20060026154A1 · Altinel et al. · 2006 [cited by applicant]
US 20060112219A1 · Chawla et al. · 2006 [cited by applicant]
US 20060253674A1 · Zohar et al. · 2006 [cited by applicant]
US 20070033659A1 · Hoche et al. · 2007 [cited by applicant]
US 20080126547A1 · Waldspurger · 2008 [cited by applicant]
US 20080177873A1 · Ni · 2008 [cited by examiner]
US 20090006593A1 · Cortes · 2009 [cited by examiner]
US 20090049421A1 · Meijer et al. · 2009 [cited by applicant]
US 20090276657A1 · Wetmore et al. · 2009 [cited by applicant]
US 20090288084A1 · Astete et al. · 2009 [cited by applicant]
US 20100131545A1 · Srivastava et al. · 2010 [cited by applicant]
US 20100281078A1 · Wang et al. · 2010 [cited by applicant]
US 20110035548A1 · Kimmel et al. · 2011 [cited by applicant]
US 20110246491A1 · Clash et al. · 2011 [cited by applicant]
US 20110302371A1 · Lysko · 2011 [cited by applicant]
US 20120268471A1 · Khalvati et al. · 2012 [cited by applicant]
US 20130055290A1 · Gaikwad et al. · 2013 [cited by applicant]
US 20130073523A1 · Gounares et al. · 2013 [cited by applicant]
US 20130074057A1 · Gounares et al. · 2013 [cited by applicant]
US 20130124916A1 · Shutt et al. · 2013 [cited by applicant]
US 20130179630A1 · Yano et al. · 2013 [cited by applicant]
US 20130232382A1 · Jain et al. · 2013 [cited by applicant]
US 20130263142A1 · Miyamae · 2013 [cited by applicant]
US 20130290249A1 · Merriman et al. · 2013 [cited by applicant]
US 20130297902A1 · Collins et al. · 2013 [cited by applicant]
US 20130346366A1 · Ananthanarayanan et al. · 2013 [cited by applicant]
US 20140149637A1 · Gu et al. · 2014 [cited by applicant]
US 20140164687A1 · Kwon et al. · 2014 [cited by applicant]
US 20140207955A1 · Musial et al. · 2014 [cited by applicant]
US 20140324785A1 · Gupta et al. · 2014 [cited by applicant]
US 20150006788A1 · Liu et al. · 2015 [cited by applicant]
US 20150074350A1 · Chiang et al. · 2015 [cited by applicant]
US 20150127646A1 · Shaw · 2015 [cited by applicant]
US 20150188840A1 · Xiao et al. · 2015 [cited by applicant]
US 20150234617A1 · Li et al. · 2015 [cited by applicant]
US 20150234719A1 · Coronado et al. · 2015 [cited by applicant]
US 20150254322A1 · Ma et al. · 2015 [cited by applicant]
US 20150288669A1 · Litoiu et al. · 2015 [cited by applicant]
US 20150333994A1 · Gell et al. · 2015 [cited by applicant]
US 20150347451A1 · Lee et al. · 2015 [cited by applicant]
US 20160011876A1 · Mukherjee et al. · 2016 [cited by applicant]
US 20160019286A1 · Bach et al. · 2016 [cited by applicant]
US 20160132433A1 · Hayashi et al. · 2016 [cited by applicant]
US 20160170882A1 · Choi et al. · 2016 [cited by applicant]
US 20160188490A1 · Samih · 2016 [cited by applicant]
US 20160188898A1 · Karinta et al. · 2016 [cited by applicant]
US 20160291942A1 · Hutchison · 2016 [cited by applicant]
US 20160292053A1 · Antony et al. · 2016 [cited by applicant]
US 20170091107A1 · Peterson et al. · 2017 [cited by applicant]
US 20170134337A1 · Araújo · 2017 [cited by applicant]
US 20170142217A1 · Misra et al. · 2017 [cited by applicant]
US 20170242958A1 · Brown · 2017 [cited by applicant]
US 20170244784A1 · Lam et al. · 2017 [cited by applicant]
US 20170318091A1 · Ke et al. · 2017 [cited by applicant]
US 20170371540A1 · Ding · 2017 [cited by examiner]
US 20180025052A1 · Nambiar et al. · 2018 [cited by applicant]
US 20180025092A1 · Aharonov et al. · 2018 [cited by applicant]
US 20180048712A1 · Sarisky et al. · 2018 [cited by applicant]
US 20180060237A1 · Leslie-Hurd et al. · 2018 [cited by applicant]
US 20180069944A1 · Yang et al. · 2018 [cited by applicant]
US 20190163371A1 · Nambiar et al. · 2019 [cited by applicant]
US 20200028932A1 · Yang · 2020 [cited by examiner]
US 20200174940A1 · Jayaraman · 2020 [cited by examiner]
US 20210124691A1 · Jayaraman · 2021 [cited by examiner]
US 20230026778A1 · Yang · 2023 [cited by examiner]
US 20240064214A1 · Yang · 2024 [cited by examiner]
CN 103955436A · 2014 [cited by applicant]
CN 102467452B · 2014 [cited by applicant]
JP 5478526B2 · 2014 [cited by applicant]
KR 1020100014782A · 2010 [cited by applicant]
KR 1020130122326A · 2013 [cited by applicant]
KR 1020150037985A · 2015 [cited by applicant]
KR 1020150093979A · 2015 [cited by applicant]
KR 1020150095978A · 2015 [cited by applicant]
KR 1020150104585A · 2015 [cited by applicant]
KR 1020160081815A · 2016 [cited by applicant]
WO WO2003067426A1 · 2003 [cited by applicant]
WO WO2013024952A1 · 2013 [cited by applicant]
A Stochastic Memoizer for Sequence Data by Wood; International Conference on Machine Learning, Montreal, Canada, 2009. [cited by applicant]
Apache Sparks: “core concepts, architecture and internals,” http://datastrophic.io/core-concepts-architecture-and-internals-of-apache-spark/, Mar. 3, 2016 on Spark (17 pages). [cited by applicant]
Bocchino Parallel Programming Must Be Deterministic by Default U of Illinois 2009. (Year: 2009). [cited by applicant]
Bu et al., “HaLoop: Efficient Iterative Data Processing on Large Clusters”, Proc. of the VLDB, vol. 3, No. 1-2, DOI: 10.14778/1920841.1920881, Sep. 30, 2010, pp. 285-296. [cited by applicant]
Chiang et al., “An Adaptive IO Prefetching Approach for Virtualized Data Centers,” IEEE 2015, 14 pages. [cited by applicant]
Dean, Jeffrey et al., “MapReduce: Simplified Data Processing on Large Clusters”, Communications of the ACM, Jan. 2008, vol. 51, No. 1 (pp. 107-113). [cited by applicant]
Ding, Chen, et al., “Predicting Whole-Program Locality through Reuse Distance Analysis,” SIGPLAN Notices, 2003, pp. 245-257. [cited by applicant]
Etheredge Pure and Deterministic Functions (Year: 2008). [cited by applicant]
Hellerstein Query Execution Techniques for Caching Expensive Methods, 1996. (Year: 1996). [cited by applicant]
Intercepting Functions for Memoization: A Case Study Using Transcendental Functions by Suresh (Year: 2015). [cited by applicant]
Kanninnura A Speed-up Technique for an Auto Memoization Processor by Reusing Partial Results of Instruction Regions (Year: 2012). [cited by applicant]
Kathpal Analyzing Compute vs. Storage Tradeoff for Video aware Storage Efficiency (Year: 2012). [cited by applicant]
Khanafer The Constrained Ski-Rental Problem and its Application to Online Cloud Cost Optimization (Year: 2013). [cited by applicant]
Lecture 18: Dynamic Programming I: Memoization, Fibonacci, Crazy Eights; MIT, Dept of Computer Science and AI; Fall 2009; Available at http://courses.csail.nnitedu/6.006/fal109/lecture notes/lecture18.pdf (Year: 2009). [cited by applicant]
Liu, Deng, et al., “VFRM: Flash Resource Manager in VMware ESX Server,” IEEE Network Operations and Management Symposium (NOMS), 2014, 7 pages. [cited by applicant]
Liu, Yi et al., “SSD as a Cloud Cache? Carefully Design about It”, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Shenzhen 518055, P.R. China; Department of Computer Science, University of Minn… [cited by applicant]
Luo, Tian et al., “S-CAVE: Effective SSD Caching to Improve Virtual Machine Storage Performance”, Proceeding, PACT '13 Proceedings of the 22nd international conference on Parallel architectures and compilation technique… [cited by applicant]
Ma Way Memoization to Reduce Fetch Energy in Instruction Caches MIT, 2001. (Year: 2001). [cited by applicant]
Mayfield Using Automatic Memoization as a Software Engineering Tool in Real World AI Systems (Year: 1995). [cited by applicant]
Meng, Fei, et al., “vCacheShare: Automated Server Flash Cache Space Management in a Virtualization Environment,” USENIX Annual Technical Conference, 2014, pp. 133-144. [cited by applicant]
Rajasekaran, Sundaresan, “Multi-Cache: Dynamic, Efficient Partitioning for Multi-Tier Caches in Consolidated VM Environments”, IEEE International Conference on Cloud Engineering, 2016, Date Added to IEEE Xplore: Jun. 2,… [cited by applicant]
Ren, Jen, “I-CASH: Intelligently Coupled Array of SSD and HDD”, IEEE 17th International Symposium on High Performance Computer Architecture, 2011, Date Added to IEEE Xplore: Apr. 15, 2011, (12 pages). [cited by applicant]
“Spark Programming Guide,” [cited by applicant]
Spark Trademark Evidence (Year: 2018). [cited by applicant]
Tai, Jianzhe, et al., “Improving Flash Resource Utilization at Minimal Management Cost in Virtualized Flash-based Storage Systems,” IEEE Transactions on Cloud Computing, 2015, 15 pages. [cited by applicant]
Toffola Performance Problems You Can Fix A Dynamic Analysis of Memoization Opportunities 2015 (Year: 2015). [cited by applicant]
U.S. Advisory Action dated Oct. 29, 2018, issued in U.S. Appl. No. 15/404,100 (8 pages). [cited by applicant]
U.S. Notice of Allowance dated Dec. 31, 2018, issued in U.S. Appl. No. 15/404,100 (12 pages). [cited by applicant]
U.S. Office Action dated Apr. 11, 2018, issued in U.S. Appl. No. 15/404,100 (24 pages). [cited by applicant]
U.S. Office Action dated Apr. 11, 2018, issued in U.S. Appl. No. 15/404,121 (31 pages). [cited by applicant]
U.S. Office Action dated Apr. 19, 2018, issued in U.S. Appl. No. 15/423,384 (20 pages). [cited by applicant]
U.S. Office Action dated Aug. 10, 2018, issued in U.S. Appl. No. 15/400,835, 16 pages. [cited by applicant]
U.S. Final Office Action dated Feb. 7, 2019, issued in U.S. Appl. No. 15/400,835 (12 pages). [cited by applicant]
Venugopal, et al., A Taxonomy of Data Grids for Distributed Data Sharing, Management and Processing, ACM CSUR, vol. 38, No. 1, DOI: 10.1145/1132952.1132955, Jun. 29, 2006, pp. 1-46. [cited by applicant]
Wang, et al., “A New Scheme for Cache Optimization Based on Cluster Computing Framework Spark”, 2015 8th International Symposium on Computational Intelligence and Design (ISCID). vol. 1. IEEE, 2015, pp. 114-117. [cited by applicant]
Xu, Zhou, et al. “A Dynamic Distributed Replica Management Mechanism Based on Accessing Frequency Detecting,” Operating Systems Review (ACM), vol. 38, No. 3, 2004, pp. 26-34; DOI: 10.1145/1035834.1035838. [cited by applicant]
Zaharia, Matei et al., “Spark: Cluster Computing with Working Sets”, University of California, Berkeley, HotCloud 10 (2010): 10-10, (pp. 1-7). [cited by applicant]
Ziarek Partial Memoization of Concurrency and Communication (Year: 2009). [cited by applicant]