summaryrefslogtreecommitdiffstats
path: root/doc/release-notes/6.0.md
blob: 810a3fad3a71aa1e3fb6a515a836e01f8aa6bb40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# 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.

#### 6. Changes to gluster based SMB share management

Previously all GlusterFS volumes were being exported by default via smb.conf in
a Samba-CTDB setup. This includes creating a share section for CTDB lock volume
too which is not recommended. Along with few syntactical errors these scripts
failed to execute in a non-Samba setup in the absence of necessary configuration
and binary files.

Hereafter newly created GlusterFS volumes are not exported as SMB share via
Samba unless either of 'user.cifs' or 'user.smb' volume set options are enabled
on the volume. The existing GlusterFS volume share sections in smb.conf will
remain unchanged.

### 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

<TODO>

## Bugs addressed

Bugs addressed since release-5 are listed below.
<TODO>