Actions
Bug #44916
closedclient: syncfs flush is only fast with a single MDS
Status:
Resolved
Priority:
Normal
Assignee:
Category:
Performance/Resource Usage
Target version:
% Done:
0%
Source:
Tags:
backport_processed
Backport:
pacific
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Client
Labels (FS):
task(easy)
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
When we invoke Client::syncfs, we call into flush_caps_sync() and that invokes check_caps() for everything dirty, adding the internal flag CHECK_CAPS_SYNCHRONOUS to the last dirty cap in the list. check_caps() will set FLAG_SYNC on the MClientCaps message in that case.
But that method only sends the FLAG_SYNC on a single MDS session, and if we have dirty data for more than one MDS we will have to wait for all of them to decide to commit to disk! This may syncfs() quite slow on scale-out clusters.
Updated by Xiubo Li over 2 years ago
- Status changed from New to Fix Under Review
- Pull request ID set to 44255
Updated by Xiubo Li over 2 years ago
- Related to Bug #44988: client: track dirty inodes in a per-session list for effective cap flushing added
Updated by Venky Shankar over 2 years ago
- Status changed from Fix Under Review to Resolved
Updated by Venky Shankar 7 months ago
- Status changed from Resolved to Pending Backport
- Target version set to v19.0.0
- Backport set to pacific
Updated by Backport Bot 7 months ago
- Copied to Backport #62916: pacific: client: syncfs flush is only fast with a single MDS added
Actions