From 0c5dc28687c693528b476955fc16402fb71543d5 Mon Sep 17 00:00:00 2001 From: Daryl White <53910321+djwfyi@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:37:37 -0400 Subject: [PATCH] MinIO removed the version limit in a prior version (#1244) This removes references to version limits and suggests using object expiration rules to manage unneeded noncurrent versions. There is no doc issue to track this. --- source/administration/object-management.rst | 5 ----- .../object-management/object-versioning.rst | 7 +------ source/reference/minio-mc/mc-mb.rst | 3 ++- source/reference/minio-server/settings/core.rst | 15 ++++++++++----- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/source/administration/object-management.rst b/source/administration/object-management.rst index c5a44ab1..700d0841 100644 --- a/source/administration/object-management.rst +++ b/source/administration/object-management.rst @@ -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 hello@min.io. - .. image:: /images/retention/minio-versioning-multiple-versions.svg :alt: Object with Multiple Versions :align: center diff --git a/source/administration/object-management/object-versioning.rst b/source/administration/object-management/object-versioning.rst index a0763c3a..24daf16c 100644 --- a/source/administration/object-management/object-versioning.rst +++ b/source/administration/object-management/object-versioning.rst @@ -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 ` versions to create a new version of the object. +Define :ref:`object expiration ` rules to remove versions of objects no longer needed, such as by the number of versions or the date of versions. Read Operations on Versioned Objects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/reference/minio-mc/mc-mb.rst b/source/reference/minio-mc/mc-mb.rst index 11ecd949..ded4ee59 100644 --- a/source/reference/minio-mc/mc-mb.rst +++ b/source/reference/minio-mc/mc-mb.rst @@ -107,7 +107,8 @@ Parameters :optional: Enables :ref:`object 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 ` 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 ` or :ref:`site replication `. Versioning does not imply or require object locking. diff --git a/source/reference/minio-server/settings/core.rst b/source/reference/minio-server/settings/core.rst index 70d18855..10e43702 100644 --- a/source/reference/minio-server/settings/core.rst +++ b/source/reference/minio-server/settings/core.rst @@ -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.