-
Notifications
You must be signed in to change notification settings - Fork 64
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
SPARQL UPDATE error, body limit exceeded. #1756
Comments
@aindlq We had exactly that problem two weeks ago and discussed solutions.
The solution we envisioned is to parse large sets of update triples using on of the parser we use for parsing the input. In particular, those are fast and can also parse in parallel, with a speed of 4 M triples / second and more. @Qup42 Did I forget anything? |
@hannahbast thanks! In our use case increase of request size should do the job for now. |
@aindlq OK, let me turn this into a proper PR with an option to make the request size configurable |
An addition to the curl options: The option
|
#1816) In the original `SPARQL` grammar, the `tripleTemplate` rule is defined recursively. This leads to stack overflows in the ANTLR-v4 based parser for large inputs, in particular large `INSERT DATA` requests. This PR changes the definition of the `triplesTemplate` to an equivalent formulation that is not recursive. This massively improves the performance of parsing large triple payloads. With this change we can process the whole olympics dataset as a single `UPDATE` request (1.78M triples, 323M). To test this, `curl` with `--data-binary` can be used. Prepare the Update to execute into a file `foo`. Execute the query with `curl --data-binary @foo ...`. [Some more info on the different curl options](#1756 (comment)). | Size | Time before (s) | Time after (s) | | ------- | --------------- | -------------- | | 1781625 | N/A | 65 | | 800000 | N/A | 27 | | 200000 | N/A | 7.5 | | 100000 | N/A | 4.2 | | 92000 | N/A | 4.0 | | 88000 | N/A | 3.8 | | 84000 | 69 | 3.7 | | 75000 | 59 | 3.4 | | 50000 | 13 | 2.6 | | 10000 | 1.7 | 1.3 |
Is there a way to increase request body limit for SPARQL UPDATE requests?
Qlever fails to process
INSERT DATA
request with ~4000 non prefixed statements.To reproduce download https://gist.githubusercontent.com/aindlq/8b2588b613eddf8e8fe76900e98d863f/raw/ebfd4a20276bccb8c08bbc4f34389b9296688a69/input.sparql and then execute:
error:
The text was updated successfully, but these errors were encountered: