Cleanup #1499
mds: clean up directory layouts
0%
Description
Rip out all the default_layout stuff and just stick this in the inode_t::layout value. This should remove a lot of annoying code.
History
#1 Updated by Sage Weil over 12 years ago
- translation missing: en.field_position set to 1
- translation missing: en.field_position changed from 1 to 896
#2 Updated by Sage Weil over 12 years ago
- Target version changed from v0.36 to v0.37
#3 Updated by Sage Weil over 12 years ago
- Target version deleted (
v0.37)
#4 Updated by Sage Weil over 11 years ago
- Project changed from Ceph to CephFS
- Category deleted (
1)
#5 Updated by Sage Weil over 11 years ago
- translation missing: en.field_position deleted (
1317) - translation missing: en.field_position set to 1
#6 Updated by Sage Weil over 11 years ago
- translation missing: en.field_story_points set to 5
- translation missing: en.field_position deleted (
15) - translation missing: en.field_position set to 15
#7 Updated by Sage Weil about 11 years ago
- translation missing: en.field_position deleted (
21) - translation missing: en.field_position set to 3
#8 Updated by Sage Weil about 11 years ago
- translation missing: en.field_position deleted (
5) - translation missing: en.field_position set to 20
#9 Updated by Sage Weil about 11 years ago
- translation missing: en.field_position deleted (
20) - translation missing: en.field_position set to 19
#10 Updated by Greg Farnum about 11 years ago
- translation missing: en.field_story_points deleted (
5) - translation missing: en.field_position deleted (
22) - translation missing: en.field_position set to 22
#11 Updated by Sage Weil about 11 years ago
there is an old branch that does this. note that this code changed with the wip-vxattrs work, so the rebase needs to be done carefully.
#12 Updated by Ian Colle about 11 years ago
- translation missing: en.field_story_points set to 5
- translation missing: en.field_position deleted (
22) - translation missing: en.field_position set to 10
#13 Updated by Greg Farnum about 11 years ago
I've rebased on top of the wip-mds-encode-rebased branch as wip-1499-mds-layouts, although I notice it's failing some of the dencoder tests so it's not perfect yet. (Also there's a FIXME to add a member function instead of doing the test inline.)
#14 Updated by Greg Farnum about 11 years ago
- Target version set to v0.59
#15 Updated by Greg Farnum about 11 years ago
- Status changed from New to Fix Under Review
Okay, this patch is required to fix the loss of directory layouts issue (#1435) in Bobtail, so I rebased it on that branch, currently in bobtail-layouts.
I then cherry-picked it forward to next, in greg-next.
Yes, this is backwards from normal, but unfortunately the change to using in-inode layouts requires a struct_v change, and those numbers conflict with the mds encoding changes that went into master (and next) recently, so the best solution I or Sage came up with was to let bobtail take the next numbers, and then to pretend like the first revision of the MDS encoding struct_v changes didn't happen (because they were never released).
Needless to say, this all needs a very careful review. Perhaps from more than one person.
#16 Updated by Greg Farnum about 11 years ago
- Status changed from Fix Under Review to Resolved
Okay, I tested this according to the procedure described below (I wanted to write some scripts, but the non-manual portions of it were only a few lines at a time right now, meh).
It worked, so I've pushed to bobtail (commit:36ed407e0f939a9bca57c3ffc0ee5608d50ab7ed) and next (commit:6bd8781dda524f04bb56bcdac5aa5b13ba61b07d).
Run with bobtail
Set mds_log_max_segments and mds_log_max_expiring to 1, mds_cache_size to 100, then (re)start MDSSet layout on root inode, on child directory "idle_test/dir_with_layout", and on child directory "active_test" (all differently)
drop caches
run pjd test inside of "active_test"
check MDS log to see that idle_test/dir_with_layout was removed from cache, and see that MDS log has expired early segments
upgrade MDS to bobtail-layouts, restart
verify it runs and layouts are present on active_test, missing on idle_test/dir_with_layout
re-apply layouts, run pjd in active_tests
upgrade MDS to greg-next, restart
verify it runs and layouts are correct
repeat with a direct upgrade from bobtail to greg-next and make sure it runs