Skip to content
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

Improve Caching #288

Merged
merged 6 commits into from
Nov 14, 2019
Merged

Improve Caching #288

merged 6 commits into from
Nov 14, 2019

Commits on Oct 1, 2019

  1. 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.
    niklas88 committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    b04f191 View commit details
    Browse the repository at this point in the history
  2. 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).
    niklas88 committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    2db1312 View commit details
    Browse the repository at this point in the history
  3. 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
    niklas88 committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    a4b00b4 View commit details
    Browse the repository at this point in the history
  4. 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.
    niklas88 committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    87557e7 View commit details
    Browse the repository at this point in the history
  5. 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.
    niklas88 committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    fd51501 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2019

  1. Configuration menu
    Copy the full SHA
    6533484 View commit details
    Browse the repository at this point in the history