Systems and methods for navigating through a hierarchy of nodes stored in a database
First Claim
1. A computer-implemented method for navigating through a hierarchy of nodes stored in a database, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
- dividing a set of nodes organized in a hierarchy into contiguous subsections by;
selecting a number of nodes to allocate to each subsection based at least in part on an amount of time involved in loading the number of nodes into local memory from a database;
storing each subsection in a separate page within the database, wherein each node in the hierarchy represents at least one of;
a child node descended from a parent node, a parent node with at least one child node, or a root node that represents a highest parent node on a path within a page, and each node within the hierarchy is uniquely identified by a primary key; and
storing within each node at least one association between the node and each related parent node, child node, or root node by storing within the node the primary key of each related node;
receiving a request to access nodes within the database;
in response to the request, traversing a path through the hierarchy of nodes by;
identifying an initial node in the path and looking up an initial page that contains the initial node and one or more subsequent nodes in the path;
loading the initial page from the database into local memory such that each node contained in the initial page is accessible via local memory;
compressing contents of the initial page by serializing each node within the initial page into a single field within a page table;
navigating to the one or more subsequent nodes in the path by accessing the nodes loaded into local memory instead of accessing the database; and
storing a page key of a subsequent page within at least one of a root node within the initial page or a lowest node on the path within the initial page.
7 Assignments
0 Petitions
Accused Products
Abstract
The disclosed computer-implemented method for navigating through a hierarchy of nodes stored in a database may include (1) receiving a request to access a database that stores a set of nodes organized in a hierarchy, wherein the hierarchy is divided into contiguous subsections and each subsection is stored in a separate page and (2) in response to the request, traversing a path through the hierarchy of nodes by (a) identifying an initial node in the path and looking up an initial page that contains the initial node, (b) loading the page from the database into local memory, the page including the initial node in the path and one or more subsequent nodes in the path, and (c) navigating to the one or more subsequent nodes in the path by accessing the page loaded into local memory instead of accessing the database. Additional methods, systems, and computer-readable media are also disclosed.
126 Citations
20 Claims
-
1. A computer-implemented method for navigating through a hierarchy of nodes stored in a database, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
-
dividing a set of nodes organized in a hierarchy into contiguous subsections by; selecting a number of nodes to allocate to each subsection based at least in part on an amount of time involved in loading the number of nodes into local memory from a database; storing each subsection in a separate page within the database, wherein each node in the hierarchy represents at least one of;
a child node descended from a parent node, a parent node with at least one child node, or a root node that represents a highest parent node on a path within a page, and each node within the hierarchy is uniquely identified by a primary key; andstoring within each node at least one association between the node and each related parent node, child node, or root node by storing within the node the primary key of each related node; receiving a request to access nodes within the database; in response to the request, traversing a path through the hierarchy of nodes by; identifying an initial node in the path and looking up an initial page that contains the initial node and one or more subsequent nodes in the path; loading the initial page from the database into local memory such that each node contained in the initial page is accessible via local memory; compressing contents of the initial page by serializing each node within the initial page into a single field within a page table; navigating to the one or more subsequent nodes in the path by accessing the nodes loaded into local memory instead of accessing the database; and storing a page key of a subsequent page within at least one of a root node within the initial page or a lowest node on the path within the initial page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for navigating through a hierarchy of nodes stored in a database, the system comprising at least one processor, wherein the processor is configured to:
-
divide a set of nodes organized in a hierarchy into contiguous subsections by; selecting a number of nodes to allocate to each subsection based at least in part on an amount of time involved in loading the number of nodes into local memory from a database; storing each subsection in a separate page within the database, wherein each node in the hierarchy represents at least one of;
a child node descended from a parent node, a parent node with at least one child node, or a root node that represents a highest parent node within a path within a page, and each node within the hierarchy is uniquely identified by a primary key; andstoring within each node at least one association between the node and each related parent node, child node, or root node by storing within the node the primary key of each related node; receive a request to access nodes within the database; in response to the request, traverse a path through the hierarchy of nodes by; identifying an initial node in the path and looking up an initial page that contains the initial node and one or more subsequent nodes in the path; loading the initial page from the database into local memory such that each node contained in the initial page is accessible via local memory; compressing contents of the initial page by serializing each node within the initial page into a single field within a page table; navigating to the one or more subsequent nodes in the path by accessing the nodes loaded into local memory instead of accessing the database; and store a page key of a subsequent page within at least one of a root node within the initial page or a lowest node on the path within the initial page. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:
-
divide a set of nodes organized in a hierarchy into contiguous subsections by; selecting a number of nodes to allocate to each subsection based at least in part on an amount of time involved in loading the number of nodes into local memory from a database; storing each subsection in a separate page within the database, wherein each node in the hierarchy represents at least one of;
a child node descended from a parent node, a parent node with at least one child node, or a root node that represents a highest parent node on a path within a page, and each node within the hierarchy is uniquely identified by a primary key; andstoring within each node at least one association between the node and each related parent node, child node, or root node by storing within the node the primary key of each related node; receive a request to access nodes within the database; in response to the request, traverse a path through the hierarchy of nodes by; identifying an initial node in the path and looking up an initial page that contains the initial node and one or more subsequent nodes in the path; loading the initial page from the database into local memory such that each node contained in the initial page is accessible via local memory; compressing contents of the initial page by serializing each node within the initial page into a single field within a page table; navigating to the one or more subsequent nodes in the path by accessing the nodes loaded into local memory instead of accessing the database; and store a page key of a subsequent page within at least one of a root node within the initial page or a lowest node on the path within the initial page.
-
Specification