How objects are deleted

StorageGRID can delete objects either in direct response to a client request or automatically as a result of the ending of the retention period for an S3 compliant bucket, the expiration of an S3 bucket lifecycle, or the requirements of the ILM policy. Understanding the different ways that objects can be deleted and how StorageGRID handles delete requests can help you manage objects more effectively.

StorageGRID can use one of two methods to delete objects:

When deleting objects, StorageGRID uses the method that optimizes delete performance, minimizes potential delete backlogs, and frees space most quickly.

The table summarizes when StorageGRID uses each method.

Method of performing deletion When this method is used
Objects are queued for deletion StorageGRID queues object copies for removal when any of the following conditions are true:
  • Automatic object deletion has been triggered by one of the following events:
    • An S3 compliant bucket's retention period ends and automatic deletion is selected.
    • The expiration date or number of days in the lifecycle configuration for an S3 bucket is reached.
    • The last time period specified in an ILM rule elapses.
  • An S3 or Swift client requests deletion and one or more of these conditions is true:
    • The object is stored in a Cloud Storage Pool.
    • Copies cannot be deleted within 30 seconds because, for example, an object location is temporarily unavailable.
    • Background deletion queues are idle.
Objects are removed immediately (synchronous deletion) StorageGRID performs synchronous deletion when an S3 or Swift client makes a delete request and all of the following conditions are met:
  • The object is stored on a Storage Node or an Archive Node.
  • All copies can be removed within 30 seconds.
  • Background deletion queues contain objects to process.

When S3 or Swift clients make delete requests, StorageGRID begins by adding a number of objects to the delete queue. It then switches to performing synchronous deletion. Making sure that the background deletion queue has objects to process allows StorageGRID to process deletes more efficiently, especially for low concurrency clients, while helping to prevent client delete backlogs.

Understanding the impact of how StorageGRID deletes objects

The way that StorageGRID deletes objects can affect how the system appears to perform:

If you are deleting large numbers of objects and your priority is to free space quickly, consider using a client request to delete objects rather than deleting them using ILM or other methods. In general, space is freed more quickly when deletion is performed by clients because StorageGRID can use synchronous deletion.

You should be aware that the amount of time required to free space after an object is deleted depends on a number of factors:
  • Whether object copies are synchronously removed or are queued for removal later (for client delete requests).
  • Other factors such as the number of objects in the grid or the availability of grid resources when object copies are queued for removal (for both client deletes and other methods).