From 799fca3888304825251732c3f40e0cd0ad8c2c3b Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Thu, 5 May 2016 17:44:53 +0200 Subject: Move "Granular Entry self-heal" for 3.8 to "done" Change-Id: I79115f626f069f4cdda5ac9fb1b1ccb872c72e70 Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/14228 Reviewed-by: Krutika Dhananjay --- accepted/granular-entry-self-healing.md | 110 -------------------------------- 1 file changed, 110 deletions(-) delete mode 100644 accepted/granular-entry-self-healing.md (limited to 'accepted') diff --git a/accepted/granular-entry-self-healing.md b/accepted/granular-entry-self-healing.md deleted file mode 100644 index 681a82e..0000000 --- a/accepted/granular-entry-self-healing.md +++ /dev/null @@ -1,110 +0,0 @@ -# Granular Entry Self-healing - -## Goal - -Better self-heal performance for glusterfs volumes having a replicate -configuration (AFR). - -## Summary - -As of today, entry self-heal and data-selfheal in AFR are network/ CPU intensive -operations. This can lead to clients observing reduced performance/ stalling -when accessing a volume when self-heal is in progress. The changes proposed below -make entry-self-heal more granular. - -## Owners - -Anuradha Talur -Krutika Dhananjay -Pranith Kumar K -Ravishankar N - -## Current status - -Patches posted for review: -http://review.gluster.org/12442 -http://review.gluster.org/#/c/12482/ - -Dependency on compound fops feature - -## Related Bug - -https://bugzilla.redhat.com/show_bug.cgi?id=1269461 - -## Detailed Description - -Both afr and ec at the moment do lot of readdirs and lookups to figure out the -differences between the directories to perform heals. To avoid this, the base -algorithm is to store only the names that need heal in -.glusterfs/indices/entry-changes// as links to base file in -.glusterfs/indices/entry-changes of the bricks. So only the names that need to -be healed will be going through name heals instead of the currently implemented approach of -'lookup all files in sink directory remove the ones not present in the source directory' + -'lookup all files in source directory remove the ones not present in the sink directory' -When all the names under this directory are healed, we need to reset the -pending afr xattrs of the dir, indicating that the heal is complete, and also -remove the directory .glusterfs/indices/entry-changes/. -This method is for healing files that are created while a brick is down. - -For healing directories (and files inside it) that are created when a brick -is down, we need to mark the dir's AFR xattrs' data bits with a special value -say 0xFFFFFFF. For such directories, we can do a complete name heal of the -entries to the sink. When readdir returns no more entries, clear the xattrs. - -## Benefit to GlusterFS - -Improved entry self-heal performance- i.e faster heal times and lesser -consumption of resources. - -## Scope - -## Nature of proposed change - -Changes involve modification to AFR and index xlators. - -## Implications on manageability - -None. - -## Implications on presentation layer - -None. - -## Implications on persistence layer - -None. - -## Implications on 'GlusterFS' backend - -The .glusterfs/indices directory will contain new entries to keep track of entry heals. - -## Modification to GlusterFS metadata - -Changes to AFR's xattrs and its interpretation. - -## Implications on 'glusterd' - -None. - -## How To Test - -TBD. - -## User Experience - -Users will see better performance during entry self-heal and more judicious -utilization of resources. - -## Dependencies - -Part of the changes in self-heal daemon code will depend on compound fops feature. - -## Documentation - -TBD - -## Status - -Design complete. Implementation done. The only thing pending is the compounding of two fops in shd code. - -## Comments and Discussion -- cgit