Find an Answer
The GoToAssist Crawler collects information about your network assets and sends it to the Search Index, which stores the data in a semi-structured tree format. The data is visually represented in an inverted tree structure with the root at the top, and each data element as a node on the tree.
In the tree structure, information is organized below the root along major branches, which can further separate into branches or sub-trees, leaves, and so on. Any individual node on the tree that has nodes below it can be thought of as a root of its own sub-branches, or as a sub-tree, or as a leaf or branch of a higher-level root.
The tree-structured database is useful because it provides the flexibility to scale and the ability to group related information and display the relationships.
The nodes in a tree-structured database are similar to records and columns in the table of a relational database. For example:
In this tree, Node A might be a device with two sub-nodes of the same type, such as interfaces; each with two sub-node children (ip_address and name). In the table, each sub-node of the same type is equivalent to a record, and each sub-node child is equivalent to a column.
The tree structure gives us the ability to provide quantitative answers to IT questions. The GoToAssist Crawler gathers information that is structured. For example, if you search your network for 'tetris', a full-text search algorithm finds every instance of Tetris or tetris (since GoToAssist is case-insensitive), and includes both computers, software, or users, if any, named Tetris.
But we wanted a smart search tool that knows the difference. And the GoToAssist Crawler can distinguish between a computer named Tetris and software named Tetris — and it can see the relationships between the computer and the software, such as the network that the Tetris computer belongs to, the identity of the computer with the Tetris software installed, and so on.
A tree node with multiple sub-nodes of the same name — such as devices that all have an interface named 'eth0' — is equivalent to a table in a relational database. For example, a database with two devices can be represented as follows in a tree-structured database, and by a couple of tables in a relational database:
In the tree-structured database, tables are replaced by tree nodes, and columns are replaced by sub-trees. In SQL, the projection operation (the SELECT clause) generates a tuple of scalar values (a row of values). In PQL, the SELECT clause generates a tree.
In the following tree, for a table at the /device node, the columns in the table are /device/name, /device/interface, and /device/cpu_utilization:
Where there is more than one sub-branch of the same type in an instance tree, the specific sub-branch is identified with an ID number. In instance trees, the leaves of the tree have values associated with them. Only leaves can have a value. The values are the information stored in the tree-structured database. The value associated with a leaf node is a complex type consisting of a scalar value and a time-series. The scalar value holds the most recent data collected for the node. The time-series contains the previous values of the node along with the time at which the value changed.