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