IP Library Granted Patent US 11,809,752
Granted Patent B2
US 11,809,752 · App. 17/944,470 · Granted Nov 7, 2023

System, method, and computer program product for generating a data storage server distribution pattern

Inventor: Paul Max Payton (San Carlos, CA)
Assignee: Visa International Service Association
G06F3/067G06F3/0614G06F3/0644G06F3/0655G06F3/0683G06F11/102H03M13/1515
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 11,809,752
App. No.
17/944,470
Granted
Nov 7, 2023
Kind
B2
Abstract

Described are a system, method, and computer program product for generating a data storage server distribution pattern. The method includes determining a set of servers and raw data to be stored. The method also includes transforming the raw data according to an error-correcting code scheme to produce distributable data. The method further includes determining a server reliability of each server in the set of servers. The method further includes generating the data storage server distribution pattern based on maximizing a system reliability relative to maximizing a system entropy. System reliability may be based on a minimum reliability of the set of servers, and system entropy may be based on a cumulated information entropy of each server of the set of servers. The method further includes distributing the distributable data to be stored across at least two servers of the set of servers according to the data storage server distribution pattern.

Claims (53)

1. A computer-implemented method comprising:

transforming, with at least one processor, raw data according to an error-correcting code scheme to produce distributable data;

generating, with at least one processor, a data storage server distribution pattern for storing the distributable data across a subset of at least two servers from a set of available servers, wherein the data storage server distribution pattern comprises a partitioning of the distributable data such that no one server of the subset of at least two servers stores an entirety of the distributable data, and wherein generating the data storage server distribution pattern is based on maximizing a value of a combination of a system reliability and a system entropy by iteratively:

determining the system reliability based on permuting at least one error vector over a plurality of different partitions of the distributable data across the set of available servers, wherein each partition of the plurality of different partitions comprises a different allocation of bits to each server of the at least two servers of the distributable data, and wherein each error vector of the at least one error vector comprises an allocation of bit errors to each server of the at least two servers;

determining the system entropy based on a cumulated information entropy of each server of the set of available servers; and

determining the value of the combination of the system reliability and the system entropy; and

storing, with at least one processor, the distributable data across the subset of at least two servers according to the data storage server distribution pattern.

2. The method of claim 1 , wherein the error-correcting code scheme is a Reed-Solomon error-correcting code scheme and a number of bits in the distributable data is at least twice a number of bits in the raw data.

3. The method of claim 1 , wherein maximizing the value of the combination of the system reliability and the system entropy further comprises weighting the system reliability and the system entropy to prioritize the system reliability or the system entropy.

4. The method of claim 1 , wherein the plurality of different partitions comprises all possible partitions of the distributable data across the set of available servers.

5. The method of claim 1 , wherein maximizing the value of the combination of the system reliability and the system entropy further comprises iterating over permutations of partitions of bit allocations to identify an optimal assignment of bits to the set of available servers.

6. The method of claim 1 , wherein maximizing the value of the combination of the system reliability and the system entropy further comprises permuting over a random subset of partitions of the distributable data using a genetic algorithm.

7. The method of claim 1 , further comprising encrypting, with at least one processor, the raw data prior to transforming the raw data according to the error-correcting code scheme to produce the distributable data.

8. The method of claim 1 , further comprising, in response to a server of the subset of at least two servers becoming inoperative:

retrieving, with at least one processor, a portion of the distributable data from at least one operative server of the subset of at least two servers; and

determining, with at least one processor, the raw data from the portion of the distributable data using the error-correcting code scheme.

9. The method of claim 8 , further comprising, in response to the server of the subset of at least two servers becoming inoperative:

transforming, with at least one processor, the raw data according to the error-correcting code scheme to produce new distributable data;

generating, with at least one processor, a new data storage server distribution pattern for storing the new distributable data across a new subset of at least two servers from the set of available servers, wherein the new data storage server distribution pattern comprises a partitioning of the new distributable data such that no one server of the new subset of at least two servers stores an entirety of the distributable data, and wherein generating the new data storage server distribution pattern is based on maximizing the value of the combination of the system reliability and the system entropy; and

storing, with at least one processor, the new distributable data across the new subset of at least two servers according to the new data storage server distribution pattern.

10. A system comprising at least one server comprising at least one processor, the at least one server being programmed and/or configured to:

transform raw data according to an error-correcting code scheme to produce distributable data;

generate a data storage server distribution pattern for storing the distributable data across a subset of at least two servers from a set of available servers, wherein the data storage server distribution pattern comprises a partitioning of the distributable data such that no one server of the subset of at least two servers stores an entirety of the distributable data, and wherein generating the data storage server distribution pattern is based on maximizing a value of a combination of a system reliability and a system entropy by iteratively:

determining the system reliability based on permuting at least one error vector over a plurality of different partitions of the distributable data across the set of available servers, wherein each partition of the plurality of different partitions comprises a different allocation of bits to each server of the at least two servers of the distributable data, and wherein each error vector of the at least one error vector comprises an allocation of bit errors to each server of the at least two servers;

determining the system entropy based on a cumulated information entropy of each server of the set of available servers; and

determining the value of the combination of the system reliability and the system entropy; and

store the distributable data across the subset of at least two servers according to the data storage server distribution pattern.

11. The system of claim 10 , wherein the error-correcting code scheme is a Reed-Solomon error-correcting code scheme and a number of bits in the distributable data is at least twice a number of bits in the raw data.

12. The system of claim 10 , wherein maximizing the value of the combination of the system reliability and the system entropy further comprises weighting the system reliability and the system entropy to prioritize the system reliability or the system entropy.

13. The system of claim 10 , wherein the at least one server is further programmed and/or configured to encrypt the raw data prior to transforming the raw data according to the error-correcting code scheme to produce the distributable data.

14. The system of claim 10 , wherein the at least one server is further programmed and/or configured to, in response to a server of the subset of at least two servers becoming inoperative:

retrieve a portion of the distributable data from at least one operative server of the subset of at least two servers; and

determine the raw data from the portion of the distributable data using the error-correcting code scheme.

15. The system of claim 14 , wherein the at least one server is further programmed and/or configured to, in response to the server of the subset of at least two servers becoming inoperative:

transform the raw data according to the error-correcting code scheme to produce new distributable data;

generate a new data storage server distribution pattern for storing the new distributable data across a new subset of at least two servers from the set of available servers, wherein the new data storage server distribution pattern comprises a partitioning of the new distributable data such that no one server of the new subset of at least two servers stores an entirety of the distributable data, and wherein generating the new data storage server distribution pattern is based on maximizing the value of the combination of the system reliability and the system entropy; and

store the new distributable data across the new subset of at least two servers according to the new data storage server distribution pattern.

16. A computer program product comprising at least one non-transitory computer-readable medium comprising program instructions that, when executed by at least one processor, cause the at least one processor to:

transform raw data according to an error-correcting code scheme to produce distributable data;

generate a data storage server distribution pattern for storing the distributable data across a subset of at least two servers from a set of available servers, wherein the data storage server distribution pattern comprises a partitioning of the distributable data such that no one server of the subset of at least two servers stores an entirety of the distributable data, and wherein generating the data storage server distribution pattern is based on maximizing a value of a combination of a system reliability and a system entropy by iteratively:

determining the system reliability based on permuting at least one error vector over a plurality of different partitions of the distributable data across the set of available servers, wherein each partition of the plurality of different partitions comprises a different allocation of bits to each server of the at least two servers of the distributable data, and wherein each error vector of the at least one error vector comprises an allocation of bit errors to each server of the at least two servers;

determining the system entropy based on a cumulated information entropy of each server of the set of available servers; and

determining the value of the combination of the system reliability and the system entropy; and

store the distributable data across the subset of at least two servers according to the data storage server distribution pattern.

17. The computer program product of claim 16 , wherein the error-correcting code scheme is a Reed-Solomon error-correcting code scheme and a number of bits in the distributable data is at least twice a number of bits in the raw data.

18. The computer program product of claim 16 , wherein maximizing the value of the combination of the system reliability and the system entropy further comprises weighting the system reliability and the system entropy to prioritize the system reliability or the system entropy.

19. The computer program product of claim 16 , wherein the program instructions further cause the at least one processor to, in response to a server of the subset of at least two servers becoming inoperative:

retrieve a portion of the distributable data from at least one operative server of the subset of at least two servers; and

determine the raw data from the portion of the distributable data using the error-correcting code scheme.

20. The computer program product of claim 19 , wherein the program instructions further cause the at least one processor to, in response to the server of the subset of at least two servers becoming inoperative:

transform the raw data according to the error-correcting code scheme to produce new distributable data;

generate a new data storage server distribution pattern for storing the new distributable data across a new subset of at least two servers from the set of available servers, wherein the new data storage server distribution pattern comprises a partitioning of the new distributable data such that no one server of the new subset of at least two servers stores an entirety of the distributable data, and wherein generating the new data storage server distribution pattern is based on maximizing the value of the combination of the system reliability and the system entropy; and

store the new distributable data across the new subset of at least two servers according to the new data storage server distribution pattern.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2022
From: PAYTON, PAUL MAX
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 061091/0742 →
Continuity (2)
Continuation 16531803 · Aug 5, 2019
Related Publication 20230004300A1 · Jan 5, 2023