You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Laura Morales <la...@mail.com> on 2018/10/14 07:16:04 UTC

Re: Fuseki estimate query resources

Thanks.
Related to this question, instead of "estimating resources" it could maybe be useful if Fuseki had a way to estimate the complexity of a query plan before running the query, and a configurable option to not execute the query if the complexity exceeds a defined threshold.

1. limit no. of connections with a reverse proxy
2. for those requests that aren't blocked by the proxy, do not execute if they are too complex

I'm simply wondering if limiting the no. of connections and setting a timeout on Fuseki is enough to prevent abuse of the endpoint. I wonder if there are queries that can take down an endpoint even if I set a short timeout, say 10s, because it's so easy to write inefficient queries. Another situation could be the query succeeds and it's simple, but returns a shitton of results.
Traditional RDBMSes don't seem to have these problems because they are not expected to be public, but always behind some kind of interface.

 
 

Sent: Wednesday, September 26, 2018 at 5:48 PM
From: "Andy Seaborne" <an...@apache.org>
To: users@jena.apache.org
Subject: Re: Fuseki estimate query resources

On 26/09/18 07:43, Laura Morales wrote:
> Does Fuseki have any way to estimate the amount of resources required by a query (before executing the query), for example time to complete or number of operations, such that it can decide not to execute a particular query?
> This feature would be particularly useful for public-facing endpoints.
>

Fuseki provides timeouts on queries to protect endpoints. You can also
restrict the number of connections with a reverse proxy.

When public facing, it is better to put a reverse proxy in place between
jetty (Fuseki) or tomcat and the public internet.

Andy