Software Object Handle Management in Dual-Threaded Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In object-oriented database management systems (OODBMS), the lack of synchronicity between the garbage collector and other processes hinders the efficient determination of which persistent objects can be written into storage memory and when memory locations can be made available for other uses, leading to inefficiencies in memory management.

Innovation Solution

A method and system for managing software object handles in a dual-threaded environment, where a garbage collector process operates independently to identify unreferenced objects, update their status, and free up cache memory locations by using handle wrappers with in-use/not-in-use flags, allowing for concurrent garbage collection and finalization processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the garbage collector operates in a single thread attempting to close persistent objects, then the system structure remains simple, but the efficiency of determining which objects to write and when memory locations become available is inhibited

Engineering Contradiction:
Improvegarbage collection efficiencyVSAvoidthreading model complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system divides the garbage collection process into separate threads: a first thread for generating persistent objects and a second thread for garbage collection. This segmentation allows independent operation of object generation and object reclamation, improving productivity without requiring complex synchronization within a single thread.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces handle wrappers as intermediary structures that mediate between the first thread (object generation) and the second thread (garbage collection). These wrappers track object references and enable efficient communication between threads, allowing the garbage collector to determine which objects need to be written without complex synchronization mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If the garbage collector and other processes operate without synchronicity, then process independence is maintained, but the efficiency of memory management and object finalization is reduced

Engineering Contradiction:
Improveprocess independenceVSAvoidmemory management efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The handle wrappers provide feedback mechanisms that allow the garbage collector thread to efficiently determine which persistent objects are no longer referenced. The wrappers track reference counts and object status, enabling the garbage collector to make informed decisions about which objects to finalize without requiring complex synchronization with other processes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts the state of handle wrappers based on reference counts and object usage patterns. This dynamic state management allows the garbage collector to adapt to changing memory conditions in real-time, improving memory management efficiency while maintaining process independence through thread-level operation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8073882B2Method, system and computer-readable media for managing software object handles in a dual threaded environment
Publication Date: 2011.12.06 OBJECTIVITY INC
  • US8073882B2 patent drawing
  • US8073882B2 patent drawing
  • US8073882B2 patent drawing

AI summary

A method and computer-readable media for managing software object handles in a dual threaded or multi-threaded environment are provided. In a first version a software driven computational process drives a first thread, while a garbage collector process drives a second active computational thread within a host computer. The software driven computational process generates persistent software objects that are temporarily stored in a memory of the host. Each handle may include an object identifier of the handle itself, an open/closed flag and a pointer to a unique persistent object. The open/closed flag indicates whether the persistent object associated with a handle shall remain open and accessible for processing or may be selected for closure by the garbage collector process. A plurality of handle wrappers are each associated in a one-to-one correspondence with a unique handle. Each handle wrapper is a software data structure that may include a in-use/not in-use flag and a specific handle or a pointer to a handle.