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$$ |
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.