Closed joka921 closed 2 weeks ago
Attention: Patch coverage is 89.06250%
with 14 lines
in your changes missing coverage. Please review.
Project coverage is 89.16%. Comparing base (
bb70c4a
) to head (d70705b
). Report is 1 commits behind head on master.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Some SPARQL operations may result in Quad insertions and deletions. Is it possible that operations acquire the lock in between these two parts of a single update?
No test result changes.
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code
@hannahbast I have also looked at the lines, but they are either completely unrelated to this PR, or they will be adressed anyway in one of the follow-up PRs.
The already existing
DeltaTriples
class maintains a dynamically changing set of insertions and deletions relative to the original input data, together with a (single) local vocab. The class is not threadsafe and has to be used with care. In particular, concurrent update queries have to be serialized, and while a query makes use of the "delta triples", it has to be made sure that they are not changed over the course of the processing of that query.Both of these problems are solved by the new
DeltaTriplesManager
class. The index has a single object of this class. It maintains a singleDeltaTriples
object, write access to which is strictly serialized. Each new query gets a so-called snapshot of the current delta triples. This is a full copy (of the delta triples located in each of the permutations and of the local vocab). These snapshots are read-only and multiple queries can share the same snapshot. A snapshot lives as long as one query using it is still being processed.