BPEL Compiler Liveness Analysis for Data Blob Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Business Process Execution Language (BPEL) processes often require significant storage space when dehydrated, as all variables are stored during suspension, leading to inefficient use of resources, especially when multiple processes are run concurrently.

Innovation Solution

A method that identifies live variables at dehydration points through liveness analysis, creating an optimization data structure to store only live variables, reducing the size of the BPEL data blob and minimizing storage needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all variables are stored during dehydration to free memory and processing resources, then resource utilization is improved, but storage space requirement increases significantly

Engineering Contradiction:
Improveresource utilizationVSAvoidstorage space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary live variables from the complete set of process variables during dehydration, storing them in a compact form in the database, while leaving non-live variables unstored. This selective extraction resolves the contradiction by reducing storage space requirements while maintaining the ability to restore essential process state.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the variable set into live and non-live categories using liveness analysis, storing only the live variable segment in the database. This segmentation allows the system to free memory and processing resources effectively while minimizing storage space consumption by excluding redundant non-live variables.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple BPEL processes are run concurrently with full dehydration, then processing capacity is improved, but total storage space consumption increases

Engineering Contradiction:
Improveprocessing capacityVSAvoidtotal storage space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

By extracting only live variables from each concurrently executing BPEL process during dehydration, the system enables higher processing capacity while keeping the storage space required for each process minimal. This resolves the contradiction by eliminating redundant storage of non-live variables across multiple concurrent processes.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If dehydrated BPEL processes are stored until manually purged, then resource availability is improved, but storage space is wasted by processes no longer needing rehydration

Engineering Contradiction:
Improveresource availabilityVSAvoidstorage space waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements automatic discarding of dehydrated process state when it is no longer needed, using liveness analysis to determine when variables are permanently unreachable. This automatic discarding mechanism recovers storage space by removing obsolete data, resolving the contradiction between maintaining resource availability and preventing storage waste.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8954942B2Optimizations using a BPEL compiler
Publication Date: 2015.02.10 ORACLE INT CORP
  • US8954942B2 patent drawing
  • US8954942B2 patent drawing
  • US8954942B2 patent drawing

AI summary

Various arrangements for reducing a size of a Business Process Execution Language (BPEL) data blob for storage may be presented. One or more dehydration points within compiled BPEL code may be identified. A liveness analysis for the one or more dehydration points may be performed. At each of the one or more dehydration points, one or more live variables from a set of variables may be identified. An optimization data structure may be created for each dehydration point identifies the one or more live variables.