-
Notifications
You must be signed in to change notification settings - Fork 103
Updates evaluate where against DeltaTriples #2500
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
base: master
Are you sure you want to change the base?
Conversation
src/engine/Server.cpp
Outdated
| cancellationHandle); | ||
| auto responses = co_await std::move(coroutine); | ||
| tracer.endTrace("update"); | ||
| responses.push_back(tracer.getJSONShort()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently the snapshot, metadata update and disk write back time would be after the last update. This is a hack to obtain some visibility into these parts, but not final. Requires #2463 to function correctly.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2500 +/- ##
==========================================
- Coverage 91.14% 91.14% -0.01%
==========================================
Files 467 467
Lines 39816 39817 +1
Branches 5325 5327 +2
==========================================
- Hits 36292 36291 -1
- Misses 2015 2017 +2
Partials 1509 1509 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
# Conflicts: # src/engine/Server.cpp # src/index/DeltaTriples.cpp
| [[nodiscard]] const Index& getIndex() const { return _index; } | ||
|
|
||
| const LocatedTriplesSnapshot& locatedTriplesSnapshot() const { | ||
| const LocatedTriplesState& locatedTriplesSnapshot() const { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we stay with these names then rename all the downstream functions and variables to keep it consistent?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense
RobinTF
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not much to add from my side.
| [[nodiscard]] const Index& getIndex() const { return _index; } | ||
|
|
||
| const LocatedTriplesSnapshot& locatedTriplesSnapshot() const { | ||
| const LocatedTriplesState& locatedTriplesSnapshot() const { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense
# Conflicts: # src/index/Permutation.cpp # src/index/Permutation.h
# Conflicts: # src/engine/QueryExecutionContext.h # src/index/DeltaTriples.cpp # src/index/Index.cpp # src/index/Index.h # src/index/IndexImpl.cpp # src/index/IndexImpl.h
Overview
Conformance check passed ✅No test result changes. |
|



The where clauses of updates are directly evaluated against the
DeltaTriplesinstead of a Snapshot. (We can do this because we have an exclusive lock on theDeltaTriplesand can ensure that nothing changes the state while evaluting the where clause.) This is achieved by storing the corresponding state of theDeltaTriplesin theLocatedTriplesVersion(formerlyLocatedTriplesSnapshot). Where clauses are evaluated against suchLocatedTriplesVersions. The change brings two major advantages:;) no longer require explicit copying snapshots at all, improving the performance of many small updates chained updates during many already updated triples