Namespace quota considerations

As an administrator, understand how you can define and manage namespace quota for volumes and buckets.

  • Administrators can define the namespace quota of volume and bucket.
  • By default, the namespace quota for volume and bucket is not enabled and hence have unlimited quota.
  • After enabling the volume namespace quota, the buckets under the volume cannot exceed the volume namespace quota.
  • After enabling the bucket namespace quota, the keys under the bucket cannot exceed the bucket namespace quota.
  • When a volume has linked (for example, symlink) buckets, the linked bucket is counted as volume namespace quota by the volume having this bucket as linked. A linked bucket does not define a separate namespace quota, it refers to the namespace quota of the source bucket for keys inside the linked bucket.
  • A quota value with -2 for the volume and buckets represents old volume and buckets where space usage is not captured. The quota feature does not support these volumes and buckets This needs recalculation of namespace usages to support the quota feature during the upgrade. Space usage recalculation is required during the upgrade as enabled by default to rectify incorrect values as the quota feature was not supported previously.
  • For the File System Optimized (FSO) bucket, while files and directories are moving to trash, the trash consumes extra namespace for the below cases:
    • For internal directory, the path of trash in the bucket is /.trash/<user>/<current or timestamp>
    • For the extra path created while moving a file or a directory, the trash is present at certain directory hierarchy.

      The example for the extra path created at the source is /<vol>/<bucket>/dir1/dir2/file.txt

      Scenario 1:
      • Move file.txt to trash while performing the delete operation
      • Trash created with dir1 and dir2 as extra namespace to have same path as source in trash: /<vol>/<bucket>/.trash/<user>/current/dir1/dir2/file.txt
      • This consumes extra name space of 2
      Scenaro 2
      • Move dir2 to trash while perforning the delete operation
      • Trash created with dir1 as extra namespace /<vol>/<bucket>/.trash/<user>/current/dir1/dir2/file.txt
      • This consumes extra namespace of 1 for dir1

      Scenario 3

      • Move dir1 to trash while performing the delete operation. In this case, no extra namespace is required /<vol>/<bucket>/.trash/<user>/current/dir1/dir2/file.txt