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;
  • Can be used patterns, for ex:

    -- 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 a function http_limited () inside the Sponger code>description.vsp page which checks if given number of running threads are more than the MaxRestrictedThreads? parameter's value in the [ServerThreads?] INI section. A 42000 error is signaled in case of over the limit. By default there is no limit. If there are too many requests then an error 'Limit exceeded' will be signaled.

This feature is enabled when [HTTPServer]->MaxRestrictedThreads? parameter value is less than [Parameters]->ServerThreads? parameter value from the Virtuoso INI setting.

Client Connection Rate Limits

Virtuoso instance Level (e.g. controlling at the IP level i.e., 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