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

Integrate configManager in src/index/IndexImpl.cpp #1041

Open
wants to merge 99 commits into
base: master
Choose a base branch
from

Conversation

schlegan
Copy link
Contributor

I replaced as much of the old parsing of configuration option with the new ConfigManager as possible, in order to make this whole thing easier and easier to read.

… function public. Otherwise I can't check the set state of ConfigOptions.
…t value existence with multiple function overloads.
…ions now return a pointer to the created ConfigOption.
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.

This is much much better already. I think we are almost there.

src/index/IndexImpl.cpp Outdated Show resolved Hide resolved
src/index/IndexImpl.cpp Outdated Show resolved Hide resolved
@@ -631,6 +632,42 @@ class IndexImpl {
void writeConfiguration() const;
void readConfiguration();

// Assigns the entries of the enum `TurtleParserIntegerOverflowBehavior` to
// their string representation.
inline static const ad_utility::HashMap<std::string,
Copy link
Member

Choose a reason for hiding this comment

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

Either inline or static :) (with const the difference is not really important).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, but only with inline can I use a default value and without static every instance of the class has its own copy, even though they are never different.

src/index/IndexImpl.h Outdated Show resolved Hide resolved
/*
@brief Print the detailed documentation of the options for the index builder.
*/
std::string getConfigurationDocForIndexBuilder();
Copy link
Member

Choose a reason for hiding this comment

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

I think this should return also two strings: the JSON and the detailed configuration separately, then we can configure the printing in IndexBuilderMain (I will think of something).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Shouldn't the configuration of the printing happen inside IndexImpl::getConfigurationDocForIndexBuilder? Separation of concerns and all that.

joka921 and others added 19 commits December 14, 2023 14:25
1. For a while now, we used `apt-spy` because `apt` was not working reliably within GitHub's workflows. Recently, it was `apt-spy` that was unreliable and so we are reverting back to `apt`
2. Use the occasion to factor out separate `action.yml` "sub"-workflow for installing a compiler on Ubuntu and for installing dependencies on Ubuntu, which are used at various places in our workflows
…ions (ad-freiburg#1174)

Add some helper functions for adding statistics columns (that is columns with results that were not measured but computed from other columns) to the result table of a benchmark run.
…ata. (ad-freiburg#1181)

In the hash map-based GROUP BY optimization, the hash map now only stores a mapping from ID->size_t where the size_t is an index into a vector that stores the actual data. This optimization will make the support for multiple different aggregates much more efficient.
So far, the Docker images were pushed to Docker Hub as `<private username>/qlever`, to make it easier to check whether everything works as it should. Everything seems to work as it should and so now we push as the official `adfreiburg/qlever`.
…d-freiburg#1187)

So far, the parallel Turtle parser had the problem that certain exceptions disappeared. After ad-freiburg#1124, two exceptions happened more often, namely that the `FILE_BUFFER_SIZE` was not large enough (it was reduced from 100M to 10M), and an overflow of the sort key buffer (its preallocation was increased significantly to save time). So far, both exceptions had the effect that the parsing hung forever, either because batches were still being produced but not processed, or batches were still being processed but not produced.

All exceptions are now caught and appear in the log. The potential overflow of the sort key buffer is now fixed. The `FILE_BUFFER_SIZE` can still be too small (and it happens for `UniProt` and `OSM Planet`), but now the exception shows in the log and ends the index build.
In the future we should manage more (or even all) of our git dependencies via FetchContent, as it is much simpler than working with git submodules.
…icated by the generated documentation of ConfigManager.
…ue of turtleParserIntegerOverflowBehaviorMap_.
Copy link

sonarcloud bot commented Jan 23, 2024

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

11 New issues
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

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