Bug 1224647

Summary: [RFE] Provide hourly scrubbing option
Product: [Community] GlusterFS Reporter: Venky Shankar <vshankar>
Component: bitrotAssignee: Venky Shankar <vshankar>
Status: CLOSED CURRENTRELEASE QA Contact: RajeshReddy <rmekala>
Severity: unspecified Docs Contact: bugs <bugs>
Priority: unspecified    
Version: 3.7.0CC: annair, bugs, ggarg, mzywusko, nsathyan, rmekala
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.7.1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1224596
: 1226132 (view as bug list) Environment:
Last Closed: 2015-06-02 08:03:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1224596    
Bug Blocks: 1219955, 1226132    

Description Venky Shankar 2015-05-25 08:59:43 UTC
+++ This bug was initially created as a clone of Bug #1224596 +++

Description of problem:
Provide an option to scrub the filesystem every hour.

Version-Release number of selected component (if applicable):
mainline

--- Additional comment from Anand Avati on 2015-05-25 01:39:47 EDT ---

REVIEW: http://review.gluster.org/10893 (features/bitrot: reimplement scrubbing frequency) posted (#3) for review on master by Venky Shankar (vshankar)

--- Additional comment from Anand Avati on 2015-05-25 01:39:49 EDT ---

REVIEW: http://review.gluster.org/10892 (contrib/timer-wheel: mod_timer() and friends) posted (#3) for review on master by Venky Shankar (vshankar)

--- Additional comment from Anand Avati on 2015-05-25 02:12:57 EDT ---

REVIEW: http://review.gluster.org/10901 (contrib/timer-wheel: mod_timer() and friends) posted (#1) for review on release-3.7 by Venky Shankar (vshankar)

--- Additional comment from Anand Avati on 2015-05-25 02:12:59 EDT ---

REVIEW: http://review.gluster.org/10902 (features/bitrot: reimplement scrubbing frequency) posted (#1) for review on release-3.7 by Venky Shankar (vshankar)

Comment 1 Anand Avati 2015-05-25 09:04:02 UTC
REVIEW: http://review.gluster.org/10902 (features/bitrot: reimplement scrubbing frequency) posted (#2) for review on release-3.7 by Venky Shankar (vshankar)

Comment 2 Anand Avati 2015-05-25 09:04:07 UTC
REVIEW: http://review.gluster.org/10901 (contrib/timer-wheel: mod_timer() and friends) posted (#2) for review on release-3.7 by Venky Shankar (vshankar)

Comment 3 Anand Avati 2015-05-29 05:08:02 UTC
REVIEW: http://review.gluster.org/10901 (contrib/timer-wheel: mod_timer() and friends) posted (#3) for review on release-3.7 by Venky Shankar (vshankar)

Comment 4 Anand Avati 2015-05-29 05:37:41 UTC
REVIEW: http://review.gluster.org/10902 (features/bitrot: reimplement scrubbing frequency) posted (#3) for review on release-3.7 by Venky Shankar (vshankar)

Comment 5 Anand Avati 2015-05-31 04:13:30 UTC
COMMIT: http://review.gluster.org/10901 committed in release-3.7 by Venky Shankar (vshankar) 
------
commit 5f6876918e9c353bf0ebcd35707fb5cd8876c956
Author: Venky Shankar <vshankar>
Date:   Fri May 22 11:54:11 2015 +0530

    contrib/timer-wheel: mod_timer() and friends
    
    Couple of timer-wheel api's to modify timer expiry times:
    
      mod_timer()
      mod_timer_pending()
    
    Both the api's perform almost the same job with one minute
    difference: mod_timer_pending() modifies timer expiry only
    if the timer is pending (i.e. being tracked in timer-wheel).
    
    Change-Id: Iae64934854ccfd6b081b849bff998ae3c3021bac
    BUG: 1224647
    Signed-off-by: Venky Shankar <vshankar>
    Reviewed-on: http://review.gluster.org/10901
    Tested-by: Gluster Build System <jenkins.com>
    Tested-by: NetBSD Build System <jenkins.org>

Comment 6 Anand Avati 2015-05-31 04:14:16 UTC
COMMIT: http://review.gluster.org/10902 committed in release-3.7 by Venky Shankar (vshankar) 
------
commit 85173e43faba9bbedd287a4103c129e289829e1f
Author: Venky Shankar <vshankar>
Date:   Thu May 21 19:55:02 2015 +0530

    features/bitrot: reimplement scrubbing frequency
    
    This patch reimplments existing scrub-frequency mechanism used
    to schedule scrubber runs. Existing mechanism uses periodic
    sleeps (waking up periodically on minimum granularity) and
    performing a number of tracking checks based on counters and
    sleep times. This patch does away with all the nifty counters
    and uses timer-wheel to schedule scrub runs.
    
    Scheduling changes are peformed by merely calculating the new
    expiry time and calling mod_timer() [mod_timer_pending() in
    some cases] making the code more debuggable and easier to
    follow. This also introduces "hourly" scrubbing tunable as an
    aid for testing scrubbing during development/testing cycle.
    
    One could also implement on-demand scrubbing with ease: by
    invoking mod_timer() with an expiry of one (1) second, thereby
    scheduling a scrub run the very next second.
    
    Change-Id: I6c7c5f0c6c9f886bf574d88c04cde14b76e60a8b
    BUG: 1224647
    Signed-off-by: Venky Shankar <vshankar>
    Reviewed-on: http://review.gluster.org/10902
    Tested-by: Gluster Build System <jenkins.com>
    Tested-by: NetBSD Build System <jenkins.org>

Comment 7 Niels de Vos 2015-06-02 08:03:14 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.1, please reopen this bug report.

glusterfs-3.7.1 has been announced on the Gluster Packaging mailinglist [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://thread.gmane.org/gmane.comp.file-systems.gluster.packaging/1
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user