Astra DB Serverless database limits

Astra DB Serverless is a fully managed serverless database-as-a-service (DBaaS) that is powered by Apache Cassandra®, an open-source NoSQL distributed database. To ensure high availability and optimum performance, Astra DB Serverless databases have guardrails on underlying Cassandra functionality.

Monitoring databases

You can view health metrics in the Astra Portal.

By design, Astra DB alleviates the complexities of database management so you can focus on developing applications. Astra DB isn’t compatible with some Cassandra operational tools, such as nodetool and cfstats.

Astra DB doesn’t support accessing databases with Java Management Extensions (JMX) tools, such as JConsole.

Security and access control

Astra DB provides secure, cloud-based databases without dramatically changing the way you currently access your internal databases:

  • User management doesn’t require Cassandra superusers or global keyspace administration. For information about user management and role-based access control (RBAC) in Astra, see Manage roles and permissions.

  • Endpoints are secured using mutual authentication, either with mutual-TLS or secure tokens issued to the client.

  • TLS provides a secure transport layer you can trust, ensuring that in-flight data is protected.

  • Data at rest is protected by encrypted volumes.

Replicas and consistency

By default, each Astra DB Serverless database is deployed to one region, also known as the primary region. You select this region when you create the database.

You can deploy databases to additional regions (multi-region databases). When you deploy a database to an additional region, data is queried and replicated from the primary region.

Triple replication

Within each deployed region, Astra DB replicates data across three availability zones. This promotes uptime and ensures data integrity.

Eventual consistency

Astra DB follows an eventual consistency model, and you cannot independently manage, restrict, or modify replicas.

When you write to an Astra DB database, it is eventually replicated across all of the database’s replicas.

When you write to a multi-region database, the data is eventually replicated across all regions where the database is deployed, regardless of the region that received the original write request.

The time required to replicate data across all regions and availability zones depends on the number of regions, workload volume, and network resources. Generally, data replication takes minutes, but it can take hours or days if there are failures or outages.

Consistency levels

Consistency levels determine the number of replicas that must acknowledge a read or write operation before it’s considered successful.

The Data API and clients always use the LOCAL_QUORUM consistency level for reads and writes. Cassandra Query Language (CQL) for Astra DB (accessible through the CQL shell and Cassandra drivers) supports all read consistency levels, and it supports all write consistency levels except ONE, ANY, and LOCAL_ONE.

LOCAL_QUORUM is generally sufficient for balanced workloads due to Astra DB’s eventual consistency model. It has lower latency than multi-region consistency levels because it only requires acknowledgement from replicas in the target read/write region.

If you want to ensure that a write request has written to all of a database’s regions before considering it successful, you might use EACH_QUORUM, SERIAL, or ALL. However, these consistency levels have higher latency than LOCAL_QUORUM because they require acknowledgement from replicas in all regions. ALL has the highest latency because it requires acknowledgement from all replicas in all regions.

Compaction limits

  • Only the UnifiedCompactionStrategy compaction strategy is allowed. This strategy combines ideas from SizeTieredCompactionStrategy, LeveledCompactionStrategy, and TimeWindowCompactionStrategy, along with token range sharding. This all-inclusive compaction strategy works well for Astra DB use cases.

  • A warning is issued when reading or compacting a partition that exceeds 100MB.

Table limits

  • A database can have up to 200 tables.

    A warning is issued when the database exceeds 100 tables.

    For databases in PCU groups, a single PCU group cannot support more than 5000 tables across all databases in the group, on average.

  • For multi-region databases, the Astra Portal’s Data Explorer accesses and manipulates keyspaces, collections, tables, and data from the primary region. If you need to manage your database from a secondary region, you must use the Data API, CQL shell, or a Cassandra driver to connect directly to that region. Generally, accessing secondary regions is for latency optimization when the primary region is geographically distant from the caller or when the primary region is experiencing an outage. However, because multi-region databases follow an eventual consistent model, changes to data in any region are eventually replicated to the database’s other regions.

  • A single value in a column cannot exceed 10 MB of data.

  • Data API limits apply when inserting data into tables with the Data API.

  • You cannot UPDATE or DELETE a list value by index because Astra DB doesn’t allow list operations that perform a read-before-write. Operations that are not by index work normally, including UPDATE, DELETE, and INSERT.

Collection limits

The following limits apply to collections in Serverless (vector) databases:

  • Serverless (vector) databases created after June 24, 2024 can have approximately 10 collections. Databases created before this date can have approximately 5 collections. The collection limit is based on the number of indexes.

  • For multi-region databases, the Astra Portal’s Data Explorer accesses and manipulates keyspaces, collections, tables, and data from the primary region. If you need to manage your database from a secondary region, you must use the Data API, CQL shell, or a Cassandra driver to connect directly to that region. Generally, accessing secondary regions is for latency optimization when the primary region is geographically distant from the caller or when the primary region is experiencing an outage. However, because multi-region databases follow an eventual consistent model, changes to data in any region are eventually replicated to the database’s other regions.

  • A collection cannot have more than 64 fields, as extracted from all documents inserted into the collection.

  • Data API limits apply when inserting documents into collections, either through the Astra Portal or the Data API.

Index limits

When designing your data model, index limits are a critical factor for query performance and scalability.

Collection indexes

There is a limit to the number of Storage Attached Indexing (SAI) indexes you can have in Serverless (vector) databases:

  • A Serverless (vector) database created before June 24, 2024 can have up to 50 indexes (approximately 5 collections).

  • A Serverless (vector) database created after June 24, 2024 can have up to 100 indexes (approximately 10 collections).

  • Each collection can have up to 10 indexes. Collections in Serverless (vector) databases automatically create indexes for all fields (up to a maximum of 10), unless you apply selective indexing when you create the collection. For more information, see Indexes in collections.

Table indexes

The same limits apply to tables in Serverless (non-vector) and Serverless (vector) databases:

  • A database created before June 24, 2024 can have up to 50 indexes total.

  • A database created after June 24, 2024 can have up to 100 indexes total.

  • For Serverless (vector) databases, the total number of indexes is the sum of the tables indexes and collection indexes in each database.

  • Each table can have up to 10 indexes.

Rate limits

The default Astra DB Serverless rate limit is approximately 12,000 operations per second (ops/sec). Batches count as a single operation, regardless of the number of operations in a batch.

Astra DB Serverless workloads can be limited to 4,096 ops/sec for new or idle database when traffic suddenly increases suddenly. If you expect a sudden increase in traffic for an idle database, try to warm up your database before the workload increases. Make sure your database is active, and then send requests to your database to gradually increase the workload to the desired level over a period of time.

For production databases that require consistent capacity for traffic spikes, consider Provisioned Capacity Units for Astra DB Serverless.

If you encounter rate limiting exceptions or errors, you might need to allow some time for the database to scale up before retrying your request. Alternatively, you can use programmatic strategies to balance and retry workloads, such as request batching, generic retry policies, and retry policies with backoff strategies. How you implement these strategies depends on your chosen connection method and use case.

Data API limits

For information about Data API limits, see Data API limits.

CQL limits

For information about guardrails and limits for CQL commands, see Cassandra Query Language (CQL) for Astra DB.

Free plan limits

In addition to the limits described elsewhere on this page, organizations on the Free plan have the following additional limits:

To remove these limits, upgrade your plan.

Cassandra configuration properties

The cassandra.yaml file is not configurable for Astra DB Serverless databases. This file is defined as follows:

cassandra.yaml
# Read requests
in_select_cartesian_product_failure_threshold: 25
partition_keys_in_select_failure_threshold: 20
tombstone_warn_threshold: 1000
tombstone_failure_threshold: 100000

# Write requests
batch_size_warn_threshold_in_kb: 64
batch_size_fail_threshold_in_kb: 640
unlogged_batch_across_partitions_warn_threshold: 10
user_timestamps_enabled: true
column_value_size_failure_threshold_in_kb: 5 * 2048L
read_before_write_list_operations_enabled: false
max_mutation_size_in_kb: 16384
write_consistency_levels_disallowed: ANY, ONE, LOCAL_ONE

# Schema
fields_per_udt_failure_threshold: 60
collection_size_warn_threshold_in_kb: 5 * 1024L
items_per_collection_warn_threshold: 20
columns_per_table_failure_threshold: 75
tables_warn_threshold: 100
tables_failure_threshold: 200

# SAI indexes failure threshold
sai_indexes_per_table_failure_threshold: 10
sai_indexes_total_failure_threshold: 100 # 50 for databases created before June 24, 2024

The limits defined in cassandra.yaml inform the limits described elsewhere on this page.

Was this helpful?

Give Feedback

How can we improve the documentation?

© Copyright IBM Corporation 2026 | Privacy policy | Terms of use Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: Contact IBM