Add Oxigraph as the first engine of qeval - #328
Draft
tanmay-9 wants to merge 25 commits into
Draft
Conversation
…ing an sed command
…t new engines can reuse existing code
…o extract-qlever-start-helpers
…o extract-qlever-start-helpers
…o share-resource-usage-plot-and-monitor
…-index-stats-width
…to qeval-oxigraph
…nitor' into qeval-oxigraph
tanmay-9
force-pushed
the
qeval-oxigraph
branch
from
August 19, 2026 10:13
40a1a99 to
e6e8412
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With this change, the whole workflow that
qleverprovides for QLever is available for Oxigraph viaqeval oxigraph:setup-config,get-data,index,index-stats,start,status,log,query,stop, andbenchmark-queries. The dataset configs are the same ones as for QLever (qeval oxigraph setup-config olympics, which writes a Qleverfile with only the parameters that Oxigraph knows), and everything works both natively, withoxigraph-clion thePATH, and in a container withdockerorpodman.The Qleverfile has a few Oxigraph-specific parameters:
READ_ONLYandLENIENT,INDEX_BINARYandSERVER_BINARY(bothoxigraphby default), andEXTRA_ARGSfor the index and the server, which is appended to the command line verbatim, so that options not covered by the Qleverfile can still be used. WithREAD_ONLY = yes(the default), the index build compacts the store withoxigraph optimizeafter loading and the server runsserve-read-only.TIMEOUTaccepts a unit like60sor5minas for QLever and is passed on as--timeout-s; older Oxigraph versions do not have that option, in which case the command says that the timeout is ignored instead of failing to start.As for QLever,
qeval oxigraph index-statsreads the phase times from the index log. Oxigraph's own output is not usable for that, though: its progress output is unreliable and it does not always print a final summary line. Soqeval oxigraph indexmeasures the load and the optimize phase itself and appends them, with the total, to the index log, which is also where the shaded phases of the plot come from. The index build records RSS and CPU usage and renders the resource-usage plot just likeqlever indexdoes, with the Oxigraph version in the subtitle.Almost all of this is a thin layer on top of the existing
qlevercommands (mostly a different endpoint, a different process name, or a different way to find the server), and the classes are written so that the engines still to come can use them as their base rather than the QLever ones.Also, a new end-to-end test runs the complete sequence from
setup-configtostopon the olympics dataset, for all three of native,docker, andpodman, and checks that the resource-usage log and plot are actually produced.