IP Library › Granted Patent US 10,148,544
Granted Patent B2
US 10,148,544 · App. 14/245,329 · Granted Dec 4, 2018

Systems and methods for cluster statistics aggregation

Inventors: Devesh Prakash (Bangalore, IN); Pawan Prakash Sharma (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04L43/10H04L41/12H04L41/142H04L43/08H04L43/0882H04L45/02
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,148,544
App. No.
14/245,329
Granted
Dec 4, 2018
Kind
B2
Abstract

For multiple multi-core nodes in a cluster, the filtered statistics clients contacts the aggregator on a master node of the cluster, referred to as the cluster configuration owner (“CCO”) or cluster coordinator and expects the stats aggregated from all the cluster nodes. The aggregator on the CCO nodes relay the client request to packet engines on the CCO node and to an aggregator on each of the other nodes in the cluster. Then the CCO node aggregator gets responses from other cores on the node and responses from all other cluster node aggregators. The CCO node aggregator aggregates the responses and sends back the aggregated response to the clients. Communication between nodes is via a static authenticated communication channel.

Claims (38)

1. A method for aggregating statistics in a cluster of intermediary devices, the method comprising:

determining, by a cluster coordinator for a cluster of intermediary devices, a first topology for the cluster identifying each active intermediary device of the cluster;

establishing, by the cluster coordinator, for each active intermediary device of the cluster identified in the first topology, a communication channel between the cluster coordinator and the respective active intermediary device;

maintaining, by the cluster coordinator, each established communication channel between the cluster coordinator and the respective active intermediary device while identified as active to communicate requests and responses for statistics irrespective of changes in the first topology for the cluster;

receiving, by the cluster coordinator, a first request for aggregated statistics for the cluster;

communicating, by the cluster coordinator, responsive to receiving the first request, via each established communication channel maintained by the cluster coordinator, a data request to each active intermediary device to generate data for the first request;

aggregating, by the cluster coordinator, data received from each active intermediary device via the respective established communication channel for the active intermediary device responsive to the data request;

communicating, by the cluster coordinator, a response to the first request comprising the aggregated data;

receiving, by the cluster coordinator, a second request for aggregated statistics for the cluster; and

communicating, by the cluster coordinator, responsive to receiving the second request, via each established communication channel maintained by the cluster coordinator between the cluster coordinator and the respective active intermediary device, a second data request to each active intermediary device to generate data for the second request, without re-establishing the respective communication channels.

2. The method of claim 1 , further comprising establishing the communication channel between the cluster coordinator and a local aggregator at each respective active intermediary device.

3. The method of claim 1 , further comprising receiving, by the cluster coordinator, data from an intermediary device via the established channel with the intermediary device.

4. The method of claim 3 , wherein the data comprises statistics for the intermediary device, identification information, and time information.

5. The method of claim 3 , further comprising receiving the data from an aggregator local to the intermediary device.

6. The method of claim 1 , further comprising receiving, by the cluster coordinator, statistics from each core of a multi-core intermediary device.

7. The method of claim 1 , wherein the first topology includes, for each intermediary device of the cluster, a cluster-specific IP address.

8. The method of claim 1 , further comprising opening, by the cluster coordinator, an event notification interface, and receiving the first request for aggregated statistics for the cluster via the event notification interface.

9. The method of claim 1 , further comprising receiving, by the cluster coordinator, the first request for aggregated statistics keyed to a device name for an intermediary device of the cluster.

10. A system for aggregating statistics in a cluster of intermediary devices, the system comprising:

a cluster of intermediary devices; and

a cluster coordinator for the cluster of intermediary devices, the cluster coordinator configured to:

determine a first topology for the cluster identifying each active intermediary device of the cluster;

establish, for each active intermediary device of the cluster identified in the first topology, a communication channel between the cluster coordinator and the respective active intermediary device;

maintain each established communication channel between the cluster coordinator and the respective active intermediary device while identified as active to communicate requests and responses for statistics irrespective of changes in the first topology for the cluster;

receive, a first request for aggregated statistics for the cluster;

communicate, responsive to receiving the first request, via each established communication channel maintained by the cluster coordinator, a data request to each active intermediary device to generate data for the first request;

aggregate data received from each active intermediary device via the respective established communication channel for the active intermediary device responsive to the data request;

communicate a response to the first request comprising the aggregated data;

receive a second request for aggregated statistics for the cluster; and

communicate, responsive to receiving the second request, via each established communication channel maintained by the cluster coordinator between the cluster coordinator and the respective active intermediary device, a second data request to each active intermediary device to generate data for the second request, without re-establishing the communication channels.

11. The system of claim 10 , wherein each active intermediary device of the cluster of intermediary devices comprises a local aggregator, and the cluster coordinator is further configured to establish the communication channel between the cluster coordinator and the local aggregator at each respective active intermediary device.

12. The system of claim 10 , wherein the cluster coordinator is further configured to receive data from an intermediary device via the established channel with the intermediary device.

13. The system of claim 12 , wherein the data comprises statistics for the intermediary device, identification information, and time information.

14. The system of claim 12 , wherein the cluster coordinator is further configured to receive the data from an aggregator local to the intermediary device.

15. The system of claim 10 , wherein the cluster coordinator is further configured to receive statistics from each core of a multi-core intermediary device.

16. The system of claim 10 , wherein the first topology includes, for each intermediary device of the cluster, a cluster-specific IP address.

17. The system of claim 10 , wherein the cluster coordinator is further configured to open an event notification interface, and to receive the first request for aggregated statistics for the cluster via the event notification interface.

18. The system of claim 10 , wherein the cluster coordinator is further configured to receive the first request keyed to a device name for an intermediary device of the cluster.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2014
From: PRAKASH, DEVESH; SHARMA, PAWAN PRAKASH
To: CITRIX SYSTEMS, INC.
Reel/Frame 032710/0310 →
Continuity (2)
Provisional Application 61809329 · Apr 6, 2013
Related Publication 20140304402A1 · Oct 9, 2014
Cited By (1)
US 12,634,218