Ultipa leverages an index mechanism to accelerate the retrieval of nodes and edges by creating index tree of node/edge properties in the disk, which is comparable to traditional databases. On top of that, Ultipa index also speeds up the filtering of nodes and edges in queries such as A-B and K-Hop.
Ultipa provides a native full-text search engine to break long text in node/edge properties, and conduct efficient and fast search in the word-segmentation results. It is suitable for various queries on graph from metadata query to A-B path, K neighbor and template queries.
Ultipa's LTE method is designed to improve the filtering speed of various queries by loading node/edge properties to the high performance computing engine of Ultipa.
Index v.s. LTE
Index is similar to the path query acceleration mechanism LTE (Load to Engine), they both improve the query performance by consuming a certain amount of disk space and ensuring the created content can be persisted, but still, they differ in some aspects.
Diff 1：Accelerated Object
- LTE: the main accelerated object is path query on graph, such as A-B query, K-Hop query. Any query that involves graph (depth >= 1) is good to use LTE.
- Index: the main accelerated object is metadata query, whether it is a query for nodes and edges alone, or a filter of nodes and edges in paths, index is more suitable.
For properties that created index as well as LTEed:
- LTE is first used in path query
- General index is first used in metadata query
Diff 2：Implementation Principle
- LTE: it loads properties to Ultipa's graph computing engine so that the engine can use properties directly when querying, thus the dependency on disk-based I/O is lowered.
- Index: it creates various index trees and uses data structures in the persistent storage, therefore the query that leverages index is accelerated and does NOT cast burden to memory.
Diff 3：Memory and Disk Usage
- LTEed property: it primarily consumes memory, and the occupied space is determined by the number of values of the property; and the values are kept in disk(s) persistently for the automatic reloading after the reboot of instance.
- Index tree of index: it primarily consumes disk space.