Graph Data Structure Transmission via Indirect Node Indexing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


