Multi-Core Cookie Proxy Management for HTTP Transaction Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data communication networks face inefficiencies in cookie management due to variations in network configurations and connections, particularly when using intermediaries like proxies, firewalls, and gateways, which affect the performance and efficacy of cookie operations in multi-core systems.

Innovation Solution

A method and system for managing cookies in a multi-core device that intercepts and processes HTTP transactions between clients and servers, utilizing a cookie proxying mechanism to improve performance and management by optimizing cookie operations across multiple core processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single-core device processes HTTP transactions and manages cookies, then cookie management is straightforward, but performance and throughput are limited

Engineering Contradiction:
Improvecookie management performanceVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the cookie management system into multiple independent worker threads, each handling HTTP transactions on separate cores. Each worker thread maintains its own cookie jar and processes requests independently, allowing parallel cookie management operations across multiple cores while keeping individual thread complexity manageable.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a cookie proxy mechanism that acts as an intermediary between worker threads and the cookie storage system. The cookie proxy receives cookie operations from multiple workers, manages the actual storage and retrieval, and returns results to requesting workers, enabling coordinated cookie management across parallel cores.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple worker threads process HTTP transactions in parallel, then throughput increases, but race conditions and synchronization issues arise

Engineering Contradiction:
ImproveHTTP transaction throughputVSAvoidcookie data consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Each worker thread is assigned its own dedicated cookie jar, creating isolated storage spaces that eliminate race conditions. Workers can independently manage cookies for their assigned domains or clients without interfering with other workers, maintaining data consistency while enabling parallel processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cookie proxy serves as a mediator that coordinates access to shared cookie storage resources. It implements thread-safe operations by serializing access to common cookie jars, managing synchronization internally, and presenting a consistent interface to multiple workers, thereby maintaining reliability while supporting parallel throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If cookies are managed centrally in a single location, then consistency is maintained, but access time and processing delay increase

Engineering Contradiction:
Improvecookie consistencyVSAvoidcookie access time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Cookie storage is segmented into multiple distributed cookie jars, with each worker thread having direct access to its assigned jar(s). This eliminates the need for centralized access, allowing workers to retrieve and store cookies locally without communication delays, while consistency is maintained through the proxy's coordination of shared resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Cookie jars are pre-initialized and allocated to worker threads before processing begins. Frequently accessed cookies are kept in readily accessible memory structures within each worker's context, eliminating the need for repeated disk I/O or complex lookup operations during transaction processing.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If cookie operations are performed synchronously, then data accuracy is ensured, but processing speed and response time decrease

Engineering Contradiction:
Improvecookie operation accuracyVSAvoidcookie processing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

Cookie operations are segmented into independent atomic actions performed by separate worker threads. Each worker executes cookie set, get, and delete operations independently without requiring synchronization barriers, allowing accurate cookie management to proceed in parallel across multiple cores simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cookie proxy implements asynchronous processing by queuing cookie operations and processing them in the background. It accepts requests from workers immediately, records them for later processing, and notifies workers when operations complete, ensuring accuracy through proper sequencing while maintaining high processing speed through parallel operation execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2601578B1Systems and methods for cookie proxy management across cores in a multi-core system
Publication Date: 2016.03.23 CITRIX SYSTEMS INC
  • EP2601578B1 patent drawingFigure 1A
  • EP2601578B1 patent drawingFigure 1B
  • EP2601578B1 patent drawingFigure 1C

AI summary

The present solution is directed towards systems and methods for managing cookies by a multi-core device. The device is intermediary to a client and one or more servers. A first core of a multi-core device receives a response from a server to a request of the client through a user session. The response comprises a cookie. The first core removes the cookie from the response and stores the cookie in a corresponding storage for the session. The first core forwards the response without the cookie to the client. A second core then receives via a session, a second request from the client. The second core determines the identification of the first core as owner of the session from the second request. The second core then communicates to the first core a third request for cookie information for the session.