Configuring Database Resource Pool Size

Spectrum databases contain reference data used by certain stages, such as postal data used to validate addresses, or geocoding data used to geocode addresses. These databases can be configured to accept multiple concurrent requests from the dataflow stages or services that use them, thereby improving the performance of the dataflows or service requests. You can modify the number of concurrent requests that a Spectrum database will accept by modifying the pool size of a database. The pool size determines the maximum number of concurrent requests that the database can process. By default, Spectrum databases have a pool size of 4, meaning the database can process four requests simultaneously. However, you can configure a database to have a different pool size.

Note: When performance tuning, optimize the dataflow pool size before tuning the database pool size.
  1. Open Management Console.
  2. Go to Resources > Spectrum Databases.
  3. Select the database resource you want to optimize and click the Modify button .
  4. In the Pool size field, specify the maximum number of concurrent requests you want this database to handle.

    The optimal pool size varies by module. You will generally see the best results by setting the pool size between one-half to twice the number of CPUs on the server, with the optimal pool size for most modules being the same as the number of CPUs. For example, if your server has four CPUs you may want to experiment with a pool size between 2 (one-half the number of CPUs) and 8 (twice the number of CPUs) with the optimal size possibly being 4 (the number of CPUs).

    When modifying the pool size you must also consider the number of runtime instances specified in the dataflow for the stages accessing the database. Consider for example a dataflow that has a Geocode US Address stage that is configured to use one runtime instance. If you set the pool size for the US geocoding database to four, you will not see a performance improvement because there would be only one runtime instance and therefore there would only be one request at a time to the database. However, if you were to increase the number of runtime instances of Geocode US Address to four, you might then see an improvement in performance since there would be four instances of Geocode US Address accessing the database simultaneously, therefore using the full pool.

    Tip: You should conduct performance tests with various settings to identify the optimal pool size and runtime instance settings for your environment.