Asynchronous Model APIs capacity planning

Asynchronous Model APIs may impose additional storage requirements on MongoDB and RabbitMQ depending on the number of API invocations and other factors.

Here are the default volume sizes for MongoDB and RabbitMQ in a new Domino deployment:

  • MongoDB storage volume size: 100 GiB

  • RabbitMQ storage volume size: 25 GiB

The default configuration can support asynchronous Model APIs based on the following parameters:

ParameterValue

Number of asynchronous Model APIs

100

Number of API requests per model per day

5,000

MongoDB document size

10 KiB

MongoDB document retention

2 days

RabbitMQ request message size

10 KiB

RabbitMQ response message size

10 KiB

RabbitMQ request input queue retention

2 days

RabbitMQ response output queue retention

2 days

The sections below show how to calculate MongoDB and RabbitMQ storage requirements for asynchronous Model APIs using the above parameters.

MongoDB storage requirements

  • Number of documents per model per day

    Number of API requests per model per day

  • Additional MongoDB storage

    Number of asynchronous Model APIs x Number of documents per model per day x MongoDB document size x MongoDB document retention

Example:

100 models x 5,000 documents per model per day x 10 KiB x 2 days =~ 10 GiB

RabbitMQ storage requirements

  • Number of API responses per model per day

    Number of API requests per model per day

  • RabbitMQ request input queue storage

    Number of asynchronous Model APIs x Number of API requests per model per day x RabbitMQ request message size x RabbitMQ request input queue retention

  • RabbitMQ response output queue storage

    Number of asynchronous Model APIs x Number of API responses per model per day x RabbitMQ response message size x RabbitMQ response output queue retention

  • Additional RabbitMQ storage

    RabbitMQ request input queue storage + RabbitMQ response output queue storage

Example:

(100 models x 5,000 requests per model per day x 10 KiB x 2 days) + (100 models x 5,000 responses per model per day x 10 KiB x 2 days) =~ 20 GiB

Minimum available storage

To prevent asynchronous Model APIs from filling the disks, Domino monitors MongoDB and RabbitMQ disk storage metrics and stops accepting new asynchronous Model API requests when the available disk storage falls below the following configurable thresholds:

Central Config KeyDefault Value

com.cerebro.domino.modelApis.async.mongoDb.minimumAvailableBytes

500000000

com.cerebro.domino.modelApis.async.rabbitmq.availableAsyncLimitBytes

1000000000