Project

General

Profile

Feature #545

mds: use bloom filter to supplement dirfrag COMPLETE flag

Added by Sage Weil over 13 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Low
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Component(FS):
Labels (FS):
Pull request ID:

Description

Currently we need the complete flag (or a cached negative dentry) to conclude a name does not exist in a frag before we can create it. This means that (especially for large dirs) once a single dentry is trimmed, we need to reload the whole dir when we have a miss.

We should supplement the complete flag with a bloom filter (which gives false positives but never false negatives), and add trimmed/released items to the filter. If a bloom filter check gives a false, we know the item was never trimmed, and can safely instantiate it.

History

#1 Updated by Sage Weil over 13 years ago

  • Assignee set to Greg Farnum

#2 Updated by Greg Farnum over 13 years ago

  • Target version changed from 12 to v0.24

#3 Updated by Sage Weil over 13 years ago

  • Estimated time set to 4.00 h
  • Source set to 2

#4 Updated by Greg Farnum over 13 years ago

Trying to find a bloom filter library. Unfortunately there don't seem to be any available under a GPL-compatible license, so I emailed the guy whose library wins at Google (and looks most mature!) to ask if we can get GPL-compatible licensing.

#5 Updated by Greg Farnum over 13 years ago

  • Status changed from New to 7

Pushed it to branch "mds" (which I apparently created, but thought existed...weird!). Testing it now on a secondary install.

#6 Updated by Sage Weil over 13 years ago

  • Status changed from 7 to Resolved

merged commit:4303820b43721a8b46ef36d0e9ef4e1167857c80

#7 Updated by John Spray over 7 years ago

  • Project changed from Ceph to CephFS
  • Category deleted (1)
  • Target version deleted (v0.24)

Bulk updating project=ceph category=mds bugs so that I can remove the MDS category from the Ceph project to avoid confusion.

Also available in: Atom PDF