Shim Object Serialization for Distributed Array Memory Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessing capabilityVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveease of operationVSAvoidcommunication overhead
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvememory leakageVSAvoidgarbage collection time
Core Design Contradiction:
Loss of substanceVSLoss of time

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9176769B2Partitioned array objects in a distributed runtime
Publication Date: 2015.11.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9176769B2 patent drawing
  • US9176769B2 patent drawing
  • US9176769B2 patent drawing

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.