IP Library Granted Patent US 12688175
Granted Patent B2
US 12688175 · App. 17/879,644 · Granted Jul 21, 2026

Data replication and recursive tree structure searching

Inventor: Alexander Chiang Wei (Renton, WA)
Assignee: Blue Origin Manufacturing, LLC
G06F16/2246G06F16/24566G06F16/9027
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12688175
App. No.
17/879,644
Granted
Jul 21, 2026
Kind
B2
Abstract

Systems, methods, and non-transitory storage media are provided for replication of data and/or retrieval of (replicated) data using recursive tree structure searching. For instance, a system may use one or more self join operations to expand a tree graph in fewer iterations that are taken with typical tree graph expansion methods. Once the tree graph is expanded, the system can respond to a query by providing a list of child paths of a node referenced in the query or a list of parent nodes of a node referenced in the query.

Claims (51)

1 . A computer-implemented method, comprising:

transmitting, to a product lifecycle management (PLM) system, a request for PLM data;

generating a tree graph and migrating the PLM data to nodes of the tree graph;

storing the tree graph in a model data store;

identifying, in a first iteration, a plurality of first paths in a tree graph, wherein each first path in the plurality of first paths is a path between a parent node in the tree graph and a child node of the parent node;

joining, in a second iteration that is subsequent to the first iteration, each first path in the plurality of first paths identified in the first iteration with a second first path in the plurality of first paths identified in the first iteration that starts at a node in the tree graph at which the respective first path ends to form a plurality of joined paths, wherein each joined path in the plurality of joined paths has a length of three;

joining, in a third iteration that is subsequent to the second iteration, each joined path in the plurality of joined paths from the second iteration with another joined path in the plurality of joined paths from the second iteration that starts at a node in the tree graph at which the respective joined path ends to form a plurality of second joined paths, wherein each second joined path in the plurality of second joined paths has a length of five;

receiving, from a client device, a query that identifies a target node in the tree graph that corresponds to a component part of a system;

in response to receiving the query,

searching the plurality of second joined paths for child paths of the target node; and

generating a list of the child paths of the target node based on the searching;

retrieving, from the model data store, a portion of the PLM data associated with the child paths of the target node; and

transmitting the list and the portion of the PLM data associated with the child paths of the target node to the client device.

2 . The computer-implemented method of claim 1 , wherein the query comprises a request for a reverse bill of material search of the PLM data.

3 . The computer-implemented method of claim 1 , wherein joining each first pair in the plurality of first paths further comprises:

generating a new edge that includes a head of one of the first paths in the plurality of first paths as a head of the new edge and a tail of one of the second first paths in the plurality of first paths as a tail of the new edge; and

appending the new edge to a working list.

4 . The computer-implemented method of claim 1 , wherein further comprising repeating a join operation until a distance associated with a current iteration is greater than a distance of any path in a working list.

5 . A system, comprising:

at least one processor; and

at least one non-transitory storage media storing instructions that, when executed by the at least one processor, cause the at least one processor to:

transmit, to a product lifecycle management (PLM) system, a request for PLM data;

generate a tree graph and migrating the PLM data to nodes of the tree graph;

store the tree graph in a model data store

identify, in a first iteration, a plurality of first paths in a tree graph, wherein each first path in the plurality of first paths is a path between a parent node in the tree graph and a child node of the parent node;

join, in a second iteration that is subsequent to the first iteration, each first path in the plurality of first paths identified in the first iteration with a second first path in the plurality of first paths identified in the first iteration that starts at a node in the tree graph at which the respective first path ends to form a plurality of joined paths, wherein each joined path in the plurality of joined paths has a length of three;

join, in a third iteration that is subsequent to the second iteration, each joined path in the plurality of joined paths from the second iteration with another joined path in the plurality of joined paths from the second iteration that starts at a node in the tree graph at which the respective joined path ends to form a plurality of second joined paths, wherein each second joined path in the plurality of second joined paths has a length of five;

receive, from a client device, a query that identifies a target node in the tree graph that corresponds to a component part of a system;

in response to reception of the query,

search the plurality of second joined paths for child paths of the target node; and

generate a list of the child paths of the target node based on the search;

retrieve, from the model data store, a portion of the PLM data associated with the child paths of the target node; and

transmit the list and the portion of the PLM data associated with the child paths of the target node to the client device.

6 . The system of claim 5 , wherein the query comprises a request for a reverse bill of material search of the PLM data.

7 . The system of claim 5 , wherein the instructions, when executed, further cause the at least one processor to:

generate a new edge that includes a head of one of the first paths in the plurality of first paths as a head of the new edge and a tail of one of the second first paths in the plurality of first paths as a tail of the new edge; and

append the new edge to a working list.

8 . The system of claim 5 , wherein the instructions, when executed, further cause the at least one processor to repeat a join operation until a distance associated with a current iteration is greater than a distance of any path in a working list.

9 . At least one non-transitory storage media storing instructions that, when executed by at least one processor, cause the at least one processor to perform operations, the operations comprising:

transmitting, to a product lifecycle management (PLM) system, a request for PLM data;

generating a tree graph and migrating the PLM data to nodes of the tree graph;

storing the tree graph in a model data store;

identifying, in a first iteration, a plurality of first paths in a tree graph, wherein each first path in the plurality of first paths is a path between a parent node in the tree graph and a child node of the parent node;

joining, in a second iteration that is subsequent to the first iteration, each first path in the plurality of first paths identified in the first iteration with a second first path in the plurality of first paths identified in the first iteration that starts at a node in the tree graph at which the respective first path ends to form a plurality of joined paths, wherein each joined path in the plurality of joined paths has a length of three;

joining, in a third iteration that is subsequent to the second iteration, each joined path in the plurality of joined paths from the second iteration with another joined path in the plurality of joined paths from the second iteration that starts at a node in the tree graph at which the respective joined path ends to form a plurality of second joined paths, wherein each second joined path in the plurality of second joined paths has a length of five;

receiving, from a client device, a query that identifies a target node in the tree graph that corresponds to a component part of a system;

in response to reception of the query,

searching the plurality of second joined paths for child paths of the target node; and

generating a list of the child paths of the target node based on the search;

retrieving, from the model data store, a portion of the PLM data associated with the child paths of the target node; and

transmiting the list and the portion of the PLM data associated with the child paths of the target node to the client device.