There are three parameters that can be configured that define the minimum and maximum operations per second against a connection, and how quickly these rates increase when rate limit exceptions stop occurring.
These parameters can be applied globally by platform or to individual connections.
This is the minimum number of operations per second that can be performed on a connection. This is the absolute floor for a rate limiter.
The default is 0.25, which means that the minimum request rate will be one operation every four seconds.
This is the maximum number of operations per second that can be performed on a connection. This is the absolute ceiling for a rate limiter as well as the the starting rate used when the connection is first opened.
The default is 60, which means that the maximum request rate will not exceed 60 operations per second.
Every rate limiter starts out with a maximum number of operations per second that can be performed on the connection. Every time a rate limit exception is encountered, the rate will be decreased. As time goes on without any exceptions, speed will attempt to be recovered by increasing the rate.
The longer that the rate limiter is active, the longer it takes for this recovery process based on the assumption that we are closer to zeroing in on the true rate that the connection can tolerate and shouldn't need to make many modifications. We use a scaling constant as one of the inputs that determine how fast the rate limiter will recover. The initial value of that scaling constant is 500 and will double with every rate limit exception until we hit a defined maximum.
This parameter defines the scaling maximum and effects how fast a rate limiter will recover. The lower the number, the faster that a rate limiter will recover but could also cause more rate limit exceptions.
The default value is 500,000 and is in no particular units.
To configure these parameters globally, add the following to the appSettings.json file found in the directory where DataHub was installed. Modify the
"recovery_scale" to reflect the values you want to use.
Configure by Connection
To configure these parameters for a specific connection, follow these steps:
- Create the connection using the connector-specific authentication flow
- Using Postman or other ReST client and the ID of the connection created in step one, make the request
- Finally make the following request using the response body from step 2 and the applicable new
"rate_limit"parameters added to the
"auth"section of the request body (see across for an example):