-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove variable/column map redundancy (WIP) #281
Commits on Sep 4, 2019
-
Don't keep aborted Operations in the cache
The theory behind caching aborted Operations was that they would fail again anyway. However, under memory pressure Operations may fail due to failing allocations and will succeed in the future once memory pressure drops, if we kept them in the cache we wouldn't try again. While we are at it, improve wording and use an extra abort() method on Operation.
Configuration menu - View commit details
-
Copy full SHA for c440049 - Browse repository at this point
Copy the full SHA c440049View commit details -
Add basic pinning functionality to LRUCache
this allows to mark elements as pinned, meaning they will not be dropped due to capacity constraints or clear() but only with an explicit erase (e.g. as used for aborted queries).
Configuration menu - View commit details
-
Copy full SHA for 08fbfd2 - Browse repository at this point
Copy the full SHA 08fbfd2View commit details
Commits on Sep 6, 2019
-
unique_ptr root Operation in QueryExecutionTree
The Operation is owned so it should be a unique_ptr not shared_ptr. This will hopefully save quite a few memory barriers (for atomic ref counting) and is cleaner. We also prevent the copying of QueryExecutionTrees which was previously done in several places and may be expensive but is definitely unexpected.
Configuration menu - View commit details
-
Copy full SHA for c795eb9 - Browse repository at this point
Copy the full SHA c795eb9View commit details -
Fix wrong variable columns in IndexScan
They are actually kept in the order of the triple file as seen by the setVariableColumn() calls in QueryPlanner.cpp
Configuration menu - View commit details
-
Copy full SHA for bace316 - Browse repository at this point
Copy the full SHA bace316View commit details -
Turn QueryExecutionContext into a query context
The name always suggested that it carried context per query while in fact it held the SubtreeCache which should really live for many queries. Since it is indeed useful to have a per query context we move the SubtreeCache outside the QueryExecutionContext and make it truly per query.
Configuration menu - View commit details
-
Copy full SHA for 02088a8 - Browse repository at this point
Copy the full SHA 02088a8View commit details -
Use QueryExecutionContext to track cache pinning
This allows to pin all subtrees of a query to the cache and have that as a per query option. On the QLever server this is exposed as the "pinsubtrees" URL param. If set to true all subtrees in the query will be cached. This is especially useful for completion queries and the like.
Configuration menu - View commit details
-
Copy full SHA for 1c85b1f - Browse repository at this point
Copy the full SHA 1c85b1fView commit details -
Only store each key once in the LRUCache
In the entries we now only store a pointer to the key inside the hash map
Configuration menu - View commit details
-
Copy full SHA for 4db3815 - Browse repository at this point
Copy the full SHA 4db3815View commit details -
Revert "Only store each key once in the LRUCache"
This reverts commit 9209326.
Configuration menu - View commit details
-
Copy full SHA for 605d165 - Browse repository at this point
Copy the full SHA 605d165View commit details -
Reduce redundancy QueryExectuionTree and Operation (WIP)
Both currently keep separate _variableColumnMap hash maps. This commit tries to always init the one in the QueryExecutionTree from the _rootOperation we have anyway. Sadly it seems they aren't just redundant but diverge somewhere as this commit currently fails to pass the e2e tests.
Configuration menu - View commit details
-
Copy full SHA for 905de53 - Browse repository at this point
Copy the full SHA 905de53View commit details