Project

General

Profile

Actions

Feature #8358

open

client: opportunistically update backtraces on files

Added by Greg Farnum almost 10 years ago. Updated almost 8 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Performance/Resource Usage
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
Component(FS):
Client, Common/Protocol, MDS
Labels (FS):
Pull request ID:

Description

I've seen a few reports that backtrace updates are causing issues due to the increased write load (and the bursty nature of the current implementation; see #8230).

Since most backtraces are simply set on creation and never updated, it should be possible for clients to write backtraces out if they're already touching the object and tell the MDS they've done so.

Actions #1

Updated by Greg Farnum almost 9 years ago

I think the steps to do this are:
1) Have MDS provide a bufferlist to the client whenever an inode is created (as an optional part of the InodeStat)
2) If the client ever writes to the first object, it writes this bufferlist to a known xattr.
3) Tell the MDS that the bufferlist was written as part of a caps update. (This is the part I'm divided on: should it be some kind of full cap, or just a boolean we set?)
4) In the MDS, call CInode::clear_dirty_parent() if we get a response from the client indicating they set the backtrace.

Actions #2

Updated by Greg Farnum almost 8 years ago

  • Category changed from 46 to Performance/Resource Usage
  • Component(FS) Client, Common/Protocol, MDS added
Actions

Also available in: Atom PDF