Skip to content

Commit 539d750

Browse files
raghavendra-talurnixpanic
authored andcommitted
share_reservation: Feature spec for share reservation
BUG: 1263231 Change-Id: Iba462dbc9051b6c8b3e11ea99f6ef6ed07cdabb1 Signed-off-by: Raghavendra Talur <[email protected]> Reviewed-on: http://review.gluster.org/13780 Reviewed-by: Poornima G <[email protected]> Reviewed-by: Niels de Vos <[email protected]> Tested-by: Niels de Vos <[email protected]>
1 parent 48c834e commit 539d750

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed

under_review/share_reservation.md

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
Share reservation
2+
-----------------
3+
4+
Summary
5+
-------
6+
7+
Share reservation allows `open` and `create` calls to place restrictions on
8+
modes that subsequent `open` or `create` operations on the same file can succeed
9+
with. This allows applications to place greater restriction on full files and
10+
reduces the byte range lock requests. Native support for share reservation in
11+
Gluster would allow us to provide better integration for share modes in SMB and
12+
share reservations in NFSv4.
13+
14+
This is a pre-requisite for Multiprotocol support in Gluster.
15+
16+
Owners
17+
------
18+
|Name|Email|
19+
|----|-----|
20+
|Raghavendra Talur|<[email protected]>|
21+
|Poornima G|<[email protected]>|
22+
|Rajesh Joseph|<[email protected]>|
23+
|Soumya Koduri|<[email protected]>|
24+
25+
26+
Current status
27+
--------------
28+
Gluster currently does not provide this feature.
29+
30+
Related Feature Requests and Bugs
31+
---------------------------------
32+
Share reservation feature has been proposed and mentioned on the roadmap for
33+
[Gluster 3.8 release](https://www.gluster.org/community/roadmap/3.8/). A
34+
[Tracker bug](https://bugzilla.redhat.com/show_bug.cgi?id=1263231) has been
35+
filed for the feature and it has been added as a blocker to [3.8 release
36+
tracker](https://bugzilla.redhat.com/show_bug.cgi?id=1317278).
37+
38+
Share reservation does not depend on any other feature requests.
39+
40+
Detailed Description
41+
--------------------
42+
Share reservation allows an application to open or create a file and gain rights
43+
that are equivalent to full file mandatory locks in an atomic way. Files can be
44+
reserved for exclusive write and exclusive read modes. Note the availability of
45+
exclusive read mode which is not possible using file locking semantics.
46+
Share modes will lead to two sets of operations to fail; one being subsequent
47+
operations which request for a mode which is not shared and other being the
48+
current operation which does not share a mode as part of create/open when some
49+
other operation is already using file in that mode.
50+
51+
Benefit to GlusterFS
52+
--------------------
53+
* Better integration with NFSv4 and SMB servers.
54+
* Applications written specifically for Gluster using libgfapi can use share
55+
reservations and reduce a lot of overhead with locking byte ranges.
56+
57+
Scope
58+
-----
59+
60+
#### Nature of proposed change
61+
62+
* Addition of new xlator
63+
* Changes in volgen code
64+
65+
66+
#### Implications on manageability
67+
68+
* Provide cli option enable/disable the xlator.
69+
* Provide cli interface to get list of files with share reservation flags.
70+
71+
#### Implications on presentation layer
72+
73+
* libgfapi will introduce a new glfs\_open\_extended to set share flags along
74+
with open. The same holds true for glfs\_create.
75+
* Samba and NFS-Ganesha would have to use the new API to use the feature.
76+
* FUSE will not expose this as the same is not available in VFS layer.
77+
78+
#### Implications on persistence layer
79+
80+
* None.
81+
82+
#### Implications on 'GlusterFS' backend
83+
84+
* None.
85+
86+
#### Modification to GlusterFS metadata
87+
88+
* None.
89+
90+
#### Implications on 'glusterd'
91+
92+
* New brick-op to be introduced to gather current share reservation flags from
93+
all bricks on all files to be presented through cli.
94+
95+
How To Test
96+
-----------
97+
* Custom libgfapi programs written to execute all combinations of file opens
98+
and accesses with various share reservation flags.
99+
100+
User Experience
101+
---------------
102+
103+
* Same as described in manageability section.
104+
105+
Dependencies
106+
------------
107+
108+
* None.
109+
110+
Documentation
111+
-------------
112+
113+
* In works.
114+
115+
Status
116+
------
117+
118+
* In design, is up for [review](http://review.gluster.org/#/c/13779)
119+
120+
Comments and Discussion
121+
-----------------------
122+
123+
*Follow here*
124+
125+

0 commit comments

Comments
 (0)