Bug 857673

Summary: write-behind: implement causal ordering of requests for better VM performance
Product: [Community] GlusterFS Reporter: Anand Avati <aavati>
Component: write-behindAssignee: Anand Avati <aavati>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: high    
Version: mainlineCC: amarts, chrisw, gluster-bugs, jdarcy, rfortier
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.4.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-24 13:38:18 EDT Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 850503, 850666, 852367, 856156, 895528    

Description Anand Avati 2012-09-15 17:48:49 EDT
The current ordering guarantees of write-behind is too strict and causes significant drop in performance for a VM workload.
Comment 1 Jeff Darcy 2012-09-17 08:54:11 EDT
If I'm reading the current patch correctly, it's now "less strict" in the sense that ordering between non-overlapping writes is not maintained even if the two are completely separate in time.  Is that correct?  Is it possible for a user to choose the stricter behavior via an option, or have the code structures changed so much that that would be infeasible?

Also, how big is the performance difference, and how is it being measured?
Comment 2 Anand Avati 2012-09-27 15:42:03 EDT
Performance difference is very significant. Ben has latest info on the results. I will explore if it is easy to provide an option to strictly preserve ordering. It might come out as an additional patch.
Comment 3 Anand Avati 2012-09-27 16:15:36 EDT
http://review.gluster.org/#change,3947,patchset=9 implements strict write ordering option for the paranoid.

Note that the previous version of write-behind was _not_ maintaining strict write ordering (for adjacent writes). This option is "stricter" than the previous write-behind for writes, but more relaxed w.r.t reads. It only holds back those reads which have overlapping pending writes (which is why the option is called "strict-write-ordering" and not "strict-ordering").
Comment 4 shishir gowda 2012-10-09 22:59:21 EDT
*** Bug 845213 has been marked as a duplicate of this bug. ***
Comment 5 Vijay Bellur 2012-10-13 13:42:09 EDT
CHANGE: http://review.gluster.org/4079 (write-behind: use uint64_t for overlap comparison) merged in master by Anand Avati (avati@redhat.com)
Comment 6 Vijay Bellur 2013-02-20 14:03:33 EST
CHANGE: http://review.gluster.org/4551 (performance/write-behind: guarantee non-overlapping concurrent writes) merged in master by Anand Avati (avati@redhat.com)
Comment 7 Vijay Bellur 2013-03-07 02:30:31 EST
CHANGE: http://review.gluster.org/4642 (performance/write-behind: guarantee non-overlapping concurrent writes) merged in release-3.4 by Anand Avati (avati@redhat.com)