Code Line Allocation with Storage Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In on-demand service environments, efficiently assigning code lines to clusters with storage and other constraints is challenging due to shared infrastructure, varying resource capacities, and limitations in storage and processing power, leading to inefficient resource utilization and complex allocation scenarios.

Innovation Solution

A method that involves determining available and required resource capacities for clusters and code lines, sorting them, and allocating code lines based on their resource demands to optimize resource allocation across clusters, ensuring no cluster exceeds its capacity and allowing for partial allocation of code lines when necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code lines are allocated to clusters in a development environment using the same infrastructure as production, then testing can be performed separately from production, but resource utilization efficiency deteriorates because development environment consumes resources that could be used for production work

Engineering Contradiction:
Improvetesting capabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the allocation process by dividing code lines into different priority categories (production-related vs. non-production) and allocating them to different clusters or time slots. This allows the system to maintain separate testing capabilities while preserving production resources for their primary function.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic resource allocation where cluster assignments are not fixed but adapt based on production workload conditions. When production resources are available, non-production code lines can utilize them; when production needs resources, the system dynamically reassigns or delays non-production testing to prevent resource conflicts.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If clusters have non-uniform storage capacity and processing power, then resource specialization is possible, but allocation complexity increases due to varying constraints across clusters

Engineering Contradiction:
Improveresource specializationVSAvoidallocation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by matching specific code line characteristics with corresponding cluster capabilities. Code lines with specific resource requirements (storage-intensive or CPU-intensive) are allocated to clusters with matching specialized capacities, optimizing performance while the systematic matching process manages the complexity of non-uniform resources.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent transforms the allocation problem by changing parameters from absolute resource amounts to relative compatibility metrics. Instead of comparing fixed resource quantities, the system evaluates match quality between code line requirements and cluster capabilities, simplifying the allocation decision process across heterogeneous clusters.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If code lines are allocated without considering storage constraints, then allocation speed is faster, but storage capacity constraints are violated leading to resource overutilization

Engineering Contradiction:
Improveallocation speedVSAvoidstorage constraint compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and storing the storage requirements of each code line and the available capacity of each cluster before allocation begins. This preprocessing step enables the allocation algorithm to make decisions based on pre-evaluated compatibility, maintaining fast allocation speed while ensuring storage constraints are never violated.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9280387B2Systems and methods for assigning code lines to clusters with storage and other constraints
Publication Date: 2016.03.08 SALESFORCE INC
  • US9280387B2 patent drawing
  • US9280387B2 patent drawing
  • US9280387B2 patent drawing

AI summary

In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for assigning code lines to clusters with storage and other constraints in an on-demand service environment including, for example, receiving as input, a plurality of code lines for test within a host organization; determining available resource capacity for each of a plurality of clusters within the host organization; determining required resource capacity for each of the plurality of code lines for test within the host organization; sorting the plurality of clusters according to the determined available resource capacity for each; sorting the plurality of code lines according to the determined required resource capacity for each; and allocating the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines. Other related embodiments are disclosed.