Batch Job Fragmentation for Transient Compute Instances

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Compute instances offered by service providers are challenging for customers to use for large batch jobs due to their transient nature, requiring complex management of multiple virtual machine instances and lack of portability and scalability.

Innovation Solution

A computing resource service divides batch jobs into job fragments that can be processed by time-bound compute instances, with each fragment having a pre-defined lifespan, allowing for efficient execution and monitoring to ensure completion or retry as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If compute instances are used for batch jobs, then resource cost is reduced and deployment speed is improved, but job reliability and completion guarantee deteriorate due to transient instance termination

Engineering Contradiction:
Improvedeployment speedVSAvoidjob completion guarantee
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The batch job is divided into multiple job fragments that can be independently executed. Each fragment is assigned to a compute instance with a specified lifespan, allowing the job to be processed in manageable chunks even as instances terminate and are replaced.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-configures compute instances with the necessary task definitions and job fragment assignments before execution begins. This preliminary setup ensures that when instances are launched, they are immediately ready to process their assigned fragments without delay.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple virtual machine instances are used to process batch jobs, then processing capacity is increased, but system complexity and management overhead increase

Engineering Contradiction:
Improveprocessing capacityVSAvoidsystem management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A computing resource service acts as an intermediary between customers and the distributed compute instances. This service manages task definitions, monitors execution status, handles instance lifecycle events, and coordinates job fragment distribution, thereby abstracting away the complexity of managing multiple virtual machines from the customer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements automatic monitoring and retry mechanisms where compute instances self-report their execution status and the computing resource service automatically manages instance creation, termination, and job fragment reassignment without requiring customer intervention in the complex management tasks.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If compute instances have limited lifespan, then resource flexibility and cost efficiency are improved, but job execution time and reliability deteriorate

Engineering Contradiction:
Improveresource flexibilityVSAvoidjob execution time
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of moving object

Solution Approach 1:

The system ensures continuous job processing by automatically creating new compute instances to replace terminated ones and reassigning uncompleted job fragments. This maintains the useful action of job processing without interruption despite individual instance lifecycles, effectively extending the overall execution duration through continuous replacement rather than termination.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10296377B1Batch job execution using compute instances
Publication Date: 2019.05.21 AMAZON TECH INC
  • US10296377B1 patent drawing
  • US10296377B1 patent drawing
  • US10296377B1 patent drawing

AI summary

A computing resource service receives a request to execute a batch job. The computing resource service invokes a first compute instance to divide the batch job into a plurality of job fragments, where each job fragment comprises a respective subset of operations for the batch job that can be processed within a limited lifespan of a compute instance. The job fragments are distributed among a plurality of second compute instances to enable collective processing of the job fragments. The status of the batch job is determined based at least in part on individual statuses of the job fragments.