Immutable Data Memory Allocation for Constrained Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory-constrained devices, such as mobile phones, face challenges in running applications with large data sets due to limited memory and lack of secondary storage for swapping rarely-used data, leading to modifications and limitations in executing programs.

Innovation Solution

A system that allocates a memory region for immutable data, allowing for dynamic loading and unloading of blocks, regenerating data as needed, and using statistical attributes to evict less-used blocks, while maintaining language semantics and reducing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire application and data set are loaded into memory, then the application can execute without swapping, but the memory consumption exceeds the available memory on constrained devices

Engineering Contradiction:
Improveapplication execution reliabilityVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the application's data set into immutable blocks that can be independently managed. Each block is identified as immutable at compile time and can be loaded, unloaded, and regenerated independently, allowing the system to manage large data sets in chunks rather than requiring the entire data set to reside in memory simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the state parameter of immutable blocks from 'always loaded' to 'loaded on demand'. By tracking which blocks are currently loaded in memory and loading them only when needed, the system transforms the memory management approach from static allocation to dynamic allocation, reducing peak memory consumption while maintaining execution reliability.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If rarely-used data is swapped to secondary storage, then memory availability increases, but devices without secondary storage cannot utilize this approach

Engineering Contradiction:
Improveavailable memoryVSAvoiddevice compatibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent extracts the swapping mechanism from the traditional secondary storage dependency and replaces it with a regeneration-based approach. Instead of swapping data to external storage and back, the system extracts only the necessary data blocks into memory, generates them on-demand from their immutable definitions, and discards them when no longer needed, eliminating the need for secondary storage infrastructure.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements self-service by enabling the system to regenerate immutable data blocks from their source definitions whenever they are needed. Rather than relying on persistent secondary storage to retain data between sessions, the system serves its own data needs by regenerating blocks from immutable definitions, making the approach compatible with devices that have limited or no secondary storage capacity.

Inventive Principle:
Principle #25Self-service

3Quantity of substance

If immutable blocks are unloaded and regenerated, then memory usage is reduced, but computational overhead increases

Engineering Contradiction:
Improvememory usageVSAvoidcomputational overhead
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The patent applies partial action by loading only the specific immutable blocks that are currently needed for execution, rather than loading entire data sets or application components. This selective loading approach ensures that memory resources are dedicated only to actively used data blocks, minimizing both memory usage and the computational overhead associated with data transformation and loading operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9477588B2Method and apparatus for allocating memory for immutable data on a computing device
Publication Date: 2016.10.25 ORACLE INT CORP
  • US9477588B2 patent drawing
  • US9477588B2 patent drawing
  • US9477588B2 patent drawing

AI summary

A system that allocates memory for immutable data on a computing device. The system allocates a memory region on the computing device to store immutable data for an executing application. This memory region is smaller than the immutable data for the application. When the system subsequently receives a request to access a block of immutable data for the application, the system allocates space in this memory region for the block, and proceeds to load the block into the memory region. If at a later time the space occupied by this first block is needed for another block, the system unloads and discards the first block. If a subsequent operation needs to use information in the first block, the system regenerates the block by transforming raw data associated with the block into a form that can be directly accessed by the application, and then reloads the block into the memory region.