Fair Use Daily Limits for a Better User Experience

Go to Dutch version

Summary

Invantive is introducing “Fair Use Daily Limits” to guarantee an optimal user experience on Invantive Bridge Online. These limits are centred around four key metrics: volume of data exchanged, number of requests made, total time taken for requests, and the number of rows retrieved from a table. The limits are categorised into fresh data usage and overall data usage, which includes cached data. The rollout is planned for 1 October 2023, but this timeline may be revised based on its impact on high-volume users.

The new adjustments come with several advantages, such as enhanced performance, quicker response times, and increased stability during high-traffic periods. Users have the ability to track their consumption via the Invantive Bridge Online dashboard and are also equipped with supplementary HTTP headers for automated tracking. Should any issues or queries arise, users are encouraged to reach out to Invantive at support@invantive.com. These initiatives aim to foster a more balanced and equitable experience for all users.

Fair Use Daily Limits

We’re thrilled to witness the robust utilization of Invantive Bridge Online for real-time data retrieval and seamless cloud application integrations. Each day, we handle a substantial volume of requests, many of which span multiple enterprises.

To elevate the user experience across the board, we’re implementing automated Fair Use Guidelines. This not only enhances fairness but also mitigates the impact of runaway processes that could otherwise disrupt service for extended periods.

In the context of “fair use”, we’re setting daily caps across multiple metrics:

  • Volume of data transferred,
  • Count of daily requests,
  • Cumulative request duration, and
  • Rows returned per table query.

These metrics are categorized into two types: fresh data retrieval and overall usage, which includes cached data.These two x four dimensions are partially correlated, but in addition each captures a specific group of problems.

When a daily limit is exceeded, an HTTP status code 429 is returned (“Too many requests”) with an explanation in OData format. The corresponding error codes are itgenboe402, itgenboe403, itgenboe404, itgenboe405, itgenboe406, itgenboe407, itgenboe408 and itgenboe409.

We aim to fully implement these guidelines by October 1, 2023. However, we’ll be flexible in our rollout to accommodate any undue impact on our most active users.

Note: At present, we’re not imposing limits on CPU and memory usage, as these are technically challenging to quantify. Future updates may include these parameters.

Advantages for You.

The benefits of Fair Use Day limits for users are:

  • Enhanced performance and swifter response times,
  • Greater stability during high-traffic periods, and
  • Capacity for future upgrades and enhancements.

Measurement Method

Measurement of day limits takes place per calendar day according to UTC time measurement. The difference with your local timezone can be found on the world map.

Monitoring Your Usage

Interactive Monitoring

Daily limits are tracked according to UTC time. You can find timezone differences on a global map.

For real-time insights, visit your Invantive Bridge Online or Invantive App Online dashboard. Here, you’ll find charts depicting your usage across the four key metrics, both for fresh and overall usage, as a percentage of your subscription’s maximum allowance.

The maximum values depend on the subscription type. The values can be found by looking up the subscription in the “Agreements” screen and selecting the blue-colored hyperlink with the subscription type. Then search for “max.”

Daily limits apply to all Bridge Online and App Online servers. For the current server and user the totals are continuously updated in the dashboard. The numbers shown may lag behind actual usage due to simultaneous use of multiple servers and/or multiple users on the same subscription. The actual total usage across all servers and users is synchronized between servers on a regular basis. At synchronization time, the totals may increase significantly.

Details for the current day can be found in the “Session I/Os” screen on Invantive Cloud, while the “Monthly Aggregated Session I/Os” screen in the “Diagnostics” menu shows historical details. To do this, search for “AppOnline” (for https://app-online.cloud) and “BridgeOnline” (for https://bridge-online.cloud). The Session I/Os screen on Invantive Cloud shows all usage up to/with at least 5 minutes earlier.

Automated Monitoring

All OData4 and application requests on Invantive Bridge Online and Invantive App Online are extended by additional “HTTP headers”. The values of these headers allow software and possibly users to know the current exhaustion of the limits and act on them. The HTTP headers follow the draft for RateLimit header fields for HTTP.

The HTTP headers are visible with the request in Invantive Bridge Online Monitoring as the most recent step in the lower part of the details:

The table below lists the HTTP headers used and their meanings:

Name Meaning
Invantive-RateLimit-SubscriptionType Subscription Type (see Agreements screen)
Invantive-RateLimit-ContractCode Subscription Code
Invantive-DIMENSION-RateLimitPolicy Duration of the time window in seconds and the numeric limit
Invantive-DIMENSION-RateLimit Usage, limit and number of seconds to expiration of time window

HTTP headers with DIMENSION are available in eight variants:

  • FreshBytesPerDay: download volume in bytes of fresh data (without caches).
  • TotalBytesPerDay: total download volume in bytes.
  • FreshDurationMsPerDay: download duration in milliseconds for fresh data (without caches).
  • TotalDurationMsPerDay: total download duration in milliseconds.
  • FreshRowsPerDay: number of rows in downloads with fresh data (without caches).
  • TotalRowsPerDay: total number of rows in downloads.
  • FreshRequestsPerDay: number of downloads with fresh data (without caches).
  • TotalRequestsPerDay: total number of downloads.

In addition, other HTTP headers can be provided for analysis purposes, but their availability is not guaranteed.

Example RateLimit HTTP header

An example of a RateLimit value is:

limit=10000,remaining=10000,reset=55553

The limit per day is 10,000 and there are 10,000 remaining. The next time window with new quota starts in 55,553 seconds.

Example RateLimitPolicy HTTP header

An example of a RateLimitPolicy value is:

10000;w=86400

The limit is 10,000 and the time window restarts every 86,400 seconds (24 hours).

Why This Change is Necessary

This initiative addresses the imbalance caused by the top 10 of users consuming approximately 50% of server resources. Despite doubling our server capacity twice recently, the revenue to sustain this has not seen a corresponding increase. Unlike competitors who offset subscription costs with consulting fees, Invantive’s model aims for self-sustainability.

For the Affected Users

We understand that for some this will require an adjustment to the logic. Therefore, to simplify this process, here is a list of options that typically quickly achieve major improvement. This list is ordered from simple and quick, to more complex improvements:

Should you continue to need significantly higher limits despite optimization or do you need a higher limit quickly and temporarily in the interim? Invantive offers several subscription options that provide more capacity.

Finally, you can request a free performance audit via the procedure described in Hoe laat ik een gratis Power BI performance audit uitvoeren?.

Special Note for Free Exact Online and Bouw7 Users

For those on our Free Exact Online and Bouw7 plans, or other limited subscriptions, the new guidelines enable more accurate daily row limitations. Previously, limits of 100,000 rows were applied per query; now, they are tracked on a daily basis.

Roll-out

Desire is to have implementation completed by October 1, 2023, but pace of implementation will be adjusted if heavy users perceive a non-realistic impact.

The limits were established based on current usage and the subscription form-specific contribution to infrastructure costs. Current usage was analyzed to determine which usage is unrealistically high for what needs to be achieved. These limits were validated against the remaining users to minimize the possibility of nuisances. For more expensive subscription types, the limits have been set higher because their contribution to infrastructure costs is also higher.

Roll-out consists of several steps:

  • Upgrade software with measurements enabled but error messages disabled (completed Sept. 22, 2023).
  • Activation error messages but using 5x higher limits than subscription form dictates (completed Sep 25, 2023).
  • Activation error messages but using 3x higher limits than subscription form prescribes (completed Oct 3, 2023).
  • Activation error messages but using 2x higher limits than subscription form prescribes (completed Oct 5, 2023).
  • Activation error messages but using 1.5x higher limits than subscription form prescribes (started Oct 5, 2023).
  • Activation error messages using subscription form limits (start after successful completion previous step).

Please contact Invantive at support@invantive.com or use chat if you experience failures due to the roll-out of the Fair Use Daily Limits. Specific subscriptions may be temporarily excluded from the Fair Use limits provided there is a prospect of meeting the Fair Use limits in the near future.

Frequently Asked Questions

My total download takes only 60 minutes, but the dashboard shows a total duration of more than 2 hours. How is that possible?

A download can consist of several separate downloads, which are performed after each other or simultaneously. The total duration of all downloads is determined. So in the case of simultaneous execution of multiple downloads, the total duration increases faster than the clock indicates.

On Teamleader, I have a huge duration in the statistics. How can that be?

Teamleader has a unique combination of very low call rate limits and the need to execute an API call per row to retrieve custom fields.

General recommendation is NOT to execute downloads on Teamleader in parallel, but sequentially. For example, having 4 downloads share the very low rate limit will not increase the throughput, but will increase the total duration 4x.

Update 10 November 2023

Users of the Teamleader Focus platform regularly experience problems due to maximum duration limits. These duration limits were originally set to limit the CPU time used. However, Teamleader Focus, with its multitude of single point queries for retrieving custom field values, is additionally affected by these limitations, partly due to its relatively low speed limit. Moreover, when parallel downloads occur, this low speed limit is distributed across multiple downloads, with each download contributing to the overall duration.

Teamleader Support is aware of the limited speed of the Teamleader Focus API when retrieving custom field values. There is hope for improvement in the future.

For now, Invantive has significantly relaxed the overall duration limits, reducing the impact on users.

Within a few weeks, it is expected to be possible to calculate the total duration of a UniversalSQL statement (and thus also of a download), without including wait times. This is a major modification to the UniversalSQL engine, which is currently under development.

Once this capability is available, the calculation method will be adapted. This will give the duration a more accurate picture of the CPU time used. This will ensure that Teamleader Focus users are less likely to run into limits.