Multi-Core Web Logging via Transaction Queues and Global Heap

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core systems, merging sequential transaction records from multiple cores into a chronological order is challenging due to the distributed nature of network traffic, where each core generates its own set of transactions, requiring a method to determine the ordering of transactions across cores.

Innovation Solution

A method is implemented where each core maintains a transaction queue, and new transaction entries are added to a global heap, with the earliest entry periodically being written to a web log, ensuring chronological storage and merging of transactions across cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If transaction records are logged sequentially by each core, then each core can process transactions independently, but merging the records into chronological order becomes complex and difficult

Engineering Contradiction:
Improvetransaction processing throughputVSAvoidtransaction merging complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system divides transaction processing by core, with each core maintaining its own transaction queue. This segmentation allows independent processing while the global heap provides a unified structure for merging, resolving the complexity issue.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A global heap is introduced as an intermediary structure between the per-core queues and the final web log. The heap receives transactions from all cores and maintains chronological order, eliminating the complexity of direct merging.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If a global heap is used to store transactions from multiple cores, then chronological ordering is achieved, but memory usage and data structure complexity increase

Engineering Contradiction:
Improvetransaction chronological orderingVSAvoiddata structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Multiple per-core queues are merged into a single global heap structure. This combining approach achieves chronological ordering across all cores while using a well-established heap data structure that manages complexity efficiently.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Transactions are prepared with timestamps and inserted into the global heap in advance. This preliminary organization ensures chronological ordering is maintained without requiring complex sorting operations later.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If transaction entries are continuously added to the web log, then real-time logging is achieved, but maintaining chronological order across multiple cores becomes difficult

Engineering Contradiction:
Improvelogging speedVSAvoidtransaction ordering accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system uses timestamps as feedback to determine the correct order of transactions. Each transaction carries its timestamp, and the global heap uses this feedback to maintain chronological order even as transactions are continuously added from multiple cores.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The global heap dynamically adapts to transactions arriving from multiple cores with different timestamps. The heap structure automatically maintains order without requiring explicit coordination between cores, enabling both speed and accuracy.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2270665B1Systems and methods for web logging of trace data in a multi-core system
Publication Date: 2023.07.26 CITRIX SYSTEMS INC
  • EP2270665B1 patent drawingFigure 1A
  • EP2270665B1 patent drawingFigure 1B
  • EP2270665B1 patent drawingFigure 1C

AI summary

A method and system for generating a web log that includes transaction entries from transaction queues of one or more cores of a multi-core system. A transaction queue is maintained for each core so that either a packet engine or web logging client executing on the core can write transaction entries to the transaction queue. In some embodiments, a timestamp value obtained from a synchronized timcstamp variable can be assigned to the transaction entries. When a new transaction entry is added to the transaction queue, the earliest transaction entry is removed from the transaction queue and added to a heap. Periodically the earliest entry in the heap is removed from the heap and written to a web log. When an entry is removed from the heap, the earliest entry in a transaction queue corresponding to the removed entry is removed from the transaction queue and added to the heap.