Skip to content

Conversation

@Qup42
Copy link
Member

@Qup42 Qup42 commented Oct 22, 2025

Update the block metadata only once after an update. It is not needed during an update and was update 4 times before.

@Qup42 Qup42 requested a review from hannahbast October 22, 2025 10:12
@codecov
Copy link

codecov bot commented Oct 22, 2025

Codecov Report

❌ Patch coverage is 75.00000% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.10%. Comparing base (a8c9d86) to head (8880965).

Files with missing lines Patch % Lines
src/index/DeltaTriples.cpp 78.57% 2 Missing and 1 partial ⚠️
src/engine/Server.cpp 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2453   +/-   ##
=======================================
  Coverage   91.09%   91.10%           
=======================================
  Files         465      465           
  Lines       39690    39696    +6     
  Branches     5312     5313    +1     
=======================================
+ Hits        36155    36164    +9     
- Misses       2020     2023    +3     
+ Partials     1515     1509    -6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hannahbast hannahbast changed the title Reduce performance impact of updates over time Update block metadata once instead of four times Oct 23, 2025
Copy link
Member

@hannahbast hannahbast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good, thanks a lot. Minor suggestion + I will test this with qlever update-wikidata and come back to you

Copy link
Member

@joka921 joka921 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Concerning the code, I only have a small comment wording request.

  2. Do I understand it correctly, that the old version was very safe (every function that changed anything about the located triples also updated the metadata), but that was inefficient because the outer interface then called this multiple times.

  3. This then means that the new interface is more unsafe (because when working with the delta triples, you can now chain more functions without updating the metadata (which is only used outside the function), but tyhat is only called in very few places, and in the unit tests for the low level interfaces (where you can be expected to do lowlevel stuff).

@Qup42
Copy link
Member Author

Qup42 commented Oct 24, 2025

@joka921 regarding 2. and 3. yes that's right. A compromise might be to do this with the snapshot in the DeltaTriplesManager.

@Qup42 Qup42 marked this pull request as ready for review October 29, 2025 09:10
@Qup42 Qup42 requested a review from RobinTF October 29, 2025 09:10
Copy link
Collaborator

@RobinTF RobinTF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine with the changes, I have an idea for a suggestion and a unit test likely needs adjustment, it's currently failing on clang 21.

@Qup42 Qup42 requested a review from RobinTF October 30, 2025 12:11
@Qup42
Copy link
Member Author

Qup42 commented Oct 30, 2025

@RobinTF Ready for another round. The test failure was random noise. The untested new lines are in an otherwise untested area.

Copy link
Collaborator

@RobinTF RobinTF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one change seems unnecessarily complicated to me, other than that this seems good to go.

@sparql-conformance
Copy link

Overview

Number of Tests Passed ✅ Failed ❌ Intended ⚠️ Not tested
525 439 19 67 0

Conformance check passed ✅

No test result changes.

Details: https://qlever.dev/sparql-conformance-ui?cur=88809650bbd378b50701cce245b200abd3e366b8&prev=a8c9d865aac01c673ffa3b56758a12dbb94f7676

@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 1, 2025

Copy link
Collaborator

@RobinTF RobinTF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants