From Fedora Project Wiki
(Created page with "=Integrate Proxy Settings and Network Connections(Locations)= {{:GSOC_2012/Student_Application_bluezd}} === Proposal Description === Synopsis: I will implement the writeback ...")
 
Line 61: Line 61:


=== Have you communicated with a potential mentor?  If so, who? ===
=== Have you communicated with a potential mentor?  If so, who? ===
Mentor  : Tao Peng
Yes, he is [[User:Bergwolf]]


[[Category:Summer_coding_2012]]
[[Category:Summer_coding_2012]]

Revision as of 16:16, 1 April 2012

Integrate Proxy Settings and Network Connections(Locations)

Contact Information

  • Email Address: bluezhudong@gmail.com
  • Telephone: +8613840848540
  • Blog URL: http://bluezd.info
  • Freenode IRC Nick: bluezd

NOTE: We require all students to blog about the progress of their project time to time.

You are strongly encouraged to register on the Freenode network and participate in our IRC channels. For more information and other instructions, see:

https://fedoraproject.org/wiki/GSOC_2012

Please answer following questions.

Why do you want to work with the Fedora Project?

  • I am a fedora user,I use the fedora 15 as my Desktop os now.
  • The Fedora Project is a worldwide community,I am eager to participate it and make contribute to it.
  • I have great interesting in opensource,especially Fedora Project.

Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?

  • I am intern working in Redhat as a kernel-qe for almost one year,I test/report many bugs and write a large number of automatic testcases on RHEL.On the other hand I also read the kernel source code,then write some related patch to test the kernel.

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

  • no,I have never participated with the past GSoc before.

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

  • Yes,Of course.I am crazy interested in Linux kernel,filesystem,Power-Management,Timer,Interrupt,etc.I am looking forward to submit patch to the fedora-devel. I think I can contribute to fedora project according to my knowledge.

Why should we choose you over the other applicants?

  • I have knowledge of Linux and the linux kernel.I am familiar with Filesystem,USB driver,Power-Management,Timer,Interrupt,Mem,etc.
  • I have experience analyzing and debugging Linux kernel source code,I can write some related kernel module by myself.
  • I experience working in OpenSource.

Proposal Description

Synopsis:

I will implement the writeback mechanism for nfs during the summer,I will spend 8 hours a day to work for my project at least.


Biograph:

I am a student from DaLian,China(timezone:GMT+8),23 years old,I am crazy about the OpenSource especially the Linux kernel.


Project:

NFS only supports write through cache based on fscache/cachefiles,the goal is adding a new feature that implement a writeback mechanism for nfs.


Profit for writeback mechanism:

Writeback cache to speed up write intensive clients. Writeback cache improve performance, because a write to the local cache is faster than to normal remote server through the network and also reduce network loading by diverting repeat writes to local storage. Writeback cachereduces the number of write operations to the remote server.


Experience:

I am good at C/shell Programming and familiar with the Linux kernel/nfs. I worked at redhat for almost one year and write many testcases(C && shell),I have experience working for OpenSource. I am familiar with extX/NFS filesystems and know the implementation of it by reading the source code.So I am very familiar with the mechanism of cache (indoe cache,dentry cache,address_space).I also have the experiecnce of developering the kernel module.


Implementation:

1. First I think I need to read the nfs,fscache and cachefiles source code and familiar with the fscache APIs,such as fscache_read_or_alloc_page,To figure out the implementation of the nfs make use of the FS-cache facilities.

2. Then investigate nfs fscache and cachefiles implementation and have a knowledge of write through.

3. Knowledge the difference between the write-through cache and write back cache,Familiar with the write back mechanism.

4. At last modify some related modules(list blow) to add some necessary APIs to implement the write back cache without breaking the NFS specific close-to-open semantics.This step is devided into some clear steps.My efforts will be separated into several tasks to complete.

  1) NFS:implement the front-end APIs,nfs could use the APIs to cache files on      local disk through write back mechanism.
     Add some necessary APIs into NFS:
     * cache the "writes" locally
          eg:add API into nfs_writepage(),when client generate a write request,then nfs invoke the fscache API to cache the data of the file from the page cache.
      *modify the locally cached file
          eg:add API info NFS, when client modify a file (which is cached locally by last step),so need to provide some APIs to make client just modifyting the locally cached file instead of the original file which locates in remote server.
  2) Fs-cache:implement the back-end APIs
     Modify the fs-cache module to implement the APIs which are added in NFS.
  3) Cachefiles: caching the page in local disk
     Also need add some functions into this module to provide a interface to fs-cache.The fscache could use this interface to cache files.
  4) At last Need to add the sync mechanism to sync with original file which locate in remote server.
     when client finished modifying the file,the cache will sync with the file asynchronously which locates in remote server.

Have you communicated with a potential mentor? If so, who?

Yes, he is User:Bergwolf