IP Library › Granted Patent US 10,911,416
Granted Patent B2
US 10,911,416 · App. 16/530,642 · Granted Feb 2, 2021

Secured transfer of data between datacenters

Inventor: Paul Eldridge (Fairfax, VA)
Assignee: salesforce.com, inc.
H04L63/0428G06F11/3006G06F11/3409G06F11/3442G06F21/602H04L63/0272H04L63/0435H04L63/0485G06F2201/81G06F2221/2107
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,911,416
App. No.
16/530,642
Granted
Feb 2, 2021
Kind
B2
Abstract

In various embodiments, a method of transferring data between datacenters may be performed. The method may include running a first plurality of host programs and a first plurality of encryption units at a first datacenter. The method may further include establishing, between the first datacenter and a second datacenter, secure communication connections between each of the first plurality of encryption units and a corresponding one of a second plurality of encryption units running at the second datacenter. The method may further include transferring, by the first datacenter, data from the first plurality of host programs to a second plurality of host programs running at the second datacenter.

Claims (57)

1. A method, comprising:

monitoring one or more performance metrics of a first encryption unit executing at a first datacenter;

transferring data from a first host program executing at the first data center to a second host program executing at a second data center, including by:

receiving, by the first host program, information indicative of the one or more performance metrics of the first encryption unit;

selecting, by the first host program, the first encryption unit, from a plurality of encryption units, to encrypt data from the first host program, wherein the first encryption unit is selected based on the information indicative of the one or more performance metrics;

encrypting, by the first encryption unit, data from the first host program to generate encrypted data; and

sending the encrypted data from the first encryption unit to a corresponding encryption unit executing at the second datacenter;

monitoring one or more levels of usage of the plurality of encryption units; and

modifying a number of encryption units executing at the first datacenter based on the one or more levels of usage, including by sending a request to an orchestration host to instantiate additional encryption units at the first datacenter and the second datacenter.

2. The method of claim 1 , wherein the one or more levels of usage includes at least one of the following:

a processor utilization of one or more of the plurality of encryption units;

a data-transfer rate of one or more of the plurality of encryption units; and

a Bidirectional Forwarding Detection (BFD) link status.

3. The method of claim 1 , wherein the orchestration host is executing at the first datacenter.

4. The method of claim 1 , further comprising:

periodically refreshing the plurality of encryption units executing at the first datacenter, including by:

decommissioning at least one of the plurality of encryption units after a particular time interval such that the at least one encryption unit is no longer available for use in transferring encrypted data to the second data center; and

instantiating a new encryption unit at the first datacenter.

5. The method of claim 1 , wherein the one or more performance metrics include, for a given encryption unit of the plurality of encryption units, at least one of a processor utilization, a data transmission speed, and a status of a secure communication connection.

6. The method of claim 1 , further comprising:

determining, based on the one or more performance metrics, ranking information corresponding to the plurality of encryption units; and

providing the information indicative of the one or more performance metrics of the plurality of encryption units to the first host program, wherein the information indicative of the one or more performance metrics includes the ranking information.

7. The method of claim 1 , further comprising:

determining that a performance level of a particular encryption unit of the plurality of encryption units is below a performance threshold; and

in response to the determining, sending a request to an orchestration host to remove the particular encryption unit from the plurality of encryption units.

8. A non-transitory, computer-readable medium having computer instructions stored thereon that are capable of being executed by one or more computer systems to cause operations comprising:

monitoring one or more performance metrics of a first encryption unit executing at a first datacenter;

transferring data from a first host program executing at the first data center to a second host program executing at a second data center, including by:

receiving, by the first host program, information indicative of the one or more performance metrics of the first encryption unit;

selecting, by the first host program, the first encryption unit, from a plurality of encryption units, to encrypt data from the first host program, wherein the first encryption unit is selected based on the information indicative of the one or more performance metrics;

encrypting, by the first encryption unit, data from the first host program to generate encrypted data; and

sending the encrypted data from the first encryption unit to a corresponding encryption unit executing at the second datacenter;

monitoring one or more levels of usage of the plurality of encryption units; and

modifying a number of encryption units executing at the first datacenter based on the one or more levels of usage, including by sending a request to an orchestration host to instantiate additional encryption units at the first datacenter and the second datacenter.

9. The non-transitory, computer-readable medium of claim 8 , wherein the operations further comprise:

determining that at least one of the one or more performance metrics of a particular encryption unit, of the plurality of encryption units, is below a particular threshold;

in response to the determining, adjusting information indicative of the at least one performance metric of the particular encryption unit; and

providing the information indicative of the at least one performance metric of the particular encryption unit to the first host program.

10. The non-transitory, computer-readable medium of claim 8 , wherein each of the plurality of encryption units share a cryptographic key; and wherein the encrypting comprises establishing a secure tunnel, using the cryptographic key, over a peer-to-peer connection between the first encryption unit and the corresponding encryption unit at the second datacenter.

11. The non-transitory, computer-readable medium of claim 8 , wherein the encrypting includes using a parallel packet-processing algorithm to encrypt the data from the first host program.

12. A system, comprising:

a datacenter facility that includes:

a plurality of computer systems;

a plurality of storage subsystems that are configured to store data for a plurality of entities; and

a network interface configured to communicate with a different datacenter facility;

wherein at least one of the plurality of computer systems includes a non-transitory, computer-readable medium having program instructions stored thereon that are capable of being executed by one or more of the plurality of computer systems to perform operations, comprising:

monitoring one or more performance metrics of a first encryption unit executing at the datacenter facility;

transferring data from a first host program executing at the datacenterfacilityto a second host program executing at the different datacenter facility, including by:

receiving, by the first host program, information indicative of the one or more performance metrics of the first encryption unit;

selecting, by the first host program, the first encryption unit, from a plurality of encryption units, to encrypt data from the first host program, wherein the first encryption unit is selected based on the information indicative of the one or more performance metrics;

encrypting, by the first encryption unit, data from the first host program to generate encrypted data; and

sending the encrypted data from the first encryption unit to a corresponding encryption unit executing at the different datacenter facility;

monitoring one or more levels of usage of the plurality of encryption units; and

modifying a number of encryption units executing at the datacenter facility based on the one or more levels of usage, including by sending a request to an orchestration host to instantiate additional encryption units at the data center facility.

13. The system of claim 12 , wherein at least one of the plurality of encryption units is a virtual machine executing on one or more of the plurality of computer systems.

14. The system of claim 12 , wherein the operations further comprise:

establishing a secure communication connection between the first encryption unit and the corresponding encryption unit executing at the different datacenter facility, wherein the secure communication connection is an IPsec tunnel created over a BGP peer-to-peer connection between the first encryption unit and the corresponding encryption unit.

Assignments (2)
CHANGE OF NAME Recorded Aug 4, 2026
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 076118/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2019
From: ELDRIDGE, PAUL
To: SALESFORCE.COM, INC.
Reel/Frame 049945/0907 →
Continuity (2)
Continuation 15419303 · Jan 30, 2017
Related Publication 20200028830A1 · Jan 23, 2020