Shim Object Serialization for Distributed Array Memory Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed software applications face challenges in performing operations on distributed arrays across multiple databases, as these operations are neither straightforward nor automatic.
Innovation Solution
The use of object serialization to communicate references to shim objects and manage memory on worker processes, where shim objects store a unique identifier for a native partitioned array instance, allowing for efficient communication and garbage collection across ranks in a distributed application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If distributed arrays are divided across multiple databases for parallel processing, then processing capability and productivity are improved, but the complexity of managing memory and communication between ranks increases
Solution Approach 1:
The patent introduces a runtime system as an intermediary layer between the distributed databases and the application code. This runtime automatically manages memory allocation, serialization, and communication between ranks, eliminating the need for developers to manually handle complex memory management in distributed environments.
Solution Approach 2:
The system implements automatic garbage collection and memory management where the runtime monitors and manages memory resources across all ranks without external intervention. The memory management system automatically identifies and reclaims unused memory, and handles object lifecycle management across the distributed system.
2Ease of operation
If shim objects are serialized and communicated between master and worker ranks, then ease of operation is improved, but use of energy and communication overhead increase
Solution Approach 1:
The system creates lightweight serialized copies of shim objects that contain only the essential data needed for communication between ranks. These serialized representations are efficient in size and can be quickly transmitted across the network, reducing communication overhead while maintaining ease of operation.
Solution Approach 2:
The serialization format dynamically adjusts based on the object type and data characteristics, optimizing the balance between readability and transmission efficiency. The system transforms complex object structures into compact serialized forms that minimize network bandwidth consumption while preserving all necessary information.
3Loss of substance
If worker ranks are marked for garbage collection after processing, then loss of substance is reduced, but loss of time occurs during collection
Solution Approach 1:
The garbage collection system operates periodically rather than continuously, collecting memory at scheduled intervals after processing phases complete. This periodic approach allows the system to batch collection operations, reducing the overall impact on performance while ensuring memory is properly reclaimed.
Solution Approach 2:
The system performs preliminary identification and marking of objects for garbage collection during the processing phase itself, so that the actual collection operation only needs to execute the final cleanup. This preliminary action reduces the workload and time required for the actual garbage collection process.
Data Source
AI summary
Embodiments are directed to using object serialization to communicate references to shim objects and to managing memory on worker processes of a distributed software application. In one scenario, a computer system instantiates shim objects on one or more ranks of a distributed application. The shim objects are configured to store a reference to an instance of a native partitioned array, where the reference includes a unique identifier for the native partitioned array instance. The computer system then serializes the shim objects for communication of the stored references from the master rank of the distributed application to various other worker ranks of the distributed application. Then, upon serializing the shim objects, the computer system communicates the shim object's stored references to the other worker ranks of the distributed application.


