IP Library › Granted Patent US 8,949,414
Granted Patent B2
US 8,949,414 · App. 13/337,706 · Granted Feb 3, 2015

Systems and methods for scalable N-core stats aggregation

Inventors: Murali Raja (Santa Clara, CA); Sridhar Srinivasan (Bangalore, CA); Saravana Annamalaisami (Bangalore, CA); Devesh Prakash (Bangalore, CA); Josephine Suganthi (Sunnyvale, CA); Anil Shetty (Union City, CA)
Assignee: Citrix Systems, Inc.
H04L43/028H04L29/06H04L12/26
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 8,949,414
App. No.
13/337,706
Granted
Feb 3, 2015
Kind
B2
Abstract

The present invention is directed towards systems and methods for aggregating and providing statistics from cores of a multi-core system intermediary between one or more clients and servers. The system may maintain in shared memory a global device number for each core of the multi-core system. The system may provide a thread for each core of the multi-core system to gather data from the corresponding core. A first thread may generate aggregated statistics from a corresponding core by parsing the gathered data from the corresponding core. The first thread may transfer the generated statistics to a statistics log according to a schedule. The system may adaptively reschedule the transfer by monitoring the operation of each computing thread. Responsive to a request from a client, an agent of the client may obtain statistics from the statistics log.

Claims (27)

1. A method comprising:

(a) maintaining, in shared memory of a multi-core system intermediary between one or more clients and servers, a global device number for each core of the multi-core system, each core comprising one or more packet engines processing network traffic between the one or more clients and servers;

(b) executing, by an aggregator of the multi-core system, a computing thread for each core of the multi-core system;

(c) collecting, by a first computing thread of the aggregator, first statistics of network traffic processed by one or more packet engines on a first core and collecting, by a second computing thread of the aggregator, second statistics of network traffic processed by one or more packet engines on a second core; and

(d) maintaining, by the multi-core system, a statistics log for two or more cores of the multi-core system, including at least the first core and the second core, transferring, by the first computing thread, the first statistics with a marker to the statistics log, the marker corresponding to a global device number of the first core.

2. The method of claim 1 , wherein (a) further comprises assigning, for each core of the multi-core system, a global device number to a virtual machine executing on the core.

3. The method of claim 1 , wherein (a) further comprises assigning, for each core of the multi-core system, a global device number to each virtual machine of the core, each virtual machine comprising one or more packet engines processing network traffic between the one or more clients and servers.

4. The method of claim 1 , wherein (c) further comprises consolidating, by the aggregator, at least a portion of statistics collected from two or more cores of the multi-core system into a buffer.

5. The method of claim 1 , wherein (d) further comprises writing the collected statistics to the statistics log according to a schedule of the aggregator.

6. The method of claim 5 , wherein (d) further comprises adaptively rescheduling, by the aggregator, the transfer by monitoring the operation of the first core.

7. The method of claim 1 , wherein (d) further comprises transferring the collected statistics unchanged to the statistics log.

8. The method of claim 1 , wherein (d) further comprises transferring, by the second computing thread, the second statistics with a second marker to the statistics log, the second marker corresponding to a global device number of the second core.

9. The method of claim 1 , further comprising sending, by the aggregator, a notification to a first client of the one or more clients responsive to the transfer.

10. The method of claim 1 , further comprising providing, by the multi-core system to the one or more clients, access to the statistics log.

11. A system comprising:

an intermediary device intermediary between one or more clients and servers;

shared memory between multiple cores of the intermediary device, the shared memory maintaining a global device number for each of the multiple cores, each core comprising one or more packet engines processing network traffic between the one or more clients and servers; and

an aggregator of the intermediary device, executing a computing thread for each of the multiple cores, comprising at least a first computing thread collecting first statistics of network traffic processed by one or more packet engines on a first core and a second computing thread collecting second statistics of network traffic processed by one or more packet engines on a second core, and transferring the first statistics with a marker to a statistics log of the multi-core intermediary device, the marker corresponding to a global device number of the first core, the statistics log maintained for two or more cores of the multi-core intermediary device, including at least the first core and the second core.

12. The system of claim 11 , wherein the aggregator assigns a global device number to a virtual machine executing on each core.

13. The system of claim 12 , wherein the aggregator assigns a global device number to each virtual machine of each core, each virtual machine comprising one or more packet engines processing network traffic between the one or more clients and servers.

14. The system of claim 11 , wherein the aggregator further consolidates at least a portion of statistics collected from two or more cores of the multi-core intermediary device into a buffer.

15. The system of claim 11 , wherein the first computing thread writes the collected statistics to the statistics log according to a schedule of the aggregator.

16. The system of claim 15 , wherein the aggregator adaptively reschedules the transfer by monitoring the operation of the first core.

17. The system of claim 11 , wherein the first computing thread transfers the collected statistics unchanged to the statistics log.

18. The system of claim 11 , wherein the aggregator transfers the second statistics with a second marker to the statistics log, the second marker corresponding to a global device number of the second core.

19. The system of claim 11 , wherein the aggregator sends a notification to a first client of the one or more clients responsive to the transfer.

20. The system of claim 11 , wherein the aggregator provides the one or more clients access to the statistics log.

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 Feb 27, 2014
From: RAJA, MURALI; SRINIVASAN, SRIDHAR; ANNAMALAISAMI, SARAVANA; PRAKASH, DEVESH; SUGANTHI, JOSEPHINE; SHETTY, ANIL
To: CITRIX SYSTEMS, INC.
Reel/Frame 032312/0942 →
Continuity (2)
Provisional Application 61428124 · Dec 29, 2010
Related Publication 20120226804A1 · Sep 6, 2012