Runtime De-duplication of Immutable Data via Pointer Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer applications face significant memory overhead due to unintended data duplication, particularly with strings from databases and user input, leading to inefficient memory usage and scalability issues, which existing specialized data tables struggle to address effectively.

Innovation Solution

A de-duplication component is implemented at the system level, within a virtual machine or as a system-level component, to identify and eliminate duplicate immutable data items by modifying pointers to share a single instance, thereby reducing memory overhead and improving scalability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If specialized data tables are used to prevent data duplication, then memory overhead is reduced, but device complexity and processor time consumption increase

Engineering Contradiction:
Improvememory overheadVSAvoidsystem complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system performs self-service de-duplication by automatically identifying and consolidating duplicate immutable data items without requiring external intervention or complex cache eviction schemes. The de-duplication component autonomously monitors memory allocations and merges duplicate data items, reducing memory overhead while maintaining system simplicity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A de-duplication component is introduced as an intermediary between the application and the memory system. This component intercepts memory allocation requests, identifies duplicate immutable data items, and consolidates them before returning memory references to the application, thereby reducing memory overhead without increasing application complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If specialized data tables are used to prevent data duplication, then memory overhead is reduced, but processor time consumption increases

Engineering Contradiction:
Improvememory overheadVSAvoidprocessor time
Core Design Contradiction:
Loss of energyVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary de-duplication actions by identifying and consolidating duplicate immutable data items at the point of allocation or during garbage collection cycles. By proactively merging duplicates before they consume excessive memory, the system reduces memory overhead without requiring continuous processor intervention or complex runtime checks.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The de-duplication mechanism operates autonomously using existing garbage collection infrastructure and memory management facilities. It self-identifies duplicate data items and performs consolidation without requiring additional processor-intensive operations or external control, thereby reducing memory overhead while minimizing processor time consumption.

Inventive Principle:
Principle #25Self-service

3Loss of energy

If application code is modified to use specialized tables, then data duplication is prevented, but ease of operation deteriorates

Engineering Contradiction:
Improvememory overheadVSAvoidcode modification ease
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The de-duplication component provides universal functionality that works across different applications and data types without requiring application-specific modifications. It operates at the system level, intercepting and de-duplicating immutable data items regardless of their source or usage pattern, thereby reducing memory overhead while maintaining ease of operation.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The de-duplication component serves as an intermediary layer between the application and the memory system, automatically preventing data duplication without requiring changes to application code. It transparently consolidates duplicate immutable data items while maintaining the same interface for applications, thereby reducing memory overhead while preserving ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If system-level de-duplication is implemented, then scalability and memory efficiency improve, but device complexity increases

Engineering Contradiction:
Improvememory efficiencyVSAvoidsystem architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system-level de-duplication component operates autonomously using existing virtual machine and garbage collection infrastructure. It self-manages the identification, consolidation, and tracking of duplicate immutable data items without requiring complex external control mechanisms or additional system architecture layers, thereby improving memory efficiency while maintaining system simplicity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A de-duplication component is introduced as an intermediary within the existing system architecture, operating at the boundary between the application and the memory management system. It provides de-duplication functionality by intercepting memory allocations and consolidating duplicates, improving memory efficiency and scalability without significantly increasing system architecture complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10482064B2De-duplicating immutable data at runtime
Publication Date: 2019.11.19 ORACLE INT CORP
  • US10482064B2 patent drawing
  • US10482064B2 patent drawing
  • US10482064B2 patent drawing

AI summary

De-duplication of immutable data items at runtime may include identifying a set of potentially duplicate immutable data items in use by one or more applications. The applications may access the immutable data items through pointers of respective objects corresponding to the immutable data items. A de-duplication component executing distinctly from the applications may analyze the identified set of potentially duplicate immutable data items to determine two or more that have identical content and may then modify one or more pointers of the corresponding objects so that at least two of the pointers point to a single immutable data item.