US 11,755,503 B2
Persisting directory onto remote storage nodes and smart downloader/uploader based on speed of peers
Jacob Geoffrey Willoughby, Kaysville, UT (US); Thomas Colby Winegar, Draper, UT (US); and Bryan Farrin Mangelson, American Fork, UT (US)
Assigned to STORJ LABS INTERNATIONAL SEZC, Atlanta, GA (US)
Filed by STORJ LABS INTERNATIONAL SEZC, Atlanta, GA (US)
Filed on Oct. 26, 2021, as Appl. No. 17/452,363.
Claims priority of provisional application 63/107,213, filed on Oct. 29, 2020.
Prior Publication US 2022/0138118 A1, May 5, 2022
Int. Cl. G06F 13/16 (2006.01)
CPC G06F 13/161 (2013.01) 20 Claims
OG exemplary drawing
 
1. A computing system comprising:
one or more processors; and
one or more computer-readable media having stored thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to perform the following:
receive a request to download a block of data stored in a plurality of remote storage nodes, wherein the block of data comprises a plurality of slices where each slice in the plurality of slices is stored at each of the plurality of remote storage nodes;
access addresses for the plurality of slices from a directory object, wherein:
the directory object comprises one or more addresses for each slice in the plurality of slices, and
the directory object comprises an address for an updated directory object that comprises updated addresses for at least a portion of the plurality of slices;
request a first slice among the plurality of slices from each of the plurality of remote storage nodes, wherein the request is directed towards addresses retrieved from the directory object;
determine a download speed for each of the plurality of remote storage nodes based on each remote storage node's response to the request of the first slice;
based on the determined download speed of each of the plurality of remote storage nodes, determine which one or more remote storage nodes is to be requested to provide a next slice of data to achieve a fastest overall download speed; and
requests the next slice of data from the determined one or more remote storage nodes.