Patricia Tree Data Structure Integer Encoding Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Patricia trees, used for data storage and retrieval, particularly in Java environments, face performance degradation due to the creation of excessive objects when storing strings with multiple searchable keywords, leading to inefficiencies in devices with constrained memory and computing resources.

Innovation Solution

Implementing a reusable data structure that allows efficient storage and retrieval by generating unique integers for string components, eliminating the need for multiple object instances and optimizing storage and search operations within Patricia trees.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If Patricia trees are used to store strings with multiple searchable keywords, then search functionality is improved, but the number of objects created increases excessively

Engineering Contradiction:
Improvesearch functionalityVSAvoidnumber of objects
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent combines multiple keyword searches into a single unified Patricia tree structure. Instead of creating separate objects for each keyword within a string, the system merges all keywords from all strings into one consolidated data structure, thereby reducing the total number of objects while maintaining full search functionality across all keywords.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The Patricia tree is designed to serve multiple search functions simultaneously. A single Patricia tree structure can search for any keyword that appears in any of the stored strings, making the data structure universal and multi-functional. This eliminates the need for separate specialized objects for each keyword search operation.

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

2Adaptability or versatility

If multiple object instances are created for each keyword in a string, then search coverage is improved, but memory consumption increases

Engineering Contradiction:
Improvesearch coverageVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSWeight of stationary object

Solution Approach 1:

The patent merges all keyword data into a single Patricia tree structure stored in memory, rather than creating separate object instances for each keyword. This consolidation reduces memory consumption while maintaining the ability to search for any keyword across all stored strings.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system creates a compact representation of keyword data in the Patricia tree structure. Instead of storing full keyword objects in memory, the Patricia tree stores optimized path information that allows efficient searching without requiring multiple complete object instances to be held in memory simultaneously.

Inventive Principle:
Principle #26Copying

3Quantity of substance

If Patricia trees store increasing numbers of items, then data capacity is improved, but performance degrades

Engineering Contradiction:
Improvedata capacityVSAvoidperformance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the Patricia tree into manageable components with efficient structural organization. By optimizing the tree structure and using compact integer representations, the system maintains performance efficiency even as data capacity increases, preventing the performance degradation that typically occurs with large datasets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the representation parameters from traditional object-based storage to compact integer-based Patricia tree nodes. This parameter change allows the data structure to scale efficiently, maintaining performance as data capacity increases because the compact representation reduces memory access overhead and improves cache efficiency.

Inventive Principle:
Principle #35Parameter changes

4Ease of manufacture

If Java objects are used for Patricia tree implementation, then ease of programming is improved, but object creation overhead increases

Engineering Contradiction:
Improveease of programmingVSAvoidobject creation
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent replaces expensive, long-lived Java object instances with cheap, lightweight integer representations in the Patricia tree. Each node in the Patricia tree is represented by compact integers rather than full Java objects, dramatically reducing the quantity of objects that need to be created and managed while maintaining programming simplicity through the use of standard data structures.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS8407259B2System and method for storing and retrieving data from storage
Publication Date: 2013.03.26 MALIKIE INNOVATIONS LTD
  • US8407259B2 patent drawing
  • US8407259B2 patent drawing
  • US8407259B2 patent drawing

AI summary

A system and method are provided which avoid the storage of multiple objects for a single entry in memory, in particular where the entry needs to be stored at least once anyway, a reusable data structure can be implemented which allows both easy and efficient use/reuse of Patricia tree components that are already in use. The data structure can be an integer built from a combination (e.g. concatenation) of a location where the corresponding string has been stored in memory, an offset for finding the word within the string, and a length for extracting all characters from the string that make up the word. Another data component can also be added, which can encode any other feature associated with the word such as a bias level for sorting multiple search results.