Monolithic Program Clustering for Distributed Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer programs, often monolithic and decades-old, limit efficiency in distributed computing infrastructures like cloud or serverless environments due to their monolithic properties, requiring costly rewriting and struggling with understanding interdependencies.
Innovation Solution
A system that maps monolithic computer programs into clusters of functions by tracking memory objects, threads, and function calls, allowing these clusters to be executed in distributed environments with minimal context enforcement, avoiding unnecessary resource access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If monolithic computer programs are executed in distributed computing infrastructures, then execution efficiency is improved, but the monolithic properties of legacy programs prevent effective utilization of distributed environments
Solution Approach 1:
The system automatically segments monolithic computer programs into functional clusters by analyzing interdependencies between functions, data structures, and control flow. This segmentation enables distributed execution of independent function clusters across multiple computing nodes while maintaining program correctness, thereby resolving the contradiction between execution efficiency and adaptability to distributed infrastructure.
2Productivity
If legacy programs are rewritten to take advantage of distributed infrastructure, then efficiency is improved, but time and capital costs increase significantly
Solution Approach 1:
The system performs automatic program analysis and transformation without requiring manual rewriting by developers. The automated interdependency analysis and functional clustering processes enable the system to self-service the transformation of legacy monolithic programs into distributed-execution-ready formats, significantly reducing both time and capital costs while maintaining execution efficiency improvements.
3Adaptability or versatility
If functions are separated into clusters for distributed execution, then scalability is improved, but understanding interdependencies within programs becomes more difficult
Solution Approach 1:
The system employs automated interdependency analysis that tracks data flows, control flows, and resource sharings between functions to identify clustering opportunities. This feedback-driven approach systematically reveals interdependencies rather than obscuring them, enabling both improved scalability through functional clustering and maintained understandability through automated analysis tools that visualize and document the dependency relationships.
Data Source
AI summary
Systems and methods method for mapping between function calls and entities of the computer program. The method includes executing a computer program in a first computing environment; determining a first entity of the computer program to track; assigning an identifier to the first entity; determining the first entity has been accessed by at least one function call; and mapping the at least one function call with the identifier of the first entity; generating a cluster including the at least one function, wherein the cluster may be executed independently from the rest of the computer program.


