CPC H04L 67/61 (2022.05) [H04L 41/5096 (2013.01); H04L 63/102 (2013.01); H04L 67/1023 (2013.01); H04L 67/1097 (2013.01); H04L 67/53 (2022.05)] | 18 Claims |
1. A computer-implemented method for managing data access, the method comprising:
receiving a data access request from a requestor for client data, wherein the client data was previously redundantly stored in a plurality of storage providers that are unknown to the requestor;
responsive to receiving the data access request:
identifying a service level objective for servicing the data access request, wherein the service level objective specifies a controlling metric and a non-controlling metric, the controlling metric comprising a minimum bandwidth to be met by a storage provider;
determining an operational performance of each of the plurality of storage providers that currently store the client data;
identifying a portion of the plurality of storage providers that meet the controlling metric based on their corresponding operational performance;
ranking, based on the non-controlling metric, only the portion of the plurality of storage providers that currently store the client data, wherein the non-controlling metric is at least based on a cost to access the client data;
identifying a first storage provider from the portion of the plurality of storage providers based on the ranking;
copying a first portion of data blocks corresponding to the client data from the first storage provider;
subsequent to copying the first portion of data blocks corresponding to the client data from the first storage provider, and prior to copying a second portion of data blocks corresponding to the client data, determining that the first storage provider has become inaccessible;
in response to the first storage provider becoming inaccessible, using the ranking of the portion of the plurality of storage providers to identify a second storage provider;
copying the second portion of data blocks corresponding to the client data from the second storage provider; and
reconstructing the client data using the first portion of data blocks and the second portion of data blocks to produce reconstructed client data; and
providing, to the requestor, access to the reconstructed client data.
|