Documentation

InfluxDB Cloud Serverless limits and adjustable quotas

InfluxDB Cloud Serverless applies (non-adjustable) global system limits and adjustable service quotas on a per organization basis.

All rates (data-in (writes), and queries (reads)) are accrued within a fixed five-minute window. Once a rate is exceeded, an error response is returned until the current five-minute window resets.

Review adjustable service quotas and global limits to plan for your bandwidth needs:

Adjustable service quotas

To reduce the chance of unexpected charges and protect the service for all users, InfluxDB Cloud Serverless has adjustable service quotas applied per account.

Storage-level

The InfluxDB v3 storage engine enforces limits on the storage level that apply to all accounts (Free Plan and Usage-Based Plan).

Terminology

  • namespace: organization+bucket
  • table: measurement
  • column: time, tags and fields are structured as columns

Storage-level limits

The v3 storage engine enforces the following storage-level limits:

  • Maximum number of tables per database: 500
  • Maximum number of columns per table: 200

Storage-level limits apply to Free Plan and Usage-Based Plan accounts. If you need higher storage-level limits, contact InfluxData Sales.

Free Plan

  • Data-in: Rate of 5 MB per 5 minutes (average of 17 kb/s)
  • Read:
    • HTTP response payload rate: 300 MB data per 5 minutes (average of 1000 kb/s)
    • Partitions per query: 500
    • Parquet files per query: 1000
  • Available resources:
    • 2 buckets (excluding _monitoring and _tasks buckets)
  • Storage:

To write historical data older than 30 days, retain data for more than 30 days, increase rate limits, or create additional organizations, upgrade to the Cloud Usage-Based Plan.

Usage-Based Plan

Global limits

InfluxDB Cloud Serverless applies global (non-adjustable) system limits to all accounts, which protects the InfluxDB Cloud Serverless infrastructure for all users. As the service continues to evolve, we’ll continue to review these global limits and adjust them as appropriate.

Limits include:

  • Write request limits:
    • 50 MB maximum HTTP request batch size (compressed or uncompressed–defined in the Content-Encoding header)
    • 250 MB maximum HTTP request batch size after decompression
  • Write partition limit:
    • Write to 5000 distinct partitions per bucket every 15 minutes (data is partitioned by day)
  • Query processing time: 90 seconds
  • Total query time: 1500 seconds of total query time every 30 seconds
  • Task processing time: 150 seconds
  • Total task time: 1500 seconds of total task time every 30 seconds

Error messages when exceeding quotas or limits

Storage level Errors

Maximum number of columns reached

couldn't create columns in table `table_name`; table contains
<N> existing columns, applying this write would result
in <N+> columns, limit is 200

This error is returned for any write request that would exceed the maximum number of columns allowed in a table.

Potential solutions

Maximum number of tables reached

dml handler error: service limit reached: couldn't create new table; namespace contains <N> existing
tables, applying this write would result in <N+> columns, limit is 500

This error is returned for any write request that would exceed the maximum number of tables (measurements) allowed in a namespace.

Error messages in the UI

The InfluxDB Cloud Serverless UI displays a notification message when service quotas or limits are exceeded. The error messages correspond with the relevant API error response messages.

Errors can also be viewed in the Usage page under Limit Events–for example: event_type_limited_query, event_type_limited_write, or event_type_limited_delete_rate.

API error response messages

The following API error responses occur when your plan’s service quotas are exceeded.

HTTP response code Error message Description
HTTP 413 "Request Too Large" cannot read data: points in batch is too large If a write request exceeds the maximum global limit
HTTP 429 "Too Many Requests" Retry-After: xxx (seconds to wait before retrying the request) If a read or write request exceeds your plan’s adjustable service quotas or if a delete request exceeds the maximum global limit

Error messages and their meaning

Exceeded limited_write plan limit
org <ORG_ID> has exceeded limited_write plan limit

The exceeded limited_write plan limit error message means you have exceeded the amount of data your organization can write in a five minute period.

See Free plan–Data-in limit and Usage-based plan–Data-in limit.

Exceeded limited_query plan limit
org <ORG_ID> has exceeded limited_query plan limit

The exceeded limited_query plan limit error message means you have exceeded the amount of data your organization can query in a five minute period.

See Free plan–Read limit and Usage-based plan–Read limit.

Exceeded limited_query_time plan limit
org <ORG_ID> has exceeded limited_query_time plan limit

The exceeded limited_query_time plan limit error message means your organization has exceeded the amount of time allowed for query execution in a 30s period.

See Global limits–Total query time.

Read (query) limit errors

Query would process too many files or partitions

The Flight request returns the following gRPC error code

ResourceExhausted

And the error message contains detail about the exceeded Free Plan or Usage-Based Plan query limit–for example:

 Query would process more than 500 partitions
Query would process more than 1000 parquet files

To avoid these errors, split your query into multiple queries that retrieve fewer files or partitions. For example, because InfluxDB Cloud Serverless partitions data by day, you can use time boundaries to limit the number of partitions retrieved.


Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Flux is going into maintenance mode and will not be supported in InfluxDB 3.0. This was a decision based on the broad demand for SQL and the continued growth and adoption of InfluxQL. We are continuing to support Flux for users in 1.x and 2.x so you can continue using it with no changes to your code. If you are interested in transitioning to InfluxDB 3.0 and want to future-proof your code, we suggest using InfluxQL.

For information about the future of Flux, see the following:

InfluxDB Cloud Serverless