Based on the following statement taken from your e-book:
TigerGraph isn’t described as an in-memory database, because having data in memory is a preference but not a requirement. Users can set parameters that specify how much of the available memory may be used for holding the graph. If the full graph does not fit in memory, then the excess is stored on disk. Best performance is achieved when the full graph fits in memory, of course.
I m assuming that wether on disk or in memory some form of scanning must happen, and that you store data such that you can perform a scan on file, or in memory. My understanding being that in-memory database, would not incur the cost of transforming data in a format that they can be scanned on file, as the scan would only happen in memory, using some form of LRU like caching to evict, least used object when necessary that is when it does not fit in memory.
So as a follow up to my question:
A) How does the scan happen ? is it a parallel search ? is it an ordered list, a binary tree or something like ? I don’t need to know the exact thing, but maybe just an indication that you have a structured that makes searching quite fast, by pruning aggressively, rather than going over the all list. Also if it is done in parallel, would be nice to know.
B) Can that scan be done in memory as much as on disk ?
C) What happens when we are in a clustered mode for that particular query ? What would support the efficiency of such a search.
Sorry for the may question. Just making sure to pick the right DB, seeking for the best performance for our use case.