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.
Actions