Since compound procedures run on the database servers, rather than on a client system, it is important that you balance resource usage between the compound procedures and other database functions. You do not want to have the compound procedures competing or interfering with core database operations.
VoltDB lets you control resource usage by adjusting three elements of the compound procedure subsystem. In the
configuration, deployment.compoundproc
has the following subproperties you can set:
Specifies the maximum number of regular stored procedure calls a compound procedure can queue in each stage. If the stage queues more than the maximum allowed, the compound procedure throws an error. The default maximum number is 10.
Specifies the maximum number of compound procedures that can be queued for processing simultaneously. The default limit is 10,000. If a client or topic attempts to queue a compound procedure after the limit is reached, the call request will be rejected.
The maximum number of threads used for processing compound procedures. The default thread count is set equal to the number of processor cores available on the server.
For example, the following configuration increases the calls allowable per stage, but reduces the queue limit:
deployment:
compoundproc:
callsperstage: 15
queuelimit: 5000