IP Library Granted Patent US 12,621,234
Granted Patent B2
US 12,621,234 · App. 18/478,260 · Granted May 5, 2026

Distributed application call path performance analysis

Inventors: Tarun Banka (Milpitas, CA); Rahul Gupta (Kanpur, IN); Mithun Chakaravarrti Dharmaraj (Mountain View, CA); Amandeep Chauhan (Sunnyvale, CA); Thayumanavan Sridhar (Sunnyvale, CA); Raj Yavatkar (Los Gatos, CA)
Assignee: Hewlett Packard Enterprise Development LP
H04L45/123H04L41/0816H04L43/16H04L45/38
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 12,621,234
App. No.
18/478,260
Filed
Sep 29, 2023
Granted
May 5, 2026
Kind
B2
Art Unit
2459
USPC
709/238
Abstract

In general, techniques are described for managing a distributed application based on call paths among the multiple services of the distributed application that traverse underlying network infrastructure. In an example, a method comprises determining, by a computing system, and for a distributed application implemented with a plurality of services, a call path from an entry endpoint service of the plurality of services to a terminating endpoint service of the plurality of services; determining, by the computing system, a corresponding network path for each pair of adjacent services from a plurality of pairs of services that communicate for the call path; and based on a performance indicator for a network device of the corresponding network path meeting a threshold, performing, by the computing system, one or more of: reconfiguring the network; or redeploying one of the plurality of services to a different compute node of the compute nodes.

Claims (67)

1 . A computing system, comprising:

memory; and

processing circuitry in communication with the memory, and configured to:

determine, for a distributed application implemented with a plurality of services executing on compute nodes interconnected by a network of network devices, a call path from an entry endpoint service of the plurality of services to a terminating endpoint service of the plurality of services;

determine a corresponding network path traversed by corresponding calls for each pair of one or more pairs of adjacent services from a plurality of pairs of services that communicate for the call path; and

for a pair of the one or more pairs of adjacent services, based on a performance indicator for a network device, of the network devices, of the corresponding network path traversed by the corresponding calls for the pair of the one or more pairs of adjacent services meeting a threshold, perform one or more of:

reconfigure the network; or

redeploy one of the plurality of services to a different compute node of the compute nodes.

2 . The computing system of claim 1 , wherein to determine the corresponding network path, the processing circuitry is configured to:

determine, for the pair of the one or more pairs of adjacent services, a source IP address and a destination IP address, wherein the source IP address is the IP address of a caller service of the pair of the one or more pairs of adjacent services, and wherein the destination IP address is the IP address of a callee service of the pair of the one or more pairs of adjacent services; and

correlate, based on the source IP address and the destination IP address, a flow to the corresponding network path.

3 . The computing system of claim 2 , wherein to correlate the flow to the corresponding network path the processing circuitry is configured to determine, based on flow data, one or more of the network devices that have processed flows that include the source IP address and the destination IP address.

4 . The computing system of claim 2 , wherein the source IP address is one of a physical IP address for a compute node that hosts the caller service or a virtual IP address for a workload for the caller service.

5 . The computing system of claim 1 , wherein the network devices comprise at least one top-of-rack switch and at least one chassis switch.

6 . The computing system of claim 1 , wherein to reconfigure the network, the processing circuitry is further configured to:

identify a replacement service for either service of the pair of the one or more pairs of adjacent services, wherein the replacement service is another instance of a first service of the pair of the one or more pairs of adjacent services executing on a different compute node; and

reconfigure the distributed application to execute using the replacement service.

7 . The computing system of claim 1 , wherein the call path is a first call path, wherein the entry endpoint is a first entry endpoint, wherein the terminating endpoint is a first terminating endpoint, and wherein the processing circuitry is further configured to:

based on determining that no performance indicators for the network device meet the threshold, determine, for the distributed application implemented with the plurality of services, a second call path from a second entry endpoint service of the plurality of services to a second terminating endpoint service of the plurality of services;

determine a second corresponding network path traversed by corresponding calls for a different pair of the one or more pairs of adjacent services from the plurality of pairs of services that communicate for the second call path;

identify a second network device on one of the second corresponding network path; and

based on a performance indicator for the second network device meeting the threshold, perform one or more of:

reconfigure the network; or

redeploy one of the plurality of services to a different compute node of the compute nodes.

8 . The computing device of claim 1 , wherein the performance indicator is one or more of:

a packet loss rate,

a transmission time,

a resource utilization, or

a latency.

9 . The computing device of claim 1 , wherein the call path is a call path of a plurality of call paths for the distributed application that has a highest end-to-end latency of the plurality of call paths.

10 . A method comprising:

determining, by a computing system, for a distributed application implemented with a plurality of services executing on compute nodes interconnected by a network of network devices, a call path from an entry endpoint service of the plurality of services to a terminating endpoint service of the plurality of services;

determining, by the computing system, a corresponding network path traversed by corresponding calls for each pair of one or more pairs of adjacent services from a plurality of pairs of services that communicate for the call path; and

for a pair of the one or more pairs of adjacent services, based on a performance indicator for a network device of the network devices, of the corresponding network path traversed by the corresponding calls for the pair of the one or more pairs of adjacent services meeting a threshold, performing, by the computing system, one or more of:

reconfiguring the network; or

redeploying one of the plurality of services to a different compute node of the compute nodes.

11 . The method of claim 10 , wherein determining a corresponding network path further comprises:

determining, for the pair of the one or more pairs of adjacent services, a source IP address and a destination IP address, wherein the source IP address is the IP address of a caller service of the pair of the one or more pairs of adjacent services, and wherein the destination IP address is the IP address of a callee service of the pair of the one or more pairs of adjacent services; and

correlating, based on the source IP address and the destination IP address, a flow to the corresponding network path.

12 . The method of claim 11 , wherein correlating the flow to the corresponding network path further comprises determining, based on flow data, one or more of the network devices that have processed flows that include the source IP address and the destination IP address.

13 . The method of claim 12 , wherein the source IP address is one of a physical IP address for a compute node that hosts the caller service or a virtual IP address for a workload for the caller service.

14 . The method of claim 10 , wherein the network devices comprise at least one top-of-rack switch and at least one chassis switch.

15 . The method of claim 10 , wherein reconfiguring further comprises:

identifying a replacement service for either service of the pair of the one or more pairs of adjacent services, wherein the replacement service is another instance of a first service of the pair of the one or more pairs of adjacent services executing on a different compute node; and

reconfiguring the distributed application to execute using the replacement service.

16 . The method of claim 15 , wherein the call path is a first call path, wherein the entry endpoint is a first entry endpoint, wherein the terminating endpoint is a first terminating endpoint, and further comprising:

based on determining that no performance indicators for the network device meet the threshold, determining, by the computing system and for the distributed application implemented with the plurality of services, a second call path from a second entry endpoint service of the plurality of services to a second terminating endpoint service of the plurality of services;

determining, by the computing system, a second corresponding network path traversed by corresponding calls for a different pair of the one or more pairs of adjacent services from the plurality of pairs of services that communicate for the second call path;

identifying, by the computing system, a second network device on one of the second corresponding network path; and

based on a performance indicator for the second network device meeting a threshold, perform one or more of:

reconfiguring the network; or

redeploying one of the plurality of services to a different compute node of the compute nodes.

17 . The method of claim 10 , wherein the performance indicator is one or more of:

a packet loss rate,

a transmission time,

a resource utilization, or

a latency.

18 . The method of claim 10 , wherein the call path is a call path of a plurality of call paths for the distributed application that has a highest end-to-end latency of the plurality of call paths.

19 . Non-transitory computer-readable storage media comprising instructions that, when executed, cause one or more processors to:

determine, for a distributed application implemented with a plurality of services executing on compute nodes interconnected by a network of network devices, a call path from an entry endpoint service of the plurality of services to a terminating endpoint service of the plurality of services;

determine a corresponding network path traversed by corresponding calls for each pair of one or more pairs of adjacent services from a plurality of pairs of services that communicate for the call path; and

for a pair of the one or more pairs of adjacent services, based on a performance indicator for a network device, of the network devices, of the corresponding network path traversed by the corresponding calls for the pair of the one or more pairs of adjacent services meeting a threshold, perform one or more of:

reconfigure the network; or

redeploy one of the plurality of services to a different compute node of the compute nodes.

20 . The non-transitory computer-readable storage media of claim 19 , wherein the instructions further cause the one or more processors to:

determine, for the pair of the one or more pairs of adjacent services, a source IP address and a destination IP address, wherein the source IP address is the IP address of a caller service of the pair of the one or more pairs of adjacent services, and wherein the destination IP address is the IP address of a callee service of the pair of the one or more pairs of adjacent services; and

correlate, based on the source IP address and the destination IP address, a flow to the corresponding network path.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2025
From: YAVATKAR, RAJENDRA SHIVARAM
To: JUNIPER NETWORKS, INC.
Reel/Frame 072903/0212 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2023
From: BANKA, TARUN; GUPTA, RAHUL; DHARMARAJ, MITHUN CHAKARAVARRTI; CHAUHAN, AMANDEEP; SRIDHAR, THAYUMANAVAN; YAVATKAR, RAJ
To: JUNIPER NETWORKS, INC.
Reel/Frame 065076/0292 →
Continuity (1)
Related Publication 20250112851A1 · Apr 3, 2025
References Cited (41)
US 9571394B1 · Sivaramakrishnan et al. · 2017 [cited by applicant]
US 9998562B1 · Peterson · 2018 [cited by examiner]
US 10523507B2 · Toledo · 2019 [cited by examiner]
US 10708082B1 · Bakiaraj et al. · 2020 [cited by applicant]
US 10728145B2 · Rao et al. · 2020 [cited by applicant]
US 10860390B2 · Sukhomlinov · 2020 [cited by examiner]
US 11381474B1 · Kumar et al. · 2022 [cited by applicant]
US 11469983B1 · Malov · 2022 [cited by examiner]
US 11575572B2 · Nagaprakash et al. · 2023 [cited by applicant]
US 11743281B1 · Behl · 2023 [cited by examiner]
US 12174692B1 · Ray · 2024 [cited by examiner]
US 20050010608A1 · Horikawa · 2005 [cited by applicant]
US 20150288592A1 · Baughman et al. · 2015 [cited by applicant]
US 20210112017A1 · Gupta et al. · 2021 [cited by applicant]
US 20210320853A1 · Kulshreshtha et al. · 2021 [cited by applicant]
US 20220158926A1 · Wennersrom et al. · 2022 [cited by applicant]
US 20220172037A1 · Kang · 2022 [cited by examiner]
US 20230072358A1 · Baillargeon · 2023 [cited by applicant]
US 20230125661A1 · Jebakumar et al. · 2023 [cited by applicant]
US 20230198867A1 · Palladino et al. · 2023 [cited by applicant]
US 20250023772A1 · Juneja · 2025 [cited by examiner]
CN 117061507A · 2023 [cited by examiner]
WO 2013184846A1 · 2013 [cited by applicant]
Chunming Hu et al. “TOPOSCH: Latency-Aware Scheduling Based on Critical Path Analysis on Shared YARN Clusters”, 2020 IEEE 13th International Conference on Cloud Computing (CLOUD), 9 pages. (Year: 2020). [cited by examiner]
PIGRAM86, “Improving Kubernetes Scheduler Performance”, Cloudy Journey, Feb. 23, 2016, 6 pp., URL: https://www.toddpigram.com/2016/02/improving-kubernetes-scheduler.html. [cited by applicant]
“Telemetry Aware Scheduling (TAS)—Automated Workload Optimization with Kubernetes (K8s*) Technology Guide”, Technology Guide, Intel Corporation, https://builders.intel.com/docs/networkbuilders/telemetry-aware-scheduling… [cited by applicant]
Apostolopoulos, “Cloud-Native SD-WAN: The WAN Your Kubernetes Applications Deserve”, Cisco, Aug. 20, 2020, 9 pp. [cited by applicant]
Behara, “Istio Circuit Breaker With Outlier Detection”, https://dzone.com/articles/istio-circuit-breaker-with-outlier-detection, Jun. 10, 2019, 4 pp. [cited by applicant]
Berner et al., “Scaling Kubernetes to 2,500 nodes”, OpenAI, Jan. 18, 2018, 14 pp., URL: https://openai.com/research/scaling-kubernetes-to-2500-nodes. [cited by applicant]
Docker et al., “Docker overview”, Docker Docs, 5 pp., Retrieved from the Internet on Jan. 10, 2024 from URL: https://docs.docker.com/get-started/overview/. [cited by applicant]
Garcia et al., “prometheus-kafka-adapter”, Github, Sep. 30, 2018, 5 pp., Retrieved from the Internet on Jan. 10, 2024 from URL: https://github.com/Telefonica/prometheus-kafka-adapter. [cited by applicant]
Intel Corporation, “Simplify Your AI Efforts with Ready-Right-Now Solutions”, 6 pp., Retrieved from the Internet on Jan. 10, 2024 from URL: https://www.intel.com/content/www/us/en/partner-alliance/membership/benefits/pa… [cited by applicant]
Mackie et al., “BGP-Signaled End-System IP/VPNs”, Internet-Draft, Network Working Group, Dec. 15, 2016, 61 pp. [cited by applicant]
Santos et al., “Towards delay-aware container-based Service Function Chaining in Fog Computing”, NOMS 2020—2020 IEEE/IFIP Network Operations and Management Symposium, Jun. 8, 2020, 9 pp. [cited by applicant]
Santos et al., “Towards Network-Aware Resource Provisioning in Kubernetes for Fog Computing Applications”, 2019 IEEE Conference on Network Softwarization (NetSoft), Aug. 22, 2019, 9 pp. [cited by applicant]
Tetrate et al., “Simplify Kubernetes and Multi-Cloud Complexity with the Service Mesh”, Oct. 16, 2023, 13 pp., URL: https://7637559.fs1.hubspotusercontent-na1.net/hubfs/7637559/Resources%20and%20PDFs/White%20Papers/Simp… [cited by applicant]
U.S. Appl. No. 18/325,760, filed May 30, 2023, naming inventors Banka et al. [cited by applicant]
Xin et al., “Topology-Aware Scheduling Framework for Microservice Applications in Cloud”, IEEE Transactions on Parallel and Distributed Systems,, vol. 34, No. 5, Jan. 23, 2023, pp. 1635-1649. [cited by applicant]
Extended Search Report from counterpart European Application No. 24202354.7 dated Mar. 12, 2025, 9 pp. [cited by applicant]
Mohammed et al., “SDN controller for network-aware adaptive orchestration in dynamic service chaining”, IEEE NetSoft Conference and Workshops (NetSoft), IEEE, Jun. 6, 2016, 126-130 pp. [cited by applicant]
Response to Extended Search Report dated Mar. 12, 2025, from counterpart European Application No. 24202354.7 filed Oct. 3, 2025, 23 pp. [cited by applicant]