Tree-Based Data Structure Memory Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tree-based data structures require substantial memory for overhead, limiting their use with large datasets due to memory allocation for each entry, which can exceed operating system limits.
Innovation Solution
Converting tree-based data structures to array-based data structures by populating original data into a container with a tree-based structure, then copying it to an array-based structure, deleting the tree-based structure, and maintaining the data in the array-based structure for reduced memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If tree-based data structures are used, then fast population and fast retrieval of data are achieved, but substantial memory is required for overhead allocation per entry
Solution Approach 1:
The patent changes the fundamental parameter of data structure organization from tree-based (node-pointer architecture) to array-based (contiguous memory architecture). This parameter change transforms how data is stored and accessed, eliminating per-entry overhead while maintaining retrieval capability through sequential or indexed access patterns.
Solution Approach 2:
The patent creates a copy of the data from the tree-based structure into a separate array-based structure. By copying data rather than modifying the original structure, the patent preserves the functional benefits of the tree structure while eliminating its memory overhead through the array representation.
2Productivity
If tree-based data structures are used, then fast population and fast retrieval of data are achieved, but memory allocation per entry can exceed operating system limits for large datasets
Solution Approach 1:
The patent merges the advantages of both tree-based and array-based structures by maintaining data in an array format while using tree-based algorithms for insertion and deletion operations. This combination allows fast population and retrieval while utilizing the memory-efficient array structure for actual data storage.
Solution Approach 2:
The patent fundamentally changes the memory allocation parameter from per-entry allocation in tree structures to single-block allocation in array structures. This parameter change enables handling of large datasets by allocating memory in one contiguous block rather than accumulating many small allocations, thereby overcoming operating system limits.
3Quantity of substance
If array-based data structures are used, then overhead memory allocation is incurred once for the entire container, but fast retrieval operations may be slower compared to tree-based structures
Solution Approach 1:
The patent performs preliminary sorting of data in the array structure before retrieval operations. By pre-sorting the data, the patent enables efficient binary search and other optimized retrieval algorithms, compensating for the lack of automatic O(log n) retrieval that tree structures provide naturally.
Solution Approach 2:
The patent creates a multi-functional system where the array structure serves both as efficient storage (low overhead) and as a basis for optimized retrieval operations. By implementing multiple access methods (direct indexing, binary search, linear search) on the same array, the patent achieves versatility in retrieval strategies to balance speed and memory efficiency.
Data Source
AI summary
A system and method for reducing memory usage is disclosed. The system and method include populating a first container with original data. The first container has a tree-based data structure that includes a plurality of nodes and a plurality of pointers. A block of memory is allocated to a second container that has an array-based data structure. The original data is copied from the first container to the second container. The original data, the plurality of nodes, and the plurality of pointers may be deleted from the first container.


