IP Library Granted Patent US 11,893,369
Granted Patent B2
US 11,893,369 · App. 17/581,003 · Granted Feb 6, 2024

Determining a distributed system topology from a single application deployment

Inventors: Kenneth Finnigan (Boston, MA); Paul Robinson (Newcastle, GB)
Assignee: Red Hat, Inc.
G06F8/433G06F8/60G06F8/75
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,893,369
App. No.
17/581,003
Granted
Feb 6, 2024
Kind
B2
Abstract

Systems and methods for determining a topology of an application deployment on a distributed system can include receiving multiple traces of requests within an application, where the application includes multiple components. They can also include determining a number of times that each span between the components is traversed by a trace and associating each span with a corresponding weight reflecting the number of times that the span is traversed. Such systems and methods can further include selecting a deployment scenario based on the respective weights of each of the spans.

Claims (34)

1. A method comprising:

receiving, by a processing device, a plurality of traces of requests within an application, wherein the application comprises a plurality of components;

determining a number of times that each span between the components is traversed by a trace of the plurality of traces;

associating each span with a corresponding weight reflecting the number of times that the span is traversed; and

selecting a deployment scenario based on the respective weights of each of the spans.

2. The method of claim 1 , further comprising deploying the components of the application according to the deployment scenario.

3. The method of claim 2 , wherein deploying the components comprises: responsive to determining that the span between a pair of components satisfies a threshold criterion, merging the pair of components.

4. The method of claim 2 , wherein deploying the components comprises: responsive to determining that the span between a pair of merged components does not satisfy a threshold criterion, splitting the merged components.

5. The method of claim 2 , wherein each component of the plurality of components is a microservice of the application.

6. The method of claim 2 , wherein deploying the components comprises grouping a set of components such that each component of the set has a span with a corresponding weight exceeding a threshold and deploying the components of the set at a same location.

7. The method of claim 2 , wherein deploying the components comprises determining components having spans below a threshold value and deploying a first component of the determined components at a different location than a second component of the determined components.

8. A system comprising:

a memory; and

a processing device coupled to the memory, the processing device configured to:

receive a plurality of traces of requests within an application, wherein the application comprises a plurality of components;

determine a number of times that each span between the components is traversed by a trace of the plurality of traces;

associate each span with a corresponding weight reflecting the number of times that the span is traversed; and

select a deployment scenario based on the respective weights of each of the spans.

9. The system of claim 8 , wherein the processing device is further configured to deploy the components of the application according to the deployment scenario.

10. The system of claim 9 , wherein deploying the components comprises, responsive to determining that the span between a pair of components satisfies a threshold criterion, merging the pair of components.

11. The system of claim 9 , wherein deploying the components comprises, responsive to determining that the span between a pair of merged components does not satisfy a threshold criterion, splitting the merged components.

12. The system of claim 9 , wherein each component of the plurality of components is a microservice of the application.

13. The system of claim 9 , wherein deploying the components comprises grouping a set of components such that each component of the set has a span with a corresponding weight exceeding a threshold and deploying the components of the set at a same location.

14. The system of claim 9 , wherein deploying the components comprises determining components having spans below a threshold value and deploying a first component of the determined components at a different location than a second component of the determined components.

15. A non-transitory machine-readable storage medium including instructions that, when accessed by a processing device, cause the processing device to:

receive a plurality of traces of requests within an application, wherein the application comprises a plurality of components;

determine a number of times that each span between the components is traversed by a trace of the plurality of traces;

associate each span with a corresponding weight reflecting the number of times that the span is traversed; and

select a deployment scenario based on the respective weights of each of the spans.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the instructions further cause the processing device to deploy the components of the application according to the deployment scenario.

17. The non-transitory machine-readable storage medium of claim 16 , wherein deploying the components comprises, responsive to determining that the span between a pair of components satisfies a threshold criterion, merging the pair of components.

18. The non-transitory machine-readable storage medium of claim 16 , wherein deploying the components comprises responsive to determining that the span between a pair of merged components does not satisfy a threshold criterion, splitting the merged components.

19. The non-transitory machine-readable storage medium of claim 16 , wherein deploying the components comprises grouping a set of components such that each component of the set has a span with a corresponding weight exceeding a threshold and deploying the components of the set at a same location.

20. The non-transitory machine-readable storage medium of claim 16 , wherein deploying the components comprises identifying components having spans below a threshold value and deploying a first component of the identified components at a different location than a second component of the identified components.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2022
From: FINNIGAN, KENNETH; ROBINSON, PAUL
To: RED HAT, INC.
Reel/Frame 060232/0694 →