Project

General

Profile

Actions

Feature #17854

closed

mds: only evict an unresponsive client when another client wants its caps

Added by John Spray over 7 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Administration/Usability
Target version:
% Done:

0%

Source:
Development
Tags:
Backport:
nautilus,mimic
Reviewed:
Affected Versions:
Component(FS):
MDS
Labels (FS):
task(intern)
Pull request ID:

Description

Instead of immediately evicting a client when it has not responded within the timeout, set a flag to mark the client as laggy. Then in Locker, when another client tries to do something that would be blocked by the laggy client, evict the laggy client.

Test this by having two clients, accessing separate directories. Have client A go unresponsive, and see that it is not evicted while client B continues to do work in its own directory. Then, have Client B try and touch the files in client A's directory, and see that client A gets evicted at that point.


Related issues 2 (0 open2 closed)

Copied to CephFS - Backport #40899: mimic: mds: only evict an unresponsive client when another client wants its capsResolvedNathan CutlerActions
Copied to CephFS - Backport #40900: nautilus: mds: only evict an unresponsive client when another client wants its capsResolvedNathan CutlerActions
Actions #1

Updated by Patrick Donnelly about 6 years ago

  • Subject changed from Only evict an unresponsive client when another client wants its caps to mds: only evict an unresponsive client when another client wants its caps
  • Target version changed from v12.0.0 to v14.0.0
  • Source changed from other to Development
  • Tags set to intern
  • Component(FS) MDS added
Actions #2

Updated by Rishabh Dave almost 6 years ago

I am planning to start working on this feature. How can I get a client to be unresponsive without evicting it?

Actions #3

Updated by Patrick Donnelly almost 6 years ago

  • Status changed from New to In Progress
  • Assignee set to Rishabh Dave
  • Tags deleted (intern)
  • Labels (FS) task(intern) added
Actions #4

Updated by Zheng Yan almost 6 years ago

Rishabh Dave wrote:

I am planning to start working on this feature. How can I get a client to be unresponsive without evicting it?

check Server::find_idle_sessions(). the function checks if clients have renewed their sessions recently. A client is unresponsive if it hasn't renewed its session for session_timeout seconds. Once found unresponsive client, you can check Locker::revoking_caps_by_client to find if mds wants to revoke caps from the unresponsive client.

Actions #5

Updated by Patrick Donnelly almost 6 years ago

  • Status changed from In Progress to Fix Under Review
Actions #6

Updated by Rishabh Dave almost 6 years ago

Unresponsive/stale clients do not hold any caps1. Therefore, deferring their eviction would mean keeping them infinitely. Instead, Zheng suggested to avoid marking open sessions holding no caps stale and evict them directly at session_autoclose1.

[1] https://github.com/ceph/ceph/pull/22645#discussion_r197319784

Actions #7

Updated by Patrick Donnelly about 5 years ago

  • Target version changed from v14.0.0 to v15.0.0
Actions #8

Updated by Patrick Donnelly about 5 years ago

  • Start date deleted (11/10/2016)
  • Pull request ID set to 22645
Actions #9

Updated by Patrick Donnelly almost 5 years ago

  • Status changed from Fix Under Review to Pending Backport
  • Backport set to nautilus,mimic
Actions #10

Updated by Nathan Cutler almost 5 years ago

  • Copied to Backport #40899: mimic: mds: only evict an unresponsive client when another client wants its caps added
Actions #11

Updated by Nathan Cutler almost 5 years ago

  • Copied to Backport #40900: nautilus: mds: only evict an unresponsive client when another client wants its caps added
Actions #12

Updated by Nathan Cutler over 4 years ago

  • Status changed from Pending Backport to Resolved

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Actions

Also available in: Atom PDF