Batch Job Error Checking System for Parallel Workflow Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing software for parallel computing in business environments is challenging, especially for non-technical business administrators, due to the complexity of ensuring error-free and efficient processing of large data volumes across multiple tenants sharing hardware resources in a SaaS architecture.

Innovation Solution

A system that verifies batch jobs for compatibility and correctness, allowing users to define parallel workflows, partitions data operations across multiple nodes, and manages resources dynamically to ensure efficient and error-free execution, using a processor and memory configuration that checks operation inputs and outputs, and handles job execution with durable storage for state management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel computing is used to process large data volumes, then productivity is improved, but device complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidsoftware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the batch job into multiple independent operations that can be executed in parallel. Each operation is a discrete unit with defined inputs and outputs, allowing the system to divide complex data processing tasks into manageable parallel components while maintaining overall job coherence through the operation flow definition.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple tenants share hardware resources, then adaptability is improved, but productivity deteriorates due to resource division

Engineering Contradiction:
Improvemulti-tenant supportVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation where the system can adjust the number of parallel operations and resource allocation based on job requirements and available capacity. The batch job processor dynamically determines how to partition operations across available compute resources, allowing efficient multi-tenant resource sharing while optimizing processing throughput for each job.

Inventive Principle:
Principle #15Dynamics

3Reliability

If error checking is performed on batch jobs, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improveerror detectionVSAvoidverification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary verification of batch job definitions before execution. The system checks operation inputs, outputs, and connections in advance to detect errors such as incompatible data types or missing connections. This upfront error detection prevents runtime failures without requiring complex error handling mechanisms during execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10083060B2System for error checking of process definitions for batch processes
Publication Date: 2018.09.25 WORKDAY INC
  • US10083060B2 patent drawing
  • US10083060B2 patent drawing
  • US10083060B2 patent drawing

AI summary

A system for processing a batch job comprises a processor and a memory. The processor is configured to receive a batch job comprising a sequential or parallel flow of operations, wherein each operation has a defined input type and a defined output type. The processor is further configured to verify that the batch job can run successfully, wherein verifying includes checking that a first operation output defined type is compatible with a second operation input defined type when a first operation output is connected to a second operation input, and wherein verifying includes checking that a parameter used by a calculation in an operation is input to the operation. The memory is coupled to the processor and configured to provide the processor with instructions.