×

Systems and methods for navigating through a hierarchy of nodes stored in a database

  • US 10,817,510 B1
  • Filed: 09/08/2014
  • Issued: 10/27/2020
  • Est. Priority Date: 05/04/2014
  • Status: Active Grant
First Claim
Patent Images

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.

View all claims
  • 7 Assignments
Timeline View
Assignment View
    ×
    ×