On 10/15/13 5:05 AM, Frans Knibbe | Geodan wrote:
On 2013-10-14 20:05, Kingsley Idehen wrote:

Plus:

7. query timeout (in milliseconds) -- which determines how much processing time threshold per query .

Ideally, you want to use a combination of timeouts, result size (max. results per query), offet, and limit to enable paging through data .
Yes, enabling paging is the main thing I was thinking about. For that to work, one needs to know the maximum page size allowed. SPARQL ORDER BY, OFFSET and LIMIT can be used to build requests for pages. But how does the query timeout setting of the server come in to play?

In our case (re., Virtuoso) its the time taken to produce a solution, bearing in mind the LIMIT and OFFSET query values. If a complete query solution isn't produced, you get a partial solution, and the ability to retry with an extended timeout.

Ah, I understand, thank you. I can see that this way of handling timeouts has its merits. And now I see that this limit is much like the maximum results per request: The client gets a response, but if it is not aware that the response is partial then it could have undesirable effects.

Is this behaviour standardized? Or do different flavours of endpoints handle timeouts differently? If the latter is the case, maybe it makes sense to also publish something about how timeouts are handled in the endpoint description.

Yes, we need to standardize how this is incorporated into SPARQL endpoint descriptions. Currently, we handle this in a Virtuoso specific INI file, but nothing stops that information making its way into the endpoint description and HTTP response metadata etc..

Kingsley

Regards,
Frans


I assume that if a request for a page of data times out you would get a timeout error code (522 probably).

Partial result. The idea is that its like a quiz whereby you have an answer provided within allotted time, or you attempt to answer in extended time i.e., you request that or it cycles back to you because the opponent couldn't provide an answer etc..

What would be gained with prior knowledge of the timeout setting?

The timeout is the set time for producing a compete or partial query solution.

What we need to do, which will help others, is get all the HTTP responses and controls for paging properly returns via HTTP responses. This matter has been discussed in the past (on this list) and we are committed to getting the HTTP responses in line, as I've described.

Action item for us: demonstrate what I am describing using RESTful interaction patterns via cURL. Once in place, we would have the foundation of a pattern that anyone could *optionally* incorporate etc..

Kingsley

Regards,
Frans


Kingsley


On 8-10-2013 17:45, Leigh Dodds wrote:
Hi,

As others have suggested, extending service descriptions would be the
best way to do this. This might make a nice little community project.

It would be useful to itemise a list of the type of limits that might
be faced, then look at how best to model them.

Perhaps something we could do on the list?

Cheers,

L.



On Tue, Oct 8, 2013 at 10:46 AM, Frans Knibbe | Geodan
<[email protected]>  wrote:
Hello,

I am experimenting with running SPARQL endpoints and I notice the need to
impose some limits to prevent overloading/abuse. The easiest and I believe
fairly common way to do that is to LIMIT the number of results that the
endpoint will return for a single query.

I now wonder how I can publish the fact that my SPARQL endpoint has a LIMIT
and that is has a certain value.

I have read the thread Public SPARQL endpoints:managing (mis)-use and
communicating limits to users, but that seemed to be about how to
communicate limits during querying. I would like to know if there is a way
to communicate limits before querying is started.

It seems to me that a logical place to publish a limit would be in the
metadata of the SPARQL endpoint. Those metadata could contain all limits
imposed on the endpoint, and perhaps other things like a SLA or a
maintenance schedule... data that could help in the proper use of the
endpoint by both software agents and human users.

So perhaps my enquiry really is about a standard for publishing SPARQL
endpoint metadata, and how to access them.

Greetings,
Frans




--

Regards,

Kingsley Idehen 
Founder & CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca handle: @kidehen
Google+ Profile: https://plus.google.com/112399767740508618350/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen




Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to