System Settings

The following settings are limits placed on your Rockset organization which may be customized for your specific use case by contacting Rockset Customer Support.

LimitsFreeNanoMicroMilliDedicated (single VI)Dedicated (multi VI)
Peak Streaming Ingest Limit50 KiB/s100 KiB/s500 KiB/s1 MiB/sUnlimitedUnlimited
Query Execution Timeout10s30s60s120s30m30m
Query Memory Limit100 MB100 MB100 MB100 MBUnlimitedUnlimited
Concurrent Query Execution Limit22226*Unlimited*
Concurrent Query Limit100100100100100100

*Refer to Concurrent Queries Limits section.

To change your Virtual Instance type, navigate to the Virtual Instances tab of the Rockset Console.

Peak Streaming Ingest Limit

This refers to the maximum rate at which you can add data into Rockset. It is measured as the number of uncompressed bytes of new data being added to your account per second.

The peak streaming ingest limit is dependent on your Virtual Instance type.

Dedicated Virtual Instances do not have any hard limits on streaming ingest rate; however, your streaming ingest rate will be constrained by the Virtual Instance type that you have provisioned. Larger Dedicated Virtual Instances will have directly proportional lower data latencies due to the additional compute resources working on ingest. For instance, upgrading from a 2XLarge to a 4XLarge Dedicated VI typically doubles your peak streaming ingest rate.

πŸ’‘

The peak streaming ingest limit does not affect your bulk ingest limit during the initial bulk ingest mode which occurs immediately following collection creation.

For instance, if you are creating a collection from MongoDB, DynamoDB or S3 and that source already has a large dataset, Rockset will automatically employ a bulk loading mechanism to index the data that is pre-existing in that source. This bulk loading process occurs immediately following the creation of the collection, and is not limited to the peak streaming ingest limit that is explained above.

The bulk ingest rate is hundreds of gigabytes per hour. If you need a higher bulk ingest rate, please contact Rockset Customer Support.

After the bulk loading process is completed, Rockset streams new updates made to the source and applies those updates continuously. The peak streaming ingest rate limit described above now applies.

Query Execution Timeout

This refers to the limit on the execution time of any individual query running in your Virtual Instance.

On Dedicated Virtual Instances, Asynchronous Queries are available to queue up queries with custom-defined timeouts of up to 30 minutes.

Query Queue Timeout

This refers to the limit on the queue time of any individual query running in your Virtual Instance. Queries are queued when query requests are received while the concurrent query execution limit is reached. They are then executed in FIFO order once the currently running queries and all prior queued queries are done executing.

Query Memory Limit

This refers to the total amount of memory that a single query can use. This memory is used for storing transient data that is created by intermediate stages of your query execution.

On Shared Virtual Instances, each individual query has a memory limit of 100 MB which can be used during execution. On Dedicated Virtual Instances, the memory available for your queries are determined by the size of the Virtual Instance. In this case, the memory associated with your Virtual Instance is shared by all concurrent queries in your account (for example, larger Dedicated Instance sizes will have higher memory limits).

Concurrent Queries Limits

The Concurrent Queries Limit (CQL) refers to the queue size for queries, specifically the total number of running queries + total number of queued queries. The default limit of 100 for dedicated VIs aims to balance multiple queries' memory requirements and the ability to execute them efficiently. There is a tradeoff of potentially having an overall slower execution time when many queries are trying to access the VI resources. If queries running in parallel require a lot of memory, they might fail with a memory-exhausted error.

  • If your queries are light on memory and CPU requirements, increasing the limit might be helpful.
  • If your queries are heavier on memory and CPU and/or you are seeing memory-exhausted errors, it might be helpful to reduce this limit (or use a VI with more memory).

The Concurrent Query Execution Limit (CQEL) refers to the maximum number of queries that a single Virtual Instance can execute concurrently in your account. The default limit of 6 for dedicated VIs aims to balance the timeout mechanism in Rockset with the ability to process many queries in parallel without requiring additional management on the client side. Increasing the queue length for a VI under heavy load might result in query timeouts since time spent in the queue counts towards the decision whether to cancel a query when that threshold (2 minutes by default) is met.

Both limits include the queries made directly from the Query Editor tab of the Rockset Console, Rockset API, or Query Lambdas. Most queries run in under a second, so for most users the QPS is much higher than the default limit. This default limit can be increased to provide the maximum number of concurrent queries, while still maintaining an expected SLA. Beyond this limit, additional inbound queries will be queued for processing.

To increase your CQL or CQEL limit, please contact our support team at [email protected].

πŸ“˜

Note on CQEL for Dedicated VIs

Concurrent Query Execution Limit (CQEL) is a function of resources on your VI. It can be unlimited in the context of having multiple VIs as you have more available resources. You can scale concurrent queries by achieving a higher QPS, which is possible through multiple VIs. For an example of how a QPS of 20K was achieved, check out this blog post.