MicBrain / GSoC_CernVM-FS

The purpose of this proposal is to suggest an implementation of new ideas and manipulation of some portions of previously written code. The methodology followed is to propose new techniques that will be useful for making CernVM-FS a better, stronger and faster product.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTTP/2 Support for CernVM File System

alt tag

Google Summer of Code Project

Google Summer of Code is an annual international software engineering program that encourages university and college students aged 18 or over to participate in open-source development. Accepted students can develop various software-coding projects under the guidence of their mentoring organizations. This year I was selected to participate in Google Summer of Code 2015 program with the SFT (Software for Experiments) group, which is a part of CERN (European Organization for Nuclear Research). My proposal, called "HTTP/2 Support for CernVM File System", is about using the upcoming HTTP/2 technology to add new interesting functionalities to CernVM-FS such as connection multiplexing and fixing head-of-line blocking. I am planning to add support for HTTP/2 in the CernVM-FS network code and re-arrange the code for data replication to use a multiplexed connection instead of parallel connections.

What is CernVM-FS?

The SFT implements and maintains common scientific software for the physics experiments. CernVM File System (CernVM-FS) was created by SFT group chiefly for the delivery of experiment software stacks for the Large Hadron Collider (LHC) experiments at CERN. It is used in the context of large-scale scientific computing applications that use tens of thousands of individual computers to process very large data sets in reasonable time. The contribution from different developers worldwide make this software system more advanced and widely functional. The following description of CernVM File System is taken from CERN SFT GSoC 2015 Ideas page.

The CernVM File System (CernVM-FS) is a read-only file system that is optimized for the distribution of software to world-wide distributed computing infrastructures. The access to the software is provided by CernVM-FS, a global and versioning file system that uses HTTP for data transfer. The file system content is installed on a central web server from where it can be mirrored and cached by other web servers and web proxies. File system clients download data and meta-data on demand and cache them locally. Data integrity and authenticity is ensured by the use use cryptographic hashes and digital signatures. CernVM-FS is used, among others, by the LHC experiments for the distribution hundreds of millions files and directories of experiment software onto tens of thousands of worldwide distributed nodes.

Full Documentation

See the Wiki for my proposal, full documentation, examples, operational details and other information.

See the Documentation part for more information about the documentation and of my project and observations that I have made during development stage.

Bugs and Feedback

Please do not hesitate to contact us if you have any questions about this specific project and the program in general. For bugs, questions and discussions please use the Github Issues. For communication please contact:

About

The purpose of this proposal is to suggest an implementation of new ideas and manipulation of some portions of previously written code. The methodology followed is to propose new techniques that will be useful for making CernVM-FS a better, stronger and faster product.

License:Apache License 2.0


Languages

Language:C 45.6%Language:C++ 18.4%Language:Shell 9.4%Language:HTML 8.8%Language:Makefile 8.4%Language:Groff 4.0%Language:Perl 2.2%Language:DIGITAL Command Language 0.9%Language:CMake 0.8%Language:Python 0.6%Language:Assembly 0.4%Language:Ada 0.1%Language:Pascal 0.1%Language:PHP 0.1%Language:C# 0.1%Language:Batchfile 0.1%Language:CSS 0.1%Language:Visual Basic 0.0%Language:Java 0.0%Language:Perl 6 0.0%Language:JavaScript 0.0%Language:Awk 0.0%Language:Objective-C 0.0%Language:CLIPS 0.0%Language:SourcePawn 0.0%Language:SAS 0.0%Language:Module Management System 0.0%