IP Library Granted Patent US 11,693,713
Granted Patent B1
US 11,693,713 · App. 17/034,449 · Granted Jul 4, 2023

Self-tuning clusters for resilient microservices

Inventors: Taher Vohra (Sunnyvale, CA); Patrick Lee (Los Altos, CA); Ethan Miller (Santa Cruz, CA)
Assignee: PURE STORAGE, INC.
G06F9/5072G06F9/5027G06F9/544
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,693,713
App. No.
17/034,449
Granted
Jul 4, 2023
Kind
B1
Abstract

Self-tuning clusters for resilient microservices, including: receiving, by a services orchestrator within a cloud-computing environment and from a plurality of cloud computing instances, respective latency measurements corresponding to respective control plane operations directed to a shared resource of the plurality of cloud computing instances; determining, based on a current timeout value and on the respective latency measurements from the plurality of cloud computing instances, an updated timeout value for the shared resource; and providing, to each of the plurality of cloud computing instances, the updated timeout value for the shared resource.

Claims (50)

1. A method comprising:

receiving, by a services orchestrator within a cloud-computing environment and from a plurality of cloud computing instances, respective latency measurements corresponding to respective control plane operations directed to a shared resource of the plurality of cloud computing instances;

determining, based on a current timeout value and on the respective latency measurements from the plurality of cloud computing instances, an updated timeout value for the shared resource; and

providing, to one or more of the plurality of cloud computing instances, the updated timeout value for the shared resource.

2. The method of claim 1 , wherein determining the updated timeout value for the shared resource comprises:

calculating, based on each individual latency measurement of the respective latency measurements, the updated timeout value to be a weighted average of a respective latency for the control plane operations directed to the shared resource.

3. The method of claim 1 , wherein determining the updated timeout value for the shared resource comprises:

calculating, based on a difference between latency measurements exceeding an adjustment threshold, the updated timeout value to correspond to a healthy state for the shared resource.

4. The method of claim 1 , wherein the shared resource is a first shared resource, and wherein the method further comprises:

receiving, from one or more of the plurality of cloud computing instances, respective performance metrics corresponding to one or more operations directed to a second shared resource.

5. The method of claim 4 , further comprising:

determining, based on a current performance metric and on the respective performance metrics corresponding to the one or more operations directed to the second shared resource, an updated performance metric for the second shared resource.

6. The method of claim 5 , further comprising:

updating a common metrics repository to store the updated timeout value and the updated performance metric, wherein contents of the common metrics repository are available to each of the plurality of cloud computing instances.

7. The method of claim 6 , further comprising:

for each service provided by one or more of the plurality of cloud computing instances:

providing performance information based on one or more performance metrics from the common metrics repository.

8. The method of claim 1 , further comprising:

determining, for a new shared resource available to the plurality of cloud computing instances, a new shared resource timeout value for the new shared resource based on one or more timeout values for one or more similar resources.

9. The method of claim 1 , further comprising:

determining, based on the updated timeout value, a state for the shared resource, wherein the state includes a normal state, a degraded state, or a nonresponsive state.

10. A computer program product disposed upon a non-transitory computer-readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

receiving, by a services orchestrator within a cloud-computing environment and from a plurality of cloud computing instances, respective latency measurements corresponding to respective control plane operations directed to a shared resource of the plurality of cloud computing instances;

determining, based on a current timeout value and on the respective latency measurements from the plurality of cloud computing instances, an updated timeout value for the shared resource; and

providing, to one or more of the plurality of cloud computing instances, the updated timeout value for the shared resource.

11. The computer program product of claim 10 , wherein determining the updated timeout value for the shared resource comprises:

calculating, based on each individual latency measurement of the respective latency measurements, the updated timeout value to be a weighted average of a respective latency for each of the control plane operations directed to the shared resource.

12. The computer program product of claim 10 , wherein the computer program instructions, when executed, further cause the computer to carry out the step of:

calculating, based on a difference between latency measurements exceeding an adjustment threshold, the updated timeout value to correspond to a healthy state for the shared resource.

13. The computer program product of claim 10 , wherein the shared resource is a first shared resource, and wherein the computer program instructions, when executed, further cause the computer to carry out the step of:

receiving, from one or more of the plurality of cloud computing instances, respective performance metrics corresponding to one or more operations directed to a second shared resource.

14. The computer program product of claim 13 , wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:

determining, based on a current performance metric and on the respective performance metrics corresponding to the one or more operations directed to the second shared resource, an updated performance metric for the second shared resource.

15. The computer program product of claim 14 , wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:

updating a common metrics repository to store the updated timeout value and the updated performance metric, wherein contents of the common metrics repository are available to each of the plurality of cloud computing instances.

16. The computer program product of claim 15 , wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:

for each service provided by one or more of the plurality of cloud computing instances:

providing performance information based on one or more performance metrics from the common metrics repository.

17. The computer program product of claim 10 , wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:

determining, for a new shared resource available to the plurality of cloud computing instances, a new shared resource timeout value for the new shared resource based on one or more timeout values for one or more similar resources.

18. The computer program product of claim 10 , wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:

determining, based on the updated timeout value, a state for the shared resource, wherein the state includes a normal state, an degraded state, or a nonresponsive state.

19. An apparatus comprising:

a computer processor, and

a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

receiving, by the computer processor, by a services orchestrator within a cloud-computing environment and from a plurality of cloud computing instances, respective latency measurements corresponding to respective control plane operations directed to a shared resource of the plurality of cloud computing instances;

determining, by the computer processor, based on a current timeout value and on the respective latency measurements from the plurality of cloud computing instances, an updated timeout value for the shared resource; and

providing, by the computer processor, to one or more of the plurality of cloud computing instances, the updated timeout value for the shared resource.

20. The apparatus of claim 19 , wherein determining the updated timeout value for the shared resource comprises:

calculating, based on each individual latency measurement of the respective latency measurements, the updated timeout value to be a weighted average of a respective latency for each of the control plane operations directed to the shared resource.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2020
From: VOHRA, TAHER; LEE, PATRICK; MILLER, ETHAN
To: PURE STORAGE, INC.
Reel/Frame 053901/0439 →
Continuity (1)
Provisional Application 62895563 · Sep 4, 2019
Cited By (2)
US 12,346,743 US 12,608,430