Graph Data Structure Transmission via Indirect Node Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The transmission of acyclic graph data structures across a communications network restricts the efficient use of memory resources on the receiving computer, as the transmitting computer needs to manage how nodes are allocated in memory, limiting the application's ability to process the graph until it is complete.

Innovation Solution

A method involving the creation of a lookup table to store node locations, allowing the transmitting computer to use indexes to identify nodes that need updating, without needing to know the memory allocation strategy of the receiving computer, and using a queue to manage incomplete nodes for efficient memory reuse.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the transmitting computer provides direct memory references to nodes that need updating, then the receiving computer can update nodes efficiently, but the transmitting computer must know how the receiving computer allocates memory, which restricts the application's ability to use memory resources freely

Engineering Contradiction:
Improvenode update efficiencyVSAvoidmemory allocation flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary translation layer that converts direct memory references into indirect references through a reference table. The transmitting computer sends references to the reference table rather than direct memory addresses, and the receiving computer translates these references into actual memory locations using the table. This mediator decouples the transmitting and receiving computers, allowing the receiving computer to allocate memory freely while maintaining efficient node updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the memory reference mechanism into two parts: a reference table that stores the mapping between transmitted references and actual memory locations, and the actual node storage area. This segmentation allows the reference table to be managed independently from the node memory allocation, enabling flexible memory usage while maintaining efficient updates.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If the receiving computer pre-allocates memory for the entire data structure before reception is complete, then memory allocation is simple, but memory utilization is poor and the application cannot process the graph until it is complete

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidmemory utilization efficiency
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent applies preliminary action by allocating memory for nodes on-demand as they are received and created during the transmission process, rather than pre-allocating for the entire structure beforehand. The reference table is built incrementally as nodes are received, allowing the application to process completed portions of the graph while memory is being allocated for remaining nodes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent makes the memory allocation dynamic by allowing the reference table and node storage to grow as nodes are received during transmission. Instead of a static pre-allocated memory block, the system adapts its memory usage to the actual reception pattern, improving utilization efficiency while maintaining allocation simplicity through automatic table updates.

Inventive Principle:
Principle #15Dynamics

3Loss of time

If the receiving computer creates nodes before they are completely received, then processing can begin earlier, but the transmitting computer must track and update references to these incomplete nodes

Engineering Contradiction:
Improveprocessing start timeVSAvoidreference tracking complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent uses copying by creating placeholder node entries in the reference table when nodes are first received, even before they are completely constructed. These placeholder entries allow the transmitting computer to send references to incomplete nodes without needing to track their actual memory locations. When nodes are completed, their actual locations are filled in the reference table, maintaining simplicity while enabling early processing.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10313454B2Method of transmitting data structures from one computer to another computer
Publication Date: 2019.06.04 DEEP SECURE LTD
  • US10313454B2 patent drawing
  • US10313454B2 patent drawing
  • US10313454B2 patent drawing

AI summary

A data structure is transmitted from a first computer to a second computer by transmitting a plurality of messages from the first computer to the second computer. Each message contains data of a node of the structure and one or more references to child pointer locations in previously transmitted nodes. The data of each transmitted node is stored in the second computer, and the location of each node is stored in a table of addresses and the or each reference includes an index into the table of addresses. The first computer may then use indexes into the table to identify which nodes need updating, and thus avoid the need for the first computer to know how the second computer is allocating nodes in memory. The or each reference may include an index into an array of child pointers belonging to a node, may include the sequence number of the parent node of the node being transmitted and may also include the index into the parent node's children to the pointer to the node being transmitted.