1
0
mirror of https://github.com/minio/docs.git synced 2025-07-30 07:03:26 +03:00
Files
docs/source/operations/concepts/thresholds.rst
Jennifer Rondeau d8fd984346 Explain limitations with multi-part uploads, move other unsupported/limitations content (#1345)
- Explains requirements for `ListMultipartUploads`
- Notes that `AbortIncompleteMultipartUploads` is not supported with
`PutBucketLifecycle`

This approach does not provide all the detail in the original ticket,
because we don't do so for other operations/actions.

Also moved content about bucket operations limitations from thresholds
and limits page to S3 compatibility page. Took some suggestions from
discussion in ticket.

Closes #1216 

Staging:

[Differences from S3 APIs for Multipart
Uploads](http://192.241.195.202:9000/staging/DOC-1216/linux/reference/s3-api-compatibility.html#id5)
[MinIO alternatives for unsupported Bucket
resources](http://192.241.195.202:9000/staging/DOC-1216/linux/reference/s3-api-compatibility.html#id12)
To check that content is moved: [Thresholds and
Limits](http://192.241.195.202:9000/staging/DOC-1216/linux/operations/concepts/thresholds.html)
2024-10-08 13:19:16 -04:00

132 lines
3.5 KiB
ReStructuredText

.. _minio-server-limits:
=====================
Thresholds and Limits
=====================
.. default-domain:: minio
.. contents:: Table of Contents
:local:
:depth: 2
This page reflects limits and thresholds that apply to MinIO.
Refer to the :ref:`hardware <minio-hardware-checklist>` and :ref:`software <minio-software-checklists>` for related recommendations and requirements.
S3 API Limits
-------------
.. list-table::
:header-rows: 1
:widths: 60 40
:width: 90%
* - Item
- Specification
* - Maximum object size
- 50 TiB
* - Minimum object size
- 0 B
* - Maximum object size per PUT operation
- | 5 TiB for non-multipart upload
| 50 TiB for multipart upload
* - Maximum number of parts per upload
- 10,000
* - Part size range
- 5 MiB to 5 GiB. Last part can be 0 B to 5 GiB
* - Maximum number of parts returned per list parts request
- 10,000
* - Maximum number of objects returned per list objects request
- 1,000
* - Maximum number of multipart uploads returned per list multipart uploads request
- 1,000
* - Maximum length for bucket names
- 63
* - Maximum length for object names
- 1024
* - Maximum length for each ``/`` separated object name segment
- 255
* - Maximum number of object versions for a unique object
- 10000 (Configurable)
Erasure Code Limits
-------------------
.. list-table::
:header-rows: 1
:widths: 60 40
:width: 90%
* - 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 (for |SNSD| deployments, which do not provide additional reliability or availability)
* - Minimum number of drives per server when server count is 2 or more
- 1
* - Maximum number of drives per server
- no limit
* - Read quorum
- :math:`N/2`
* - Write quorum
- :math:`(N/2)+1`
Object Name Limitations
-----------------------
Filesystem and Operating System Restrictions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Object Names in MinIO 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 ``;``.
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 LInux operating system with an XFS based filesystem for production workloads.
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.
MinIO returns an empty set for LIST operations at the location of the collision.
For example, the following operations create a namespace conflicts
.. code-block::
PUT data/invoices/2024/january/vendors.csv
PUT data/invoices/2024/january <- collides with existing object prefix
.. code-block::
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.