Multi-Core Statistics Aggregation via Intermediary Mediator
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional network systems face challenges in efficiently aggregating and consolidating performance statistics from multiple cores of a multi-core network appliance, leading to fragmented data management and reduced visibility into network performance.
Innovation Solution
A system and method that maintain a global device number for each core in shared memory, with an aggregator thread collecting and consolidating statistics from each core, and adaptively scheduling transfers to provide unified performance and trace data, mimicking a single-core system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple cores process network traffic streams in parallel, then processing capacity and throughput are improved, but data fragmentation and aggregation complexity increase
Solution Approach 1:
The patent introduces an aggregator as an intermediary component that receives performance data from multiple packet engines across different cores. The aggregator consolidates fragmented data into unified performance records, simplifying the aggregation process while maintaining parallel processing capabilities. This mediator approach resolves the contradiction by adding a coordination layer that manages data flow without reducing core processing capacity.
Solution Approach 2:
The system segments the multi-core processing into independent packet engines, each handling specific network traffic streams. Each packet engine maintains local performance data independently, allowing parallel processing to continue while the aggregator collects and consolidates these segmented data pieces. This segmentation enables scalability without proportionally increasing aggregation complexity.
2Measurement precision
If performance data is collected from each core individually, then data granularity and detail are improved, but data consolidation time and overhead increase
Solution Approach 1:
Packet engines perform preliminary data collection and formatting locally before transferring to the aggregator. Each packet engine maintains performance data in a standardized structure in advance, so the aggregator receives pre-processed data ready for consolidation. This preliminary action reduces the aggregator's workload and consolidation time while preserving detailed performance metrics.
Solution Approach 2:
The system implements continuous performance data collection from all packet engines simultaneously, rather than sequential collection. Multiple cores continue processing and generating performance data in parallel while the aggregator continuously consolidates incoming data streams. This continuous parallel operation maintains high measurement granularity without significant consolidation delays.
3Stability of the object's composition
If unified performance data is provided for the entire appliance, then data consistency and visibility are improved, but individual core performance tracking may be reduced
Solution Approach 1:
The aggregator merges performance data from multiple packet engines into unified performance records that represent the entire appliance's performance. This merging maintains data consistency across the system while preserving individual core contributions through structured data fields that track source identification. The unified view is achieved without losing individual core performance information.
Solution Approach 2:
The performance data structure implements a nested organization where individual packet engine performance records are nested within overall appliance performance records. Each packet engine's detailed metrics are preserved as nested elements within the unified data structure, allowing both granular and aggregate views of performance data to coexist consistently.
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
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.