Red Hat Bugzilla – Bug 798907
Make synctask scalable
Last modified: 2013-12-18 19:07:39 EST
Description of problem:
At the moment, synctask uses task->frame to perform all the syncops, this will lead to high-memory usage if the task crawls millions of directories. i.e millions of STACK_WINDS/UNWINDS.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
patch submitted already... yet to be merged
CHANGE: http://review.gluster.com/2850 (syncop: Make syntask scalable) merged in master by Vijay Bellur (email@example.com)
CHANGE: http://review.gluster.com/2902 (libglusterfs: Destroy stack_lock in STACK_DESTROY) merged in release-3.2 by Anand Avati (firstname.lastname@example.org)
1. create a replicate volume(1x3)
2. bring down 2 bricks
3. Create fuse/nfs mount
4. Create files ( 1 million files. files of different sizes )
5. Bring back the bricks.
6. execute "gluster volume heal <volume_name> full"
The memory consumption by glustershd process should not shoot up.
Verified the fix on 3.3.0qa45. Bug is fixed.