Thresholds and Limits

This page reflects limits and thresholds that apply to AIStor Server.

Linux Kernel Requirements

MinIO strongly recommends Linux kernel 6.8 or later for production deployments. See Linux Kernel Requirements for recommended distributions and performance details.

S3 API practical limits

Item Specification
Maximum object size ~48 PiB (10,000 parts at 5 TiB each)
Minimum object size 0 B
Maximum object size per PUT operation 5 TiB for non-multipart upload

~48 PiB for multipart upload
Maximum versions per object 10,000; configurable with the MINIO_API_OBJECT_MAX_VERSIONS environment variable

Bucket limits

Item Specification
Maximum number of buckets 500,000 (soft limit)
Maximum length for bucket names 63 bytes
Maximum length for each / separated segment of an object name 255 bytes
Maximum objects per bucket no limit

Erasure code limits

Erasure coding requires more than one drive. For clusters with a single node and single drive, there is no erasure coding functionality.

Item Specification
Maximum number of servers per cluster no limit
Minimum number of servers 1
Minimum number of drives per server when server count is 1 1
Minimum number of drives per server when server count is 2 or more 1
Maximum number of drives per server no limit
Read quorum $$N - parity$$
Write quorum $$N - parity + 1$$ (when the number of data shards is the same as the number of parity shards); otherwise, $$N - parity$$
AIStor availability and resiliency require a distributed topology with multiple drives and parity greater than 2. High availability is limited or not available with deployments that implement any combination of single node, single drive, or EC:1 parity.

Request limits

Item Practical limit
Maximum objects per list request 1,000
Maximum HTTP request header size 8 KiB
Maximum user-defined metadata size 2 KiB

Multipart upload limits

Item Specification
Maximum number of parts per upload 10,000
Part size range 5 MiB to 5 TiB. Last part can be 0 B to 5 TiB.
Maximum number of parts returned per list parts request 10,000
Maximum number of multipart uploads returned per list request 10,000

Object name limitations

Limitations on object names differ based on whether the cluster uses the default safe name mode or the optional extended name mode.

Item Safe mode Extended mode
Maximum length for object names 1024 bytes 4096 bytes
Maximum path segment length 255 bytes 255 bytes

Filesystem and operating system restrictions

Object names in AIStor are restricted primarily by the local operating system and filesystem. Windows and some other operating systems restrict file systems with certain special characters, such as ^, *, |, \, /, &, ", or ;.

On Unix-like operating systems, objects with a path name of ., .., or / return an error of file access denied.

This list is not exhaustive and may not apply to your operating system and filesystem combination. Consult your operating system vendor or filesystem documentation for a comprehensive list for your situation.

MinIO recommends using a Linux operating system with an XFS based filesystem for production workloads.

On AIStor releases RELEASE.2025-12-20T04-58-37Z or later, enable extended object naming to enable writing object names with special characters to the filesystem.

This mode must be enabled at the first run of AIStor on a cluster.

Conflicting objects

Applications must assign non-conflicting, unique keys for all objects. This includes avoiding creating objects where the name can collide with that of a parent or sibling object. AIStor returns an empty set for LIST operations at the location of the collision.

For example, the following operations create a namespace conflict:

PUT data/invoices/2024/january/vendors.csv
PUT data/invoices/2024/january <- collides with existing object prefix
PUT data/invoices/2024/january
PUT data/invoices/2024/january/vendors.csv <- collides with existing object

While you can perform GET or HEAD operations against these objects, the name collision causes LIST operations to return an empty result set at the /invoices/2024/january path.

This behavior only applies to servers running the default object name mode. Clusters using the extended object naming mode do not have this behavior.