Project

General

Profile

Feature #57965

Add new zone option to control whether an object's first data stripe is placed in the head object

Added by Cory Snyder 3 months ago.

Status:
New
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
quincy,pacific
Reviewed:
Affected Versions:
Pull request ID:

Description

Delete requests are quite slow on clusters that have a data pool backed by HDDs, especially with an EC pool. For example, consider a multi-object delete request with 1000 keys for an 8+3 EC pool. Since the first stripe of object data is currently placed with the xattr data on the head object, deleting these head objects requires HDDs write on the request thread (or strand). That's 1000 * (8 + 3) = 11,000 HDD io reqs for one RGW multi-object delete client request. Of course, that is a significant amount of io relative to HDD iops, even for large clusters. We'd like to see an option to not store the first data stripe on the head object, so that client delete requests don't need to do any HDD io in the case where the bluestore db is placed on SSD or NVME. All data cleanup would then be handled by GC asynchronously in the background.

Also available in: Atom PDF