IP Library Granted Patent US 10,698,629
Granted Patent B2
US 10,698,629 · App. 15/824,750 · Granted Jun 30, 2020

Systems and methods for locality management

Inventors: Muthukaruppan Annamalai (Redmond, WA); Harish Srinivas (Union City, CA); Kaushik Ravichandran (Seattle, WA); Igor A. Zinkovsky (Redmond, WA); Luning Pan (Foster City, CA)
Assignee: Facebook, Inc.
G06F3/0647G06F3/067G06F3/0611G06F3/0653G06F11/3476G06F16/9535G06F16/9537H04L67/02H04L67/1002H04L67/125H04L67/306G06Q50/01
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,698,629
App. No.
15/824,750
Granted
Jun 30, 2020
Kind
B2
Abstract

Systems, methods, and non-transitory computer readable media are configured to determine a request corresponding to a portion of data. A placement configuration associated with the portion of data can be determined. The placement configuration can belong to a set of placement configurations. A datacenter identified by the placement configuration can be selected. Subsequently, the portion of data can be accessed at the selected datacenter.

Claims (61)

1. A computer-implemented method comprising:

receiving, by a computing system, a request to access a portion of data at a datacenter among geographically distributed datacenters;

determining, by the computing system, a first placement configuration associated with the portion of data based on location data,

wherein the first placement configuration specifies one or more first datacenters among which the portion of data is stored,

wherein the first placement configuration belongs to a set of placement configurations;

selecting, by the computing system, a datacenter from the one or more first datacenters;

accessing, by the computing system, the portion of data at the selected datacenter;

and

in response to a determination that the selected datacenter is different from the datacenter at which the request is received,

determining, by the computing system, a second placement configuration associated with the portion of data, wherein the second placement configuration specifies one or more second datacenters, and

migrating, by the computing system, the portion of data to the one or more second datacenters.

2. The computer-implemented method of claim 1 , further comprising:

setting, by the computing system, the location data to indicate that the second placement configuration is associated with the portion of data.

3. The computer-implemented method of claim 1 , wherein the determining the first placement configuration associated with the portion of data further comprises:

consulting, by the computing system, the location data.

4. The computer-implemented method of claim 1 , further comprising:

logging, by the computing system, to count data, the accessing of the portion of data.

5. The computer-implemented method of claim 1 , wherein the selected datacenter stores a primary instance of the portion of data, and wherein the accessing the portion of data comprises writing to the portion of data.

6. The computer-implemented method of claim 5 , wherein the selected datacenter stores a secondary instance of the portion of data, and wherein the accessing the portion of data comprises reading from the portion of data.

7. The computer-implemented method of claim 1 , further comprising:

changing, by the computing system, the set of placement configurations.

8. A system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the system to perform:

receiving a request to access a portion of data at a datacenter among geographically distributed datacenters;

determining a first placement configuration associated with the portion of data based on location data,

wherein the first placement configuration specifies one or more first datacenters among which the portion of data is stored,

wherein the first placement configuration belongs to a set of placement configurations;

selecting a datacenter from the one or more first datacenters;

accessing the portion of data at the selected datacenter;

and

in response to a determination that the selected datacenter is different from the datacenter at which the request is received,

determining a second placement configuration associated with the portion of data, wherein the second placement configuration specifies one or more second datacenters, and

migrating the portion of data to the one or more second datacenters.

9. The system of claim 8 , wherein the determining the first placement configuration associated with the portion of data further comprises:

consulting the location data.

10. The system of claim 8 , wherein the instructions, when executed by the at least one processor, further cause the system to perform:

logging, to count data, the accessing of the portion of data.

11. The system of claim 8 , wherein the selected datacenter stores a primary instance of the portion of data, and wherein the accessing the portion of data comprises writing to the portion of data.

12. The system of claim 11 , wherein the selected datacenter stores a secondary instance of the portion of data, and wherein the accessing the portion of data comprises reading from the portion of data.

13. The system of claim 8 , further comprising:

changing, by the computing system, the set of placement configurations.

14. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

receiving a request to access a portion of data at a datacenter among geographically distributed datacenters;

determining a first placement configuration associated with the portion of data based on location data,

wherein the first placement configuration specifies one or more first datacenters among which the portion of data is stored,

wherein the first placement configuration belongs to a set of placement configurations;

selecting a datacenter from the one or more first datacenters;

accessing the portion of data at the selected datacenter;

and

in response to a determination that the selected datacenter is different from the datacenter at which the request is received,

determining a second placement configuration associated with the portion of data, wherein the second placement configuration specifies one or more second datacenters, and

migrating the portion of data to the one or more second datacenters.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the determining the first placement configuration associated with the portion of data further comprises:

consulting the location data.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions, when executed by the at least one processor of the computing system, further cause the computing system to perform:

logging, to count data, the accessing of the portion of data.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the selected datacenter stores a primary instance of the portion of data, and wherein the accessing the portion of data comprises writing to the portion of data.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the selected datacenter stores a secondary instance of the portion of data, and wherein the accessing the portion of data comprises reading from the portion of data.

19. The non-transitory computer-readable storage medium of claim 14 , further comprising:

changing, by the computing system, the set of placement configurations.

Assignments (2)
CHANGE OF NAME Recorded Dec 2, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058299/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: ANNAMALAI, MUTHUKARUPPAN; SRINIVAS, HARISH; RAVICHANDRAN, KAUSHIK; ZINKOVSKY, IGOR A.; PAN, LUNING
To: FACEBOOK, INC.
Reel/Frame 052122/0582 →
Continuity (1)
Related Publication 20190163391A1 · May 30, 2019