# Release notes for Gluster 6.0 This is a major release that includes a range of code improvements and stability fixes among a few features as noted below. A selection of the key features and changes are documented on this page. A full list of bugs that have been addressed is included further below. - [Announcements](#announcements) - [Major changes and features](#major-changes-and-features) - [Major issues](#major-issues) - [Bugs addressed in the release](#bugs-addressed) ## Announcements 1. Releases that receive maintenance updates post release 6 are, 4.1 and 5 ([reference](https://www.gluster.org/release-schedule/)) 2. Release 6 will receive maintenance updates around the 30th of every month for the first 3 months post release (i.e Mar'19, Apr'19, May'19). Post the initial 3 months, it will receive maintenance updates every 2 months till EOL. ([reference](https://lists.gluster.org/pipermail/announce/2018-July/000103.html)) 3. A series of features/xlators have been deprecated in release 6 as follows, for upgrade procedures from volumes that use these features to release 6 refer to the release 6 [upgrade guide](https://docs.gluster.org/en/latest/Upgrade-Guide/upgrade_to_6/). This deprecation was announced at the gluster-users list [here](https://lists.gluster.org/pipermail/gluster-users/2018-July/034400.html). Features deprecated: - Block device (bd) xlator - Decompounder feature - Crypt xlator - Symlink-cache xlator - Stripe feature - Tiering support (tier xlator and changetimerecorder) ## Major changes and features Features are categorized into the following sections, - [Management](#management) - [Standalone](#standalone) - [Developer](#developer) ### Management #### GlusterD2 TODO: Fill in GD2 status, as pertaining to GCS (container storage) release. ### Standalone #### 1. Glusterfind tool enhanced with a filter option glusterfind tool has an added option "--type", to be used with the "--full" option. The option supports finding and listing files or directories only, and defaults to both if not specified. Example usage with the pre and query commands are given below, 1. Pre command ([reference](https://docs.gluster.org/en/latest/GlusterFS%20Tools/glusterfind/#pre-command)): - Lists both files and directories in OUTFILE: `glusterfind pre SESSION_NAME VOLUME_NAME OUTFILE` - Lists only files in OUTFILE: `glusterfind pre SESSION_NAME VOLUME_NAME OUTFILE --type f` - Lists only directories in OUTFILE: `glusterfind pre SESSION_NAME VOLUME_NAME OUTFILE --type d` 2. Query command: - Lists both files and directories in OUTFILE: `glusterfind query VOLUME_NAME --full OUTFILE` - Lists only files in OUTFILE: `glusterfind query VOLUME_NAME --full --type f OUTFILE` - Lists only directories in OUTFILE: `glusterfind query VOLUME_NAME --full --type d OUTFILE` #### 2. FUSE mounts are enhanced to handle interrupts to blocked lock requests FUSE mounts are enhanced to handle interrupts to blocked locks. For example scripts using flock (`man 1 flock`) utility without the -n(nonblock) option against files on a FUSE based gluster mount, can now be interrupted when the lock is not granted in time or using the -w option from the same utility. #### 3. client-side inode garbage collection via LRU list A FUSE mounts inode cache can now be limited to a maximum number, thus reducing the memory footprint of FUSE mount processes. See lru-limit option in `man 8 mount.glusterfs` for usage details. NOTE: Setting this to low numbers (say less than 4000), will evict inodes from FUSE and Gluster caches at a much faster rate, and can cause performance degrades. The setting has to be balanced across available client memory and performance. #### 4. Optimized/pass-through distribute functionality for 1-way distributed volumes **NOTE:** There are no user controllable changes with this feature Distribute xlator is optimized, to mostly pass-through operations, when the distribute count is one for a volume, resulting in improved performance. #### 5. Options introduced to disable invalidations of kernel page cache For workloads, where multiple FUSE client mounts do not concurrently operate on any files in the volume, it is now possible to maintain a longer duration kernel page cache using the following options in conjunction, - Setting `--auto-invalidation` option to "no" on the glusterfs FUSE mount process - Disabling the volume option `performance.global-cache-invalidation` This enables better performance as the data is served from the kernel page cache where possible. ### Developer #### 1. Gluster code can be compiled and executed using [TSAN](https://clang.llvm.org/docs/ThreadSanitizer.html) While configuring the sources for a build use the extra option `--enable-tsan` to enable thread sanitizer based builds. #### 2. gfapi: A class of APIs have been enhances to return pre/post gluster_stat information A set of [apis](https://github.com/gluster/glusterfs/blob/release-6/api/src/gfapi.map#L245) have been enhanced to return pre/post gluster_stat information. Applications using gfapi would need to adapt to the newer interfaces to compile against release-6 apis. Pre-compiled applications, or applications using the older API SDK will continue to work as before. ## Major issues ## Bugs addressed Bugs addressed since release-5 are listed below.