# US 11,308,040 B2 · Distributed secure edge storage network utilizing cost function to allocate heterogeneous storage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,040 B2
- Document ID: US11308040B2
- Status: Granted
- Kind: B2
- Application number: 16/669,696
- Filed: 2019-10-31
- Published: 2021-05-06
- Granted: 2022-04-19
- Earliest claimed: 2019-10-31
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Yasaman Keshtkarjahromi; Mehmet Fatih Erden
- Web page: https://patentgrep.com/patent/US11308040B2

## CPC

- G06F 16/182: Distributed file systems
- G06F 16/278: {Data partitioning, e.g. horizontal or vertical partitioning}
- G06F 16/90335: {Query processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A set of N network-coupled edge storage nodes are selected to store a file of size |F|. The N edge storage nodes have heterogeneous storage availability and are ordered from a largest storage availability at the first edge storage node to a smallest availability at the Nth edge storage node. A value Z<N is selected, such that an attacker having access to Z edge storage nodes is unable to decode any partial information of the file. The first through Z+1th edge storage nodes are assigned a same packet size. Keys are stored in the first Z edge storage nodes and independent linear combinations of the keys combined with partitions of the file are stored in the Z+1th to the Nth edge storage nodes.

## Claims

### Claim 1

A method of distributedly storing a file of size |F| in a system of networked storage nodes, the method comprising:
selecting, by a system designer, a value Z that is a security parameter for distributedly storing the file in N storage nodes of the system, wherein Z<N and wherein the file and Z linear code keys are stored in N packets that are each stored in a different one of the N storage nodes, wherein at least two of the N storage nodes allocate different sizes of memory for storing the file, the N storage nodes being ordered from a largest storage capacity at a first storage node to a smallest capacity at an Nth storage node, the linear code keys stored in a first through Zth storage nodes and independent linear combinations of the linear code keys and partitions of the file stored in a Z+1th to Nth storage node, wherein the first through Z+1th storage nodes have a same allocated memory size of |PS_Z+1|, which is equal to a size of a largest of the partitions of the file, the largest partition of the file being stored on the Z+1th storage node;
determining a lower bound on a cost by minimizing a cost function that includes N, |PS_Z+1|, |F|, Z, an initial data access cost CT, and a transmission and downloading cost Cd, the lower bound determining N*, which is an optimum value for N that minimizes the lower bound;
initially allocating equal memory sizes from N* of the storage nodes with a largest available storage sizes to store the file and a set of linear code keys;
based on determining more memory is required than available in the initial allocation of the N* storage nodes, iteratively determining a first cost of adding more storage nodes to the N* storage nodes and a second cost of allocating more memory from a subset of the N* storage nodes; and
defining N≥N* based on a minimal cost determined from the iterative determinations, and storing the file and linear code keys in the N storage nodes.

### Claim 2 (depends on 1)

The method of claim 1, wherein an amount of memory available at each of the storage nodes is based on storage availability of each of the storage nodes, the storage availability being based on both available capacity and data transfer rate.

### Claim 3 (depends on 1)

The method of claim 1, wherein creating the independent linear combinations of the linear code keys and the partitions comprises determining coefficients of the independent linear combinations based on rows of a Vandermonde matrix.

### Claim 4 (depends on 1)

The method of claim 1, wherein the cost function comprises NCT+(Z|PS_Z+1|+|F|) Cd.

### Claim 5 (depends on 1)

The method of claim 1, wherein N* is selected according to
Z
⁢

F

⁢
C
d
C
T
+
Z
rounded to an integer.

### Claim 6 (depends on 1)

An apparatus, comprising:
a network interface operable to access the system of networked storage nodes of claim 1;
a processor coupled to the network interface and operable via instructions that cause the processor to perform the method of claim 1.

### Claim 7

A method for distributedly storing a file of size |F| in N edge storage nodes that are coupled via a network and that have heterogeneous storage availability, the method comprising:
ordering the N edge storage nodes from a largest storage availability at a first edge storage node to a smallest availability at an Nth edge storage node;
selecting, by a system designer, a security parameter Z<N, the first through Z+1th edge storage nodes being assigned a same packet size;
storing linear code keys in the first Z edge storage nodes; and
storing independent linear combinations of the linear code keys combined with partitions of the file in the Z+1th to the Nth edge storage nodes.

### Claim 8 (depends on 7)

The method of claim 7, wherein the same packet size is |PS_Z+1|, which is a size of a largest of the partitions of the file, the method further comprising:
determining a lower bound on a cost by minimizing a cost function that includes N, |PS_Z+1|, |F|, Z, an initial data access cost CT, and a transmission and downloading cost Cd, the lower bound determining N*, which is an optimum value for N that minimizes the lower bound;
initially allocating equal memory sizes from the N* of the edge storage nodes with the largest available storage sizes to store the file and a set of linear code keys;
based on determining more memory is required than available in the initial allocation of the N* storage nodes, iteratively determining a first cost of adding more edge storage nodes to the N* edge storage nodes and a second cost of allocating more memory from each of the N* edge storage nodes; and
based on a minimal cost determined from the iterative determinations, selecting the value of N≥N* and selecting a non-homogeneous storage availability for each of the N edge storage nodes.

### Claim 9 (depends on 8)

The method of claim 8, wherein the cost function comprises NCT+(Z|PsZ+1|+|F|) Cd.

### Claim 10 (depends on 8)

The method of claim 8, wherein N* is selected according to
Z
⁢

F

⁢
C
d
C
T
+
Z
rounded to an optimum integer.

### Claim 11 (depends on 7)

The method of claim 7, wherein the heterogeneous storage availability is based on both available capacity and data transfer rate.

### Claim 12 (depends on 7)

The method of claim 7, wherein creating the independent linear combinations of the linear code keys and the partitions comprises determining coefficients of the independent linear combinations based on rows of a Vandermonde matrix.

### Claim 13 (depends on 7)

An apparatus, comprising:
a network interface operable to access the network of claim 7;
a processor coupled to the network interface and operable via instructions that cause the processor to perform the method of claim 7.

### Claim 14

A method of determining a value N for storing a file into N packets that are each stored on one of N storage nodes that have heterogeneous storage availability, a first subset of the N packets used to store linear code keys and a second subset of the N packets used to store independent linear combinations of the linear code keys combined with partitions of the file, the method comprising:
determining a lower bound a cost function that includes: an initial data access cost part that increases with N; and a transmission and downloading cost part that decreases with N; and
determining an optimum value for N that minimizes a lower bound of the cost function.

### Claim 15 (depends on 14)

The method of claim 14, wherein the initial data access cost part of the cost function comprises NCT, and the transmission and downloading cost part of the cost function comprises
(
Z
⁢

F

N
-
Z
+

F

)
+
C
d
,
wherein CT is an initial data access cost, Cd is a transmission and downloading cost, Z is a number of the first set of packets used to store the linear code keys, and |F| is a size of the file.

### Claim 16 (depends on 14)

The method of claim 14, further comprising:
initially allocating equal memory sizes from N* storage nodes to store the first and second set of the packets;
based on determining more memory is required than available in the initial allocation of the N* storage nodes, iteratively determining a first cost of adding more storage nodes to the N* storage nodes and a second cost of allocating more memory from a subset of the N* storage nodes; and
based on a minimal cost determined from the iterative determinations, selecting the value of N≥N*.
