Bug 761877 (GLUSTER-145)

Summary: NFSv3 related additions to 2.1 task list
Product: [Community] GlusterFS Reporter: Amar Tumballi <amarts>
Component: coreAssignee: Anand Avati <aavati>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: low    
Version: mainlineCC: chrisw, gluster-bugs, shehjart, vraman
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: RTNR Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Amar Tumballi 2009-07-16 01:13:59 UTC
Lets track the progress here.

------------------
From: Shehjar Tikoo <shehjart>
Date: Wed, Jul 15, 2009 at 6:07 AM
To: dl-hacking <dl-hacking>


Hi Folks

Here is the summary of the points discussed in the meeting a few mins
back. The meeting dealt with the items to be added to the personal tasks
list of developers for the NFSv3 xlator effort.

Translator Responsibilities
===========================
AFR - Vikas
DHT - Avati
Posix - Shehjar
RA,WB - Raghavendra
Unify,io-cache - Gowda

Steps towards NFSv3 support
===========================
1. Create new branch.

2. Change fop prototypes: This step requires one person to go around
changing the prototypes in all xlators as required. The change is
cosmetic only because the change does not require that these new
arguments be interpreted by the fops.

Delegated to Shehjar
Deliverable: One patch per fop. This will ensure that every single
changed fop will still continue to result in a successful build.

3. Logic changes in xlators: Requires the above translator delegates
to start using those new arguments in the changed prototypes.

Deliverable: one patchset per xlator.

4. Merge to mainline.

By tomorrow(16.07, IST), the delegates will determine the time
required for implementing their tasks. Based on that, Vijay will discuss
how to schedule development.

-Shehjar

----------
From: Amar Tumballi <amar>
Date: Wed, Jul 15, 2009 at 9:01 AM
To: Anand Avati <avati>, Anand Babu Periasamy <ab>
Cc: dl-hacking <dl-hacking>


Avati/AB,

Do we need 'unify'  at all in 2.1?? I think maintaining all these changes and keeping it out of bugs for a module with no users, the effort is not worth. 

Only reason for unify to survive 2.0.x release is, DHT was unable to provide 'switch' support properly, but with the later readdir changes, implementing a switch behavior in DHT has become very simple. Hence I propose that we should be droping unify from the code base.

----------
From: Anand Babu Periasamy <ab>
Date: Wed, Jul 15, 2009 at 9:07 AM
To: Amar Tumballi <amar>
Cc: Anand Avati <avati>, dl-hacking <dl-hacking>


I think we should drop it. If you really have a reason to have it,
we should create classify it under deprecated/cluster/unify.
If it doesn't work at all in 2.1 and too much work to fix it, we should drop
it.

--
Anand Babu Periasamy
GPG Key ID: 0x62E15A31
Blog [http://unlocksmith.org]
GlusterFS [http://www.gluster.org]
GNU/Linux [http://www.gnu.org]

----------
From: Anand Avati <avati>
Date: Wed, Jul 15, 2009 at 9:46 AM
To: Shehjar Tikoo <shehjart>
Cc: dl-hacking <dl-hacking>


This is a good plan. What about the changes to the remaining translators?

Avati

----------
From: Vijay Bellur <vijay>
Date: Wed, Jul 15, 2009 at 10:05 AM
To: Anand Avati <avati>
Cc: Shehjar Tikoo <shehjart>, dl-hacking <dl-hacking>


Anand Avati wrote:
The translators that require extra functionality/logic to be added have been mentioned above. The remaining translators would have change only in prototypes and that would be done by  Shehjar. Do you foresee more changes in other translators?

-Vijay

----------
From: Anand Avati <avati>
Date: Wed, Jul 15, 2009 at 11:51 AM
To: Shehjar Tikoo <shehjart>
Cc: dl-hacking <dl-hacking>


Note that you would also have to change all the STACK_WIND and UNWIND invocations of those fops to pass extra dummy parameters, and make sure those dummy parameters are kept track of somehow while fixing the translators (by forcing a warning of some sort), and not get left behind in the end. To make things worse, our current STACK_UNWIND has no type check :)

Avati

----------
From: Amar Tumballi <amar>
Date: Wed, Jul 15, 2009 at 12:48 PM
To: Anand Avati <avati>
Cc: Shehjar Tikoo <shehjart>, dl-hacking <dl-hacking>


Avati, and Team,

I propose the idea of changing xlator.h first (for APIs), and then starting configure.ac from fresh set of translators which gets these changes properly.. least disruptive, and we have less dependency on the step 2 (that is one man job to change 1040+ STACK_WINDs, 1400+ STACK_UNWINDs, 930+ function definitions, and 1300+ fop_cbk definitions. I guess it will take minimum 14 days for one man if we start with cosmetic changes as first step. 

-Amar

Comment 1 Shehjar Tikoo 2009-07-20 05:03:24 UTC
Shehjar Tikoo wrote:
>
> In that case, we'll be distributing the fops among all the developers.

Here is a list of who does what:

Gowda 	   Raghavendra 	Vikas 	Shehjar     Avati         Vijay
======================================================================
lookup 	   ftruncate 	symlink fsync       fgetxattr 	  setdents
stat 	   utimens 	rename 	opendir     removexattr   getdents
fstat 	   access 	link 	readdir     lk            checksum
chmod 	   readlink 	create 	fsyncdir    inodelk       xattrop
fchmod 	   mknod 	open 	statfs      finodelk      fxattrop
chown 	   mkdir 	readv 	setxattr    entrylk       lock_notify
fchown     unlink 	writev 	getxattr    fentrylk      lock_fnotify
truncate   rmdir        flush   fsetxattr 	
	
Thanks,
Vijay

Comment 2 Shehjar Tikoo 2009-07-20 05:10:49 UTC
Anther attempt to make the table cleaner.

<table border=1>
<tr>
<td>Gowda</td><td>Raghavendra</td><td>Vikas</td><td>Shehjar</td><td>Avati</td><td>Vijay</td></tr>

<tr>
<td>lookup</td><td>ftruncate</td><td>symlink</td><td>fsync</td><td>fgetxattr</td><td>setdents</td>
</tr>

<tr>
<td>stat</td><td>utimens</td><td>rename</td><td>opendir</td><td>removexattr</td><td>getdents</td>
</tr>

<tr>
<td>fstat</td><td>access</td><td>link</td><td>readdir</td><td>lk</td><td>checksum</td>
</tr>

<tr>
<td>chmod</td><td>readlink</td><td>create</td><td>fsyncdir</td><td>inodelk</td><td>xattrop</td>
</tr>

<tr>
<td>fchmod</td><td>mknod</td><td>open</td><td>statfs</td><td>finodelk</td><td>fxattrop</td>
</tr>

<tr>
<td>chown</td><td>mkdir</td><td>readv</td><td>setxattr</td><td>entrylk</td><td>lock_notify</td>
</tr>

<tr>
<td>fchown</td><td>unlink</td><td>writev</td><td>getxattr</td><td>fentrylk</td><td>lock_fnotify</td>
</tr>

<tr>
<td>truncate</td><td>rmdir</td><td>flush</td><td>fsetxattr</td>
</tr>     
</table>


Thanks,
Vijay

Comment 3 Shehjar Tikoo 2009-07-20 05:12:44 UTC
Ah, well, better continue referring to Vijay's email. The formatting here is crap.

(In reply to comment #2)
> Anther attempt to make the table cleaner.
>

Comment 4 Anand Avati 2009-10-01 11:22:49 UTC
PATCH: http://patches.gluster.com/patch/1608 in master (Global: NFS-friendly prototype changes)

Comment 5 Anand Avati 2009-10-01 11:22:53 UTC
PATCH: http://patches.gluster.com/patch/1605 in master (unify: NFS-friendly logic changes)

Comment 6 Anand Avati 2009-10-01 11:22:57 UTC
PATCH: http://patches.gluster.com/patch/1606 in master (posix: NFS-friendly logic changes)

Comment 7 Anand Avati 2009-10-01 11:23:01 UTC
PATCH: http://patches.gluster.com/patch/1607 in master (server: NFS-friendly logic changes)

Comment 8 Anand Avati 2009-10-01 11:23:05 UTC
PATCH: http://patches.gluster.com/patch/1609 in master (client: NFS-friendly logic changes)

Comment 9 Anand Avati 2009-10-01 11:23:08 UTC
PATCH: http://patches.gluster.com/patch/1611 in master (trace: NFs-friendly logic changes)

Comment 10 Anand Avati 2009-10-01 11:23:12 UTC
PATCH: http://patches.gluster.com/patch/1610 in master (io-stats: NFS-friendly logic changes)

Comment 11 Anand Avati 2009-10-01 11:23:16 UTC
PATCH: http://patches.gluster.com/patch/1612 in master (locks: NFS-friendly logic changes)

Comment 12 Anand Avati 2009-10-01 11:23:20 UTC
PATCH: http://patches.gluster.com/patch/1613 in master (error-gen: NFS-friendly logic changes)

Comment 13 Anand Avati 2009-10-01 11:23:23 UTC
PATCH: http://patches.gluster.com/patch/1614 in master (stripe: NFS-friendly logic changes)

Comment 14 Anand Avati 2009-10-01 11:23:27 UTC
PATCH: http://patches.gluster.com/patch/1615 in master (filter: NFS-friendly logic changes)

Comment 15 Anand Avati 2009-10-01 11:23:31 UTC
PATCH: http://patches.gluster.com/patch/1616 in master (write-behind: NFS-friendly logic changes)

Comment 16 Anand Avati 2009-10-01 11:23:34 UTC
PATCH: http://patches.gluster.com/patch/1617 in master (read-ahead: NFS-friendly logic changes)

Comment 17 Anand Avati 2009-10-01 11:23:38 UTC
PATCH: http://patches.gluster.com/patch/1618 in master (io-threads: NFS-friendly logic changes)

Comment 18 Anand Avati 2009-10-01 11:23:42 UTC
PATCH: http://patches.gluster.com/patch/1619 in master (symlink-cache: NFS-friendly logic changes)

Comment 19 Anand Avati 2009-10-01 11:23:45 UTC
PATCH: http://patches.gluster.com/patch/1620 in master (ha: NFS-friendly logic changes)

Comment 20 Anand Avati 2009-10-01 11:23:49 UTC
PATCH: http://patches.gluster.com/patch/1621 in master (ha: Handle memory allocation failures)

Comment 21 Anand Avati 2009-10-01 11:23:53 UTC
PATCH: http://patches.gluster.com/patch/1622 in master (distribute: NFS-friendly logic changes)

Comment 22 Anand Avati 2009-10-06 11:05:06 UTC
PATCH: http://patches.gluster.com/patch/1670 in master (mem-pool: Include stdlib for calloc())

Comment 23 Anand Avati 2009-10-06 11:05:10 UTC
PATCH: http://patches.gluster.com/patch/1671 in master (core: Add rbtree based hash table)

Comment 24 Anand Avati 2009-10-06 11:05:13 UTC
PATCH: http://patches.gluster.com/patch/1672 in release-2.0 (mem-pool: Include stdlib for calloc())

Comment 25 Anand Avati 2009-10-06 11:05:17 UTC
PATCH: http://patches.gluster.com/patch/1673 in release-2.0 (core: Add rbtree based hashtable)

Comment 26 Anand Avati 2009-10-10 02:48:13 UTC
PATCH: http://patches.gluster.com/patch/1848 in master (posix: Ensure ENOTEMPTY return on rmdir)

Comment 27 Anand Avati 2009-10-12 14:18:38 UTC
PATCH: http://patches.gluster.com/patch/1865 in master (protocol/server: Set preparent and postparent in the response struct.)

Comment 28 Anand Avati 2009-10-14 08:56:14 UTC
PATCH: http://patches.gluster.com/patch/1888 in master (io-cache: NFS-friendly changes)

Comment 29 Anand Avati 2009-10-27 07:32:35 UTC
PATCH: http://patches.gluster.com/patch/2008 in master (cluster/afr: NFS-friendly logic changes)

Comment 30 Anand Avati 2009-10-28 05:46:26 UTC
PATCH: http://patches.gluster.com/patch/2019 in master (cluster/afr: Set local->fd in fsync.)

Comment 31 Shehjar Tikoo 2009-11-12 15:20:50 UTC
Err...is this really supposed to be fixed. I havent submitted nfs xlator yet. Dont we need that anymore? :)