IP Library Granted Patent US 10,754,735
Granted Patent B2
US 10,754,735 · App. 15/817,592 · Granted Aug 25, 2020

Distributed storage reservation for recovering distributed data

Inventors: Rohit Shekhar (Sunnyvale, CA); Francis Zhang (Edmonton, CA)
Assignee: salesforce.com, inc.
G06F11/1469G06F11/1451G06F11/1456G06F11/1464G06F2201/80G06F2201/805G06F2201/82G06F2201/84
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 10,754,735
App. No.
15/817,592
Granted
Aug 25, 2020
Kind
B2
Abstract

Distributed storage reservation for distributed data recovery is described. A system identifies a total number of connected computers, a storage capacity of each connected computer, and a maximum storage capacity of the identified storage capacities of the connected computers. The system determines a reserved storage capacity based on the maximum storage capacity and a reduced total number of the connected computers. The system provisions the reserved storage capacity in each connected computer. The system stores replicas of a database on the connected computers and on multiple computers, the multiple computers being the same as or different than the connected computers. The system identifies that a connected computer storing a replica of the database is unavailable. The system restores a replica of the database from at least one computer storing one replica to the reserved storage capacity in each of multiple available connected computers.

Claims (40)

1. A system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

identify a total number of connected computers, a storage capacity of each of the connected computers, and a maximum storage capacity of the identified storage capacities of the connected computers;

determine a reserved storage capacity based on the maximum storage capacity and a reduced total number of connected computers;

provision the reserved storage capacity in each of the connected computers;

store a plurality of replicas of a database on a plurality of the connected computers and on a plurality of computers, the plurality of computers being the same as or different than the connected computers;

identify that one of the connected computers storing one of the plurality of replicas of the database is unavailable; and

restore a replica of the database from at least one of the computers storing one of the plurality of replicas to the reserved storage capacity in each of a plurality of available connected computers.

2. The system of claim 1 , wherein the reserved storage capacity in each of the connected computers comprises at least one of an additionally provisioned storage capacity in each of the connected computers and an existing storage capacity in each of the connected computers.

3. The system of claim 1 , wherein the connected computers share a point of failure, and the plurality of computers share at least one other point of failure.

4. The system of claim 1 , wherein identifying that one of the connected computers storing one of the plurality of replicas of the database is unavailable comprises assigning an identifier of the one of the connected computers to an identifier of a pseudo computer of the connected computers, and assigning a data storage distribution weight of the one of the connected computers to a data storage distribution weight of the pseudo computer.

5. The system of claim 1 , wherein restoring the replica of the database from at least one-of the computers storing one of the plurality of replicas comprises mapping data stored by the one of the connected computers to a pseudo computer of the connected computers, mapping data mapped to the pseudo computer to the plurality of available connected computers, and assigning a corresponding data storage distribution weight to each of the plurality of available connected computers, each data storage distribution weight being based on an available storage capacity of a corresponding available connected computer.

6. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to restore the replica of the database from the reserved storage capacity in each of the plurality of available connected computers to a provisioned replacement computer of the connected computers in response to identifying the provisioned replacement computer.

7. The system of claim 6 , wherein restoring the replica of the database to the provisioned replacement computer comprises increasing a data storage distribution weight of the provisioned replacement computer and decreasing a data storage distribution weight of a pseudo computer of the connected computers.

8. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

identify a total number of connected computers, a storage capacity of each of the connected computers, and a maximum storage capacity of the identified storage capacities of the connected computers;

determine a reserved storage capacity based on the maximum storage capacity and a reduced total number of connected computers;

provision the reserved storage capacity in each of the connected computers;

store a plurality of replicas of a database on a plurality of the connected computers and on a plurality of computers, the plurality of computers being of the same as or different than the connected computers;

identify that one of the connected computers storing one of the plurality of replicas of the database is unavailable; and

restore a replica of the database from at least one of the computers storing one of the plurality of replicas to the reserved storage capacity in each of a plurality of available connected computers.

9. The computer program product of claim 8 , wherein the reserved storage capacity in each of the connected computers comprises at least one of an additionally provisioned storage capacity in each of the connected computers and an existing storage capacity in each of the connected computers.

10. The computer program product of claim 8 , wherein the connected computers share a point of failure, and the plurality of computers share at least one other point of failure.

11. The computer program product of claim 8 , wherein identifying that one of the connected computers storing one of the plurality of replicas of the database is unavailable comprises assigning an identifier of the one of the connected computers to an identifier of a pseudo computer of the connected computers, and assigning a data storage distribution weight of the one of the connected computers to a data storage distribution weight of the pseudo computer.

12. The computer program product of claim 8 , wherein restoring the replica of the database from at least one-of the computers storing one of the plurality of replicas comprises mapping data stored by the one of the connected computers to a pseudo computer of the connected computers, mapping data mapped to the pseudo computer to the plurality of available connected computers, and assigning a corresponding data storage distribution weight to each of the plurality of available connected computers, each data storage distribution weight being based on an available storage capacity of a corresponding available connected computer.

13. The computer program product of claim 8 , wherein the program code comprises further instructions to restore the replica of the database from the reserved storage capacity in each of the plurality of available connected computers to a provisioned replacement computer of the connected computers in response to identifying the provisioned replacement computer, wherein restoring the replica of the database to the provisioned replacement computer comprises increasing a data storage distribution weight of the provisioned replacement computer and decreasing a data storage distribution weight of a pseudo computer of the connected computers.

14. A method comprising:

identifying a total number of connected computers, a storage capacity of each of the connected computers, and a maximum storage capacity of the identified storage capacities of the connected computers;

determining a reserved storage capacity based on the maximum storage capacity and a reduced total number of connected computers;

provisioning the reserved storage capacity in each of the connected computers;

storing a plurality of replicas of a database on a plurality of the connected computers and on a plurality of computers, the plurality of computers being the same as or different than the connected computers;

identifying that one of the connected computers storing one of the plurality of replicas of the database is unavailable; and

restoring a replica of the database from at least one of the computers storing one of the plurality of replicas to the reserved storage capacity in each of a plurality of available connected computers.

15. The method of claim 14 , wherein the reserved storage capacity in each of the connected computers comprises at least one of an additionally provisioned storage capacity in each of the connected computers and an existing storage capacity in each of the connected computers.

16. The method of claim 14 , wherein the connected computers share a point of failure, and the plurality of computers share at least one other point of failure.

17. The method of claim 14 , wherein identifying that one of the connected computers storing one of the plurality of replicas of the database is unavailable comprises assigning an identifier of the one of the connected computers to an identifier of a pseudo computer of the connected computers, and assigning a data storage distribution weight of the one of the connected computers to a data storage distribution weight of the pseudo computer.

18. The method of claim 14 , wherein restoring the replica of the database from at least one-of the computers storing one of the plurality of replicas comprises mapping data stored by the one of the connected computers to a pseudo computer of the connected computers, mapping data mapped to the pseudo computer to the plurality of available connected computers, and assigning a corresponding data storage distribution weight to each of the plurality of available connected computers, each data storage distribution weight being based on an available storage capacity of a corresponding available connected computer.

19. The method of claim 14 , further comprising restoring the replica of the database from the reserved storage capacity in each of the plurality of available connected computers to a provisioned replacement computer of the connected computers in response to identifying the provisioned replacement computer.

20. The method of claim 19 , wherein restoring the replica of the database to the provisioned replacement computer comprises increasing a data storage distribution weight of the provisioned replacement computer and decreasing a data storage distribution weight of a pseudo computer of the connected computers.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2017
From: SHEKHAR, ROHIT; ZHANG, FRANCIS
To: SALESFORCE.COM, INC.
Reel/Frame 044177/0592 →