GSOC 2012/Student Application arunscaria91/a binding translator for GlusterFS&action=edit

From FedoraProject

Jump to: navigation, search


== Contact Information ==

Name  : ARUN SCARIA

Email Address  : arunscaria91@gmaiI.com

Telephone  : +91-8089528527

Blog URL  : http://r00t2scari.Wordpress.com

Freenode IRC Nick : scari

Resume  : link to resume[1]



Why do i want to work with fedora project?

I am a last year engineering undergraduate from India and I would like do something innovative through GSOC. Specifically l’m more interested at system level programming and security based applications. Fedora, being a pioneer in the field of system level software. I strongly believe that working with the fedora team can bring out my caliber and can improve my skills. I consider this opportunity to work with fedora/Redhat team as the best opportunity to grab new skills and knowledge on system level design and programming.

Last year I participated GSOC under fedora which was a life changing experience. I am also aiming to continue my contribution to red-hat as an employee or intern or as a opensource contributor.


Do I have any past involvement with fedora or another open source project?

Yes. Last year I participated GSOC under fedora for the project "SUDO support in SSSD" under the mentoring of Mr. Stephen Gallagher. Check [2]

I successfully completed that project with the project goals I had in the beginning of the project. After GSOC I could continue my contribution to the project. Also the sssd team assigned one of the employees in their team to support the sudo feature. And my duty turned to help him in some situations. But after sometime, I found it was difficult to manage both SSSD and my academic project. So the frequency of contribution became low. But this year I will be graduated by the end of GSOC 2012. So I can continue my support to gluster.

This is because I am really interested to be hired at GlusterFS. I attended the interview happened in my college conducted by GlusterFS, Banglore, Indiia and I could qualified for the final round and HR interview. But due to unknown reasons they didn't offer the position. I believe its because of the discontinuity in the previous SSSD project. So I can assure you that this won't happen again. Because I want a job at GlusterFS badly.


Did you participate with the past GSoC programs, if so which years, which organizations?

As mentioned above I have participated in GSCO 2011 under fedora for the "SUDO support in SSSD" project.


Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s), you are interested with?

I would like to continue my contributions as I would like to join GlusterFS after my graduation.


Why should we choose you over other applicants?

I am self motivated and a good learner with skills in programming. Also passionate about open source philosophy.

Above all, I am interested to work in GlusterFS even after the GSOC either as a contributor or as an employee. I believe you won't get any other application with such a strong desire to work in GlusterFS as a career path. Also,

     I am good at C/C++, Python, Java etc. Find my resume at [3]
     I am good at system level programming and Linux libraries.
     I am a quick learner.

Project Prorposal:

* An overview of proposal:

GlusterFS is a scale-out NAS file system with a stack-able user space design without compromising performance. As a high performance system it should be open for extension and support more programming environments. As a fastly growing data-storage solution the GlusterFS needs feature like multi programming language support.

This project implements a language binding translator that can take request from various programming languages. For each basic operations in GlusterFS(based on FUSE) for e.g. open, read, setxattr the translator would need to have a way to call out to a foreign-language function.


* The need it fulfills:

A language binding translator would greatly increase the number of programmers who would be able to more easily extend GlusterFS. The GLuster can support more programming languages other than using the native C based libglusterfs. This idea can popularize the GlusterFS among programmers who use dynamic programming languages and languages other than C.


* Relevant experience I have:

Yes. Last year I participated GSOC under fedora for "SUDO support for SSSD". I completed my requirements within GSOC. I contributed to the project for 3-4 months after the GSOC. But I couldn't continue contribution after 3 or 4 months, due to my over loaded academic pressure and main project at college. But I will be graduated by end of this years GSOC, and I won't have any academic pressures anymore. Also I am planning to join GlusterFS at Banglore, India. Only because of Gluster and Redhat is an amazing platform.

Also my main project was in python and it is my favorite dynamic programming language. I am proficient in C/C++ and Linux too.

* How do you intend to implement your proposal:

My plan to implement a binding translator from python to GlusterFS providing the POSIX file system calls that GlusterFS already offer. For this project a python module is implemented which creates an abstraction layer of the inner workings of the GlusterFS.

The translator must bind all operations (like create, open, readdir, read, setxattr etc) provided by libglusterfs.so. Also it should not change the actual architeture of GlusterFS and python programmer should be able to connect this one in the simpliest way possible. His code must be able to manipulate all arguments necessary, without any limitation.

So, for each operation type (e.g. open, read, setxattr) the translator would need to have a way to call out to a python function, and that function would need a way to call in e.g. to call STACK_WIND and invoke the next translator.

Ideally it would also be able to do things like get/set context on file descriptors and inodes, and handle non-I/O-path calls like reconfigure.


* Final deliverable of the proposal at the end of the period:

The final product is python module that binds all the functions implemented by libglusterfs and can be used by the python programmer by importing it. He can access and manipulate the data in GlusterFS Posix brick using these modules bypassing the FUSE requests.


* A rough timeline for your progress:

+) April 23rd to May 21st (Community bonding period):
      Interact with the GlusterFS project community, learn documentation and source code.
      Interact closely with the project mentor to get into the specific details of the project. 
      Generate design documents.
+) May 21st to May 27th (1 week): Set up all the required tools and code base. Make abstract code for the module.
+) May 28th to June 10th (2 weeks): Complete binding of most important operations create, open, readdir, read, setxattr provided by libglusterfs.so
+) June 11th to June 24th (2 weeks):  Handle errors and implement error recovery  routines.
+) June 25th to July 8th (2 weeks):  Complete goals set for mid-evaluation.
+) July 9th to July 15th (1 week): Complete all mid-term evaluation related formalities
+) July 16th to July 29th (2 weeks):  Complete binding of all functions necessary for the translator.
+) July 30th to August 12th (2 weeks): Write and run test cases for all features added to the translator. Also, Document the module in the appropriate wiki.
+) August 13th to August 19th (1 week): Perform a general code clean up and prepare for final evaluation.
              My plan is to continue contributing to the project post GSoC.


* Any other details you feel we should consider

More than GSOC I am expecting an career opportunity from GlusterFS. Iam going to get an interview call from Gluster after my graduation. The developer who took my interview guaranteed me that they will call me after my graduation. This GSOC will be a wonderful opportunity for me to familiarize the Gluster development & to contribute something valuable to the community even before I start my work there, Which is really thrilling. :)