IP Library Granted Patent US 11,489,918
Granted Patent B2
US 11,489,918 · App. 17/346,746 · Granted Nov 1, 2022

State management and object storage in a distributed cloud computing network

Inventors: Kenton Taylor Varda (Palo Alto, CA); Kyle Kloepper (Champaign, IL)
Assignee: CLOUDFLARE, INC.
H04L67/1095H04L67/01H04L67/34
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,489,918
App. No.
17/346,746
Granted
Nov 1, 2022
Kind
B2
Abstract

A first compute server of a distributed cloud computing network receives a request from a first client device for an object to be handled by an object worker that includes a single instantiation of a piece of code that solely controls reading and writing access to the first object. A determination is made that the object worker is instantiated for the object and is currently running in the first compute server, and the piece of code processes the first request. The first compute server receives a message to be processed by the first object worker from a second compute server. The message includes a second request for the object from a second client device connected to the second compute server. The piece of code processes the message and transmits a reply to the second compute server.

Claims (44)

1. A method, comprising:

instantiating, at a first one of a plurality of compute servers of a distributed cloud computing network, a first single piece of code that solely controls reading and writing to an object, wherein while instantiated at the first one of the plurality of compute servers, other entities of the distributed cloud computing network communicate with the instantiation of the first single piece of code;

receiving a plurality of requests for the object and processing the plurality of requests with the instantiated first single piece of code at the first one of the plurality of compute servers; and

automatically migrating the instantiated first single piece of code from the first one of a plurality of compute servers to a second one of the plurality of compute servers based on a set of one or more parameters, wherein automatically migrating includes instantiating the first single piece of code at the second one of the plurality of compute servers and modifying a directory service to specify that the second one of the plurality of compute servers has sole control for reading and writing to the object.

2. The method of claim 1 , wherein the set of one or more parameters includes origination of the plurality of requests, wherein the second one of the plurality of compute servers has a highest number of originated requests of the plurality of compute servers.

3. The method of claim 1 , wherein the set of one or more parameters includes a minimum total latency, wherein the second one of the plurality of compute servers has the minimum total latency of the plurality of compute servers for the plurality of requests.

4. The method of claim 3 , wherein the minimum total latency is determined by analyzing latency to process each of the plurality of requests.

5. The method of claim 3 , wherein the minimum total latency is determined by measuring latency from each of the plurality of compute servers to each client that originated the plurality of requests.

6. The method of claim 1 , wherein the set of one or more parameters includes historical information of requests to be handled by the first single piece of code.

7. The method of claim 1 , wherein the set of one or more parameters includes predicted requests to be handled by the first single piece of code.

8. The method of claim 1 , wherein the set of one or more parameters includes total ingress traffic.

9. The method of claim 1 , further comprising:

generating an identifier for the object;

prior to automatically migrating the instantiated first single piece of code, associating the identifier for the object with a server identifier of the first one of the plurality of compute servers in the directory service.

10. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, cause the processor to perform operations comprising:

instantiating, at a first one of a plurality of compute servers of a distributed cloud computing network, a first single piece of code that solely controls reading and writing to an object, wherein while instantiated at the first one of the plurality of compute servers, other entities of the distributed cloud computing network communicate with the instantiation of the first single piece of code;

receiving a plurality of requests for the object and processing the plurality of requests with the instantiated first single piece of code at the first one of the plurality of compute servers; and

automatically migrating the instantiated first single piece of code from the first one of a plurality of compute servers to a second one of the plurality of compute servers based on a set of one or more parameters, wherein automatically migrating includes instantiating the first single piece of code at the second one of the plurality of compute servers and modifying a directory service to specify that the second one of the plurality of compute servers has sole control for reading and writing to the object.

11. The non-transitory machine-readable storage medium of claim 10 , wherein the set of one or more parameters includes origination of the plurality of requests, wherein the second one of the plurality of compute servers has a highest number of originated requests of the plurality of compute servers.

12. The non-transitory machine-readable storage medium of claim 10 , wherein the set of one or more parameters includes a minimum total latency, wherein the second one of the plurality of compute servers has the minimum total latency of the plurality of compute servers for the plurality of requests.

13. The non-transitory machine-readable storage medium of claim 12 , wherein the minimum total latency is determined by analyzing latency to process each of the plurality of requests.

14. The non-transitory machine-readable storage medium of claim 12 , wherein the minimum total latency is determined by measuring latency from each of the plurality of compute servers to each client that originated the plurality of requests.

15. The non-transitory machine-readable storage medium of claim 10 , wherein the set of one or more parameters includes historical information of requests to be handled by the first single piece of code.

16. The non-transitory machine-readable storage medium of claim 10 , wherein the set of one or more parameters includes predicted requests to be handled by the first single piece of code.

17. The non-transitory machine-readable storage medium of claim 10 , wherein the set of one or more parameters includes total ingress traffic.

18. The non-transitory machine-readable storage medium of claim 10 , wherein the operations further comprise:

generating an identifier for the object;

prior to automatically migrating the instantiated first single piece of code, associating the identifier for the object with a server identifier of the first one of the plurality of compute servers in the directory service.

19. An apparatus, comprising:

a processor;

a non-transitory machine-readable storage medium coupled with the processor and that provides instructions that, if executed by the processor, cause the apparatus to perform operations including:

instantiating, at a first one of a plurality of compute servers of a distributed cloud computing network, a first single piece of code that solely controls reading and writing to an object, wherein while instantiated at the first one of the plurality of compute servers, other entities of the distributed cloud computing network communicate with the instantiation of the first single piece of code;

receiving a plurality of requests for the object and processing the plurality of requests with the instantiated first single piece of code at the first one of the plurality of compute servers; and

automatically migrating the instantiated first single piece of code from the first one of a plurality of compute servers to a second one of the plurality of compute servers based on a set of one or more parameters, wherein automatically migrating includes instantiating the first single piece of code at the second one of the plurality of compute servers and modifying a directory service to specify that the second one of the plurality of compute servers has sole control for reading and writing to the object.

20. The apparatus of claim 19 , wherein the set of one or more parameters includes origination of the plurality of requests, wherein the second one of the plurality of compute servers has a highest number of originated requests of the plurality of compute servers.

21. The apparatus of claim 19 , wherein the set of one or more parameters includes a minimum total latency, wherein the second one of the plurality of compute servers has the minimum total latency of the plurality of compute servers for the plurality of requests.

22. The apparatus of claim 21 , wherein the minimum total latency is determined by analyzing latency to process each of the plurality of requests.

23. The apparatus of claim 21 , wherein the minimum total latency is determined by measuring latency from each of the plurality of compute servers to each client that originated the plurality of requests.

24. The apparatus of claim 19 , wherein the set of one or more parameters includes historical information of requests to be handled by the first single piece of code.

25. The apparatus of claim 19 , wherein the set of one or more parameters includes predicted requests to be handled by the first single piece of code.

26. The apparatus of claim 19 , wherein the set of one or more parameters includes total ingress traffic.

27. The apparatus of claim 19 , wherein the operations further comprise:

generating an identifier for the object;

prior to automatically migrating the instantiated first single piece of code, associating the identifier for the object with a server identifier of the first one of the plurality of compute servers in the directory service.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2021
From: VARDA, KENTON TAYLOR; KLOEPPER, KYLE
To: CLOUDFLARE, INC.
Reel/Frame 056533/0396 →
Continuity (3)
Continuation 16696879 · Nov 26, 2019
Continuation 16425415 · May 29, 2019
Related Publication 20210306417A1 · Sep 30, 2021