Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MinIO removed the version limit in a prior version #1244

Merged
merged 4 commits into from
Jun 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions source/administration/object-management.rst
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,6 @@ For a deeper discussion on the benefits of limiting prefix contents, see the art
Object Versioning
-----------------

.. versionchanged:: RELEASE.2023-08-04T17-40-21Z

MinIO supports keeping up to 10,000 "versions" of an object in a single bucket.
For workloads that require keeping more than 10K versions per object, please reach out to MinIO by email at [email protected].

.. image:: /images/retention/minio-versioning-multiple-versions.svg
:alt: Object with Multiple Versions
:align: center
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,7 @@ For versioned buckets, a write operation that mutates an object results in a new
MinIO marks the "latest" version of the object that clients retrieve by default.
Clients can then explicitly choose to list, retrieve, or remove a specific object version.

.. versionchanged:: 2023-08-04T17-40-21Z

MinIO restricts object versioning to no more than 10,000 versions of each object.

If a write operation would exceed the 10,000 object version limit, MinIO blocks the operation and returns an error.
:ref:`Delete one or more <minio-bucket-versioning-delete>` versions to create a new version of the object.
Define :ref:`object expiration <minio-lifecycle-management-create-expiry-rule>` rules to remove versions of objects no longer needed, such as by the number of versions or the date of versions.
djwfyi marked this conversation as resolved.
Show resolved Hide resolved

Read Operations on Versioned Objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
3 changes: 2 additions & 1 deletion source/reference/minio-mc/mc-mb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,8 @@ Parameters
:optional:

Enables :ref:`object versioning <minio-bucket-versioning>` on the new bucket.
When enabled, MinIO keeps up to 10,000 versions of each object.
With versioning enabled, by default MinIO allows up to the maximum value of an Int64 versions per object, or over 9.2 quintillion.
Define :ref:`object expiration <minio-lifecycle-management-create-expiry-rule>` rules to remove versions of objects no longer needed, such as by the number of versions or the date of versions.

Versioning is required for :ref:`bucket replication <minio-bucket-replication>` or :ref:`site replication <minio-site-replication-overview>`.
Versioning does not imply or require object locking.
Expand Down
15 changes: 10 additions & 5 deletions source/reference/minio-server/settings/core.rst
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,17 @@ Maximum Object Versions

*Optional*

Overrides the default maximum version per object limit of ``10000`` with the user specified value.
Defines the default maximum versions to allow per object.

.. important::
By default, MinIO allows up to the maximum value of an Int64 versions per object, or over 9.2 quintillion.

The default limit of 10,000 provides a safety valve against incorrect or inefficient application behavior in versioned buckets.
Lifting this limit without first ensuring your applications are designed for versioned operations may result in a negative performance impact over time.
.. note::

MinIO versions from ``RELEASE.2023-08-04T17-40-21Z``to ``RELEASE.2024-03-26T22-10-45Z`` had a default limit of 10,000 object versions.
This setting can be used to override that limit to another value.


Arbitrarily high versions per objects may cause performance degradation on some operations, such as ``LIST``.
This is especially true on systems running budget hardware or spinning drives (HDD).
Applications or workloads which produce thousands or more versions per object may require design or architecture review to mitigate potential performance degradations.

Setting a limit of no more than ``100`` should provide enough versions for most typical use cases.