12.7. Managing Compound Procedures and System Resources

Documentation

VoltDB Home » Documentation » Guide to Performance and Customization

12.7. Managing Compound Procedures and System Resources

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 file, the <compoundprocs> element has the following attributes you can set:

callsperstage

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.

queuelimit

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.

threads

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 file increases the calls allowable per stage, but reduces the queue limit:

<deployment>

    [ . . . ]

   <compoundprocs 
       callsperstage="15"
       queuelimit="5000"/>
</deployment>