Laura - to avoid confusion I have modified the title of this bug.
Option: performance.flush-behind Default Value: on Description: If this option is set ON, instructs write-behind translator to perform flush in background, by returning success (or any errors, if any of previous writes were failed) to application even before flush FOP is sent to backend filesystem. Option: performance.write-behind-window-size Default Value: 1MB Description: Size of the write-behind buffer for a single file (inode). Option: performance.resync-failed-syncs-after-fsync Default Value: (null) Description: If sync of "cached-writes issued before fsync" (to backend) fails, this option configures whether to retry syncing them after fsync or forget them. If set to on, cached-writes are retried till a "flush" fop (or a successful sync) on sync failures. fsync itself is failed irrespective of the value of this option. Option: performance.strict-o-direct Default Value: off Description: This option when set to off, ignores the O_DIRECT flag. Option: performance.strict-write-ordering Default Value: off Description: Do not let later writes overtake earlier writes even if they do not overlap Same set of options are available but with different names for Glusterfs NFS server (GNFS-v3): Option: performance.nfs.flush-behind Default Value: on Description: If this option is set ON, instructs write-behind translator to perform flush in background, by returning success (or any errors, if any of previous writes were failed) to application even before flush FOP is sent to backend filesystem. Option: performance.nfs.write-behind-window-size Default Value: 1MB Description: Size of the write-behind buffer for a single file (inode). Option: performance.nfs.strict-o-direct Default Value: off Description: This option when set to off, ignores the O_DIRECT flag. Option: performance.nfs.strict-write-ordering Default Value: off Description: Do not let later writes overtake earlier writes even if they do not overlap
(In reply to Raghavendra G from comment #17) > Option: performance.resync-failed-syncs-after-fsync > Default Value: (null) Default Value: off
performance.strict-o-direct: Specifies whether to attempt to minimize the cache effects of I/O for a file. If performance.write-behind is enabled, this option should be disabled. Correction: The second line above is incorrect. This option is valid _only_ if performance.write-behind is _enabled_. So, please remove it. I've added some content below: "Specifies whether to attempt to minimize the cache effects of I/O for a file. When an fd is opened with O_DIRECT flag, write-back caching is disabled for writes happening on that fd only if performance.strict-o-direct is set to on. If this option is off, O_DIRECT will have no effect on caching. In other words, O_DIRECT is ignored by write-behind if performance.strict-o-direct is off"
performance.flush-behind: Specifies whether the write-behind translator performs flush operations in the background by returning results to the application before flush file operations are sent to the backend file system. A minor correction: Specifies whether the write-behind translator performs flush operations in the background by faking a success to the application before even before flush file operations are sent to the backend file system.
(In reply to Raghavendra G from comment #21) > performance.flush-behind: Similar changes are required for performance.nfs.flush-behind. > > Specifies whether the write-behind translator performs flush operations in > the background by returning results to the application before flush file > operations are sent to the backend file system. > > A minor correction: > > Specifies whether the write-behind translator performs flush operations in > the background by faking a success to the application before even before > flush file operations are sent to the backend file system.
(In reply to Raghavendra G from comment #20) > performance.strict-o-direct: Similar changes are required for performance.nfs.strict-o-direct > > Specifies whether to attempt to minimize the cache effects of I/O for a > file. If performance.write-behind is enabled, this option should be disabled. > > Correction: > The second line above is incorrect. This option is valid _only_ if > performance.write-behind is _enabled_. So, please remove it. I've added some > content below: > > "Specifies whether to attempt to minimize the cache effects of I/O for a > file. When an fd is opened with O_DIRECT flag, write-back caching is > disabled for writes happening on that fd only if performance.strict-o-direct > is set to on. If this option is off, O_DIRECT will have no effect on > caching. In other words, O_DIRECT is ignored by write-behind if > performance.strict-o-direct is off"
Verified the link provided in Comment 26 and the changes looks good. Moving this BZ to verified.
Also, changes made in the doc provided in Comment 15 wrt write-behind looks good.
Moving to CLOSED CURRENTRELEASE since RHGS 3.2 GA was yesterday. All documentation is available from https://access.redhat.com/documentation/en/red-hat-gluster-storage/.