Container Time Accounting for Network Packet Transmission

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing container-based cloud computing systems face challenges in accurately accounting and enforcing resource usage limits due to incorrect accounting of system resource usage during non-process execution, leading to unfair throttling of containers.

Innovation Solution

A method and system that determine and enforce resource limits by calculating the total container time remaining, accounting for processor packet transmission time, and descheduling processor threads if the remaining time is insufficient, ensuring accurate accounting and enforcement of both process and non-process execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If container-based software transmits data over network using shared processor threads, then resource utilization efficiency is improved, but accuracy of accounting system resource usage deteriorates

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidaccuracy of accounting system resource usage
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent segments the accounting of processor time into two distinct components: process execution time and non-process execution time (such as interrupt handling). By separating these accounting mechanisms, the system can accurately track resource usage for each container even when sharing processor threads, resolving the contradiction between improved resource utilization and accurate resource accounting.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If processor threads are descheduled to enforce resource limits, then fairness in resource allocation is improved, but system throughput deteriorates

Engineering Contradiction:
Improvefairness in resource allocationVSAvoidsystem throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements dynamic throttling of processor threads based on real-time container resource usage. Instead of static descheduling, the system dynamically adjusts thread execution by monitoring accumulated processor time and selectively throttling only those containers that have exceeded their allocated resources. This dynamic approach maintains fairness while minimizing impact on overall system throughput.

Inventive Principle:
Principle #15Dynamics

3Reliability

If container resource limits are strictly enforced, then resource isolation between containers is improved, but flexibility in resource allocation deteriorates

Engineering Contradiction:
Improveresource isolation between containersVSAvoidflexibility in resource allocation
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent changes the parameter of resource accounting by tracking not just total processor time but specifically separating process execution time from non-process execution time. This parameter change allows the system to enforce resource limits more fairly by excluding system-level overhead from container charges, thereby maintaining isolation while improving flexibility in resource allocation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10545786B2Accounting and enforcing non-process execution by container-based software transmitting data over a network
Publication Date: 2020.01.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10545786B2 patent drawing
  • US10545786B2 patent drawing
  • US10545786B2 patent drawing

AI summary

Utilizing a computing device to determine and enforce limits on cloud computing containers transmitting data over a network. A determination is made of total container time remaining available for a first container to execute in a computing environment, the first container utilizing one or more processor threads executing on a computing device. Processor packet transmission time is determined for processing and transmission of a packet or a batch of packets via a network stack associated with the computing device by the one or more processor threads utilized by the first container. An updated total container time remaining for the first container is calculated, accounting for the processor packet transmission time. The updated total container time remaining is enforced by descheduling all processor threads utilized by the first container if the updated total container time remaining is insufficient.