Bug 1016000 - Implementation of object handle based gfapi extensions
Summary: Implementation of object handle based gfapi extensions
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: libgfapi
Version: pre-release
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ric Wheeler
QA Contact: Sudhir D
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-10-07 09:16 UTC by Shyamsundar
Modified: 2014-04-17 11:49 UTC (History)
2 users (show)

Fixed In Version: glusterfs-3.5.0
Clone Of:
: 1021857 (view as bug list)
Environment:
Last Closed: 2014-04-17 11:49:14 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Shyamsundar 2013-10-07 09:16:28 UTC
Description of problem:

gfapi: object handle based API extensions

There is an ongoing effort to integrate NFS Ganesha (
https://github.com/nfs-ganesha/nfs-ganesha/wiki ) with GlusterFS as one of
the file system back ends.

Towards this we need extensions to gfapi that can handle object based
operations. Meaning, instead of using full paths or relative paths from
cwd, it is required that we can work with APIs, like the *at POSIX
variants, to be able to create, lookup, open etc. files and directories.
Hence the objects are the files or directories themselves and we give out
handles to these objects that can be used for further operations.

The new APIs are implemented as glfs_h_XXX variants in the file
glfs-handleops.c to mirror glfs-fops.c style. The code leverages holding
onto inode references and doling these out as opaque/cookie type objects to
the callers, to enable them to be used as handles in other operations.

An fd based approach was considered, but due to the extra footprint that
the fd structure and its counterparts would incur, this was dropped to take
the approach of holding inode references themselves.

Tested by extending glfsxmp.c to invoke and exercise the added APIs, and
further tested with a reference integration of the same as an FSAL with NFS
Ganesha.

Initial code drop for the same can be seen here, http://review.gluster.com/#/c/5936/

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Anand Avati 2013-10-07 10:34:17 UTC
REVIEW: http://review.gluster.org/5936 (gfapi: object handle based API extensions) posted (#6) for review on master by Shyamsundar Ranganathan (srangana)

Comment 2 Anand Avati 2013-10-09 10:51:35 UTC
REVIEW: http://review.gluster.org/5936 (gfapi: object handle based API extensions) posted (#7) for review on master by Shyamsundar Ranganathan (srangana)

Comment 3 Anand Avati 2013-10-11 09:35:22 UTC
REVIEW: http://review.gluster.org/5936 (gfapi: object handle based API extensions) posted (#8) for review on master by Shyamsundar Ranganathan (srangana)

Comment 4 Anand Avati 2013-10-11 19:16:58 UTC
COMMIT: http://review.gluster.org/5936 committed in master by Anand Avati (avati) 
------
commit d573f170cf3305c066f8b191f872d2d2f22f2025
Author: R.Shyamsundar <srangana>
Date:   Mon Sep 16 16:39:24 2013 +0530

    gfapi: object handle based API extensions
    
    There is an ongoing effort to integrate NFS Ganesha (
    https://github.com/nfs-ganesha/nfs-ganesha/wiki ) with GlusterFS as one of
    the file system back ends.
    
    Towards this we need extensions to gfapi that can handle object based
    operations. Meaning, instead of using full paths or relative paths from
    cwd, it is required that we can work with APIs, like the *at POSIX
    variants, to be able to create, lookup, open etc. files and directories.
    Hence the objects are the files or directories themselves and we give out
    handles to these objects that can be used for further operations.
    
    This code drop is an initial implementation of the proposed APIs.
    
    The new APIs are implemented as glfs_h_XXX variants in the file
    glfs-handleops.c to mirror glfs-fops.c style. The code leverages holding
    onto inode references and doling these out as opaque/cookie type objects to
    the callers, to enable them to be used as handles in other operations.
    
    An fd based approach was considered, but due to the extra footprint that
    the fd structure and its counterparts would incur, this was dropped to take
    the approach of holding inode references themselves.
    
    Tested by extending glfsxmp.c to invoke and exercise the added APIs, and
    further tested with a reference integration of the same as an FSAL with NFS
    Ganesha.
    
    Change-Id: I23629c99e905b54070fa2e6565147812e5f3fa5d
    BUG: 1016000
    Signed-off-by: R.Shyamsundar <srangana>
    Reviewed-on: http://review.gluster.org/5936
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Anand Avati <avati>

Comment 8 Niels de Vos 2014-04-17 11:49:14 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.5.0, please reopen this bug report.

glusterfs-3.5.0 has been announced on the Gluster Developers mailinglist [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/6137
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user


Note You need to log in before you can comment on or make changes to this bug.