Distributed Runtime System for Java Object Finalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computing systems lack the ability to operate an application program simultaneously across multiple computers in a coordinated manner, with inconsistent memory management, initialization, cleanup, and synchronization procedures across interconnected machines, leading to performance degradation and administrative complexity.

Innovation Solution

A modified computer architecture that allows an application program to run simultaneously on multiple computers with independent local memories, using a distributed runtime system to ensure consistent and coordinated asset initialization, cleanup, and synchronization through the creation and management of identical objects across all machines, and the propagation of memory updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If an application program is run simultaneously on multiple computers with independent local memories, then productivity and scalability are improved, but device complexity increases due to the need for coordinated memory management, initialization, cleanup, and synchronization procedures

Engineering Contradiction:
ImproveperformanceVSAvoidadministrative complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime system as an intermediary layer that mediates between the application program and the distributed memory architecture. This runtime system automatically handles memory management, initialization, cleanup, and synchronization operations across multiple computers, eliminating the need for manual coordination and reducing administrative complexity while enabling simultaneous execution on distributed systems

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The runtime system provides self-service functionality by automatically managing memory allocation, object initialization, and finalization operations across the distributed environment. The system monitors and coordinates memory usage across all computers, automatically propagating updates and managing synchronization without requiring explicit intervention from the application program or administrator

Inventive Principle:
Principle #25Self-service

2Reliability

If memory management procedures are coordinated across multiple computers, then reliability is improved through consistent memory access and synchronization, but device complexity increases due to the coordination overhead

Engineering Contradiction:
Improveconsistent memory managementVSAvoidcoordination complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The runtime system implements feedback mechanisms that monitor memory access patterns and synchronization status across all computers in the distributed environment. Based on this feedback, the system dynamically adjusts memory management strategies, propagates updates only when necessary, and coordinates synchronization operations to maintain consistency while minimizing coordination overhead

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent merges memory management functions into a unified runtime system that operates across all computers simultaneously. By combining initialization, memory allocation, cleanup, and synchronization operations into a single coordinated framework, the system achieves consistent memory management without requiring separate coordination mechanisms for each function

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8028299B2Computer architecture and method of operation for multi-computer distributed processing with finalization of objects
Publication Date: 2011.09.27 WARATEK LTD
  • US8028299B2 patent drawing
  • US8028299B2 patent drawing
  • US8028299B2 patent drawing

AI summary

The present invention discloses a modified computer architecture (50, 71, 72) which enables an applications program (50) to be run simultaneously on a plurality of computers (M1, . . . Mn). Shared memory at each computer is updated with amendments and/or overwrites so that all memory read requests are satisfied locally. During initial program loading (75), or similar, instructions which result in memory being re-written or manipulated are identified (92). Additional instructions are inserted (103) to cause the equivalent memory locations at all computers to be updated. In particular, the finalization of JAVA language classes and objects is disclosed (162, 163) so finalization only occurs when the last class or object present on all machines is no longer required.