Immutable Tree Data Structure with Incremental Bi-directional Pointers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tree data structures with bi-directional pointers are not reusable, leading to inefficiencies and increased processing costs when multiple consumers need to access and modify the same tree, as they require recreating the entire tree for small changes, which is resource-intensive and compromises data integrity.

Innovation Solution

A data structure comprising a private immutable tree with uni-directional pointers and a public tree that allows bi-directional references, enabling efficient incremental updates and reusability by deferring construction of the public tree on demand and maintaining data integrity through a hidden private tree.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional bi-directional pointer trees are used to allow multiple consumers to access and modify the same tree, then ease of operation is improved, but productivity deteriorates because the entire tree must be recreated for small changes

Engineering Contradiction:
Improveaccess and modification capabilityVSAvoidtree creation efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the tree into two distinct components: a private immutable tree containing the core data structure with uni-directional pointers, and a public tree with bi-directional pointers that provides access functionality. This segmentation allows the immutable private tree to be reused across multiple consumers while the public tree handles modification operations, eliminating the need to recreate the entire tree structure for small changes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The public tree acts as an intermediary between consumers and the private immutable tree. It provides the necessary bi-directional pointer functionality for ease of operation while the private tree remains unchanged and reusable. The public tree mediates access requests, allowing consumers to interact with the tree structure without compromising the reusability of the underlying immutable data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the entire tree is recreated for small modifications, then reliability is improved by ensuring data integrity, but loss of substance worsens due to unnecessary resource consumption

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing resources
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The private immutable tree is constructed in advance with the complete and correct data structure, ensuring data integrity from the outset. Once created, this immutable tree can be safely reused by multiple consumers without modification, eliminating the need for repeated recreation and the associated resource consumption while maintaining reliability through its unchangeable nature.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of discarding and recreating the entire tree for small modifications, the patent recovers and reuses the immutable private tree structure. The public tree handles modifications locally without affecting the underlying private tree, allowing the system to discard only the minimal necessary changes while recovering and reusing the majority of the tree structure, thus conserving processing resources.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If uni-directional pointers are used in the private tree to enable reusability, then productivity is improved, but ease of operation deteriorates due to limited navigation capability

Engineering Contradiction:
Improvetree reusabilityVSAvoidnavigation capability
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent adds another dimension to the tree structure by creating a public tree layer that provides bi-directional navigation capabilities. While the private tree maintains uni-directional pointers for reusability, the public tree introduces upward and downward reference functionality, allowing consumers to navigate the tree structure freely without compromising the immutability and reusability of the private tree.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The public tree is nested around the private immutable tree, with the public tree containing references to the private tree nodes. This nested structure allows the public tree to provide enhanced navigation capabilities including bi-directional pointers, while the private tree remains intact and reusable. The nesting enables the inner private tree to maintain its simple uni-directional structure for efficiency while the outer public tree provides the necessary operational flexibility.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS11372630B2Efficient immutable syntax representation with incremental change
Publication Date: 2022.06.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11372630B2 patent drawing
  • US11372630B2 patent drawing
  • US11372630B2 patent drawing

AI summary

Efficient immutable syntax representation with parent pointers under incremental change is enabled by creating a data structure comprising at least one tree structure that allows both upward and downward references in the tree and a tree structure that is immutable (read-only), and allows parts of itself to be re-used in other data structures. The data structure described enables tools to search and target particular sub trees. The fragment of the tree representing the targeted sub tree is produced as it is used. The rest of the tree is not produced. The read-only tree retains relative information, allowing it to be reassembled and shared.