Virtuoso Guide for Administering Your Sponger Instance

What?

Configure Rate Limit in Virtuoso for administering Virtuoso Sponger Instance.

Why?

Use Rate Limit for search engine optimization statistics.

How?

ACLs

Rate Limit is configurable from Virtuoso Conductor -> System Admin -> Security -> Access Control where:

  • Regular expressions are not supported.
  • Patterns may be used; for example —

    -- like '%XXX' or -- XXX*

  • Rate limit is hits/per second from one IP address.

For search engine optimization statistics for example can be set rate limit 10 (or even 100 so to start to collect statistics), and then to check with http_acl_stats() what values are returned.

Service Rate Limits -- Sponger Level (controlling use of the service subject to resource settings in INI)

The Virtuoso Rate Limiter uses the http_limited() function inside the Sponger description.vsp page to check if the number of running threads is more than the MaxRestrictedThreads parameter's value in the [ServerThreads] INI section. A 42000 error is signaled if over this limit. By default, there is no limit. If there are too many requests, then a Limit exceeded error will be signaled.

This feature is enabled when [HTTPServer] MaxRestrictedThreads parameter value is less than [Parameters] ServerThreads parameter value in the Virtuoso INI.

Client Connection Rate Limits

Virtuoso instance Level (e.g., controlling at the IP level; that is, controlling connections from client addresses).

Query Limits

Query Limits can be set in the [SPARQL] Virtuoso INI section:


;virtuoso.ini
...
[SPARQL]
;ExternalQuerySource = 1
;ExternalXsltSource  = 1
ResultSetMaxRows = 100000
;DefaultGraph       = http://localhost:8890/dataspace
;MaxQueryCostEstimationTime    = 120 ; in seconds
;MaxQueryExecutionTime    = 10 ; in seconds

Related