Runtime Program Code Modification for Multi-Tenant Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing execution environments, such as multi-tenant application containers, face challenges in managing applications for multiple tenants, including difficulty in ascertaining application behavior without process-level metrics and legacy applications failing due to assumptions of single-tenant environments, as well as scaling issues in distributed computing environments.
Innovation Solution
A computer-implemented mechanism modifies program code at compile time or run time to enable proper execution in multi-tenant or distributed environments by providing instrumentation data, per-tenant resources, translating process identifiers, and propagating context information, allowing for dynamic load balancing and resource optimization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If multiple tenants execute applications in the same application container, then resource utilization is reduced through sharing common frameworks, but process-level metrics become unavailable making application behavior difficult to ascertain
Solution Approach 1:
The patent segments the multi-tenant container environment into isolated virtual process spaces, each assigned to a specific tenant. This segmentation allows process-level metrics to be captured and maintained separately for each tenant while still sharing the underlying container infrastructure, thus resolving the contradiction between resource sharing and metrics availability.
Solution Approach 2:
The patent introduces an intermediary layer (virtual process space with instrumentation) between the multi-tenant container and individual applications. This intermediary captures and translates process-level metrics, making them available for monitoring while allowing multiple tenants to share the container, thus resolving the information loss problem.
2Adaptability or versatility
If legacy application programs are executed in a multi-tenant execution environment, then resource sharing is enabled, but the applications fail due to assumptions of single-tenant environments
Solution Approach 1:
The patent applies preliminary action by modifying application code during compile time or load time before execution. This advance modification instruments the code to recognize and adapt to multi-tenant environments, preventing execution failures while maintaining resource sharing benefits.
Solution Approach 2:
The patent changes execution parameters by injecting context information and modifying process identifiers at runtime. This allows legacy applications to operate correctly in multi-tenant environments by dynamically adjusting parameters such as process IDs and context data without requiring fundamental code changes.
3Reliability
If program code is modified at run time to provide per-tenant resources, then proper execution in multi-tenant environments is enabled, but code complexity increases
Solution Approach 1:
The patent implements self-service by having the application code automatically instrument itself during modification. The code generates its own context information and per-tenant resource structures without requiring external complex processing, thus reducing overall system complexity while ensuring proper multi-tenant execution.
Solution Approach 2:
The patent creates universal instrumentation code that serves multiple functions: it provides per-tenant resource isolation, generates context information, and enables monitoring all within a single modification framework. This multi-functionality reduces the need for separate complex mechanisms for each requirement.
4Productivity
If application programs are executed in a distributed computing environment, then scalability is improved, but it becomes difficult to manage and scale execution across multiple systems
Solution Approach 1:
The patent implements feedback mechanisms through instrumentation that collects execution data and context information from distributed systems. This feedback enables centralized monitoring and management of distributed application execution, making scalability manageable by providing visibility into system state across multiple nodes.
Solution Approach 2:
The patent applies preliminary action by pre-instrumenting application code with context propagation capabilities before deployment to distributed environments. This preparation enables automatic context transmission across system boundaries, simplifying the management of distributed execution without requiring complex runtime coordination.
Data Source
AI summary
Program code, such the program code of an application program, can be modified to permit the program code to execute in a multi-tenant execution environment. For example, program code might be modified at compile time, run time, or at another time, in order to enable the program code to properly operate in an execution environment in which applications might be simultaneously executed in process by multiple tenants. Program code might also be modified at run time to enable the program code to execute in a distributed fashion in a distributed computing environment. For example, portions of the program code might be configured at run time to execute in different instances of an execution environment. The program code might be modified at run time to enable the program code to properly execute in multiple instances of the execution environment.


