Summer of Code 2006
OSDL is participating in Google's Summer of Code 2006 as a mentoring organization.
Prospective Mentors: If you work for or with OSDL on Open Source projects and would be interested in mentoring a student this summer, please email bryce @t osdl dot org.
Students: If you find an idea listed below that you like, we would encourage you to include the following in your proposal: Detailed description / design document, an approach, an approximate schedule, and brief description of past open source projects you've participated in.
For best results, read Drupal's How To Write A SoC Application and their SoC Student Requirements. Get started by signing up as a student for SoC.
Deadlines: Student applications open on May 1st and close May 8th. Final decisions by OSDL will be made by May 22nd for transmission to Google.
Project Ideas
Render Farm Simulator with NFSv4
Description: The NFSv4 project is adding powerful features such as delegation/callback that should make NFS connections work *much* faster. The synthetic testing done so far shows the benefits, but it would be much more convincing to show how it works with real workloads.
The film industry (DreamWorks, ILM, etc.) are heavy users of NFS for their render farms, so one interesting use case would be to create a mini-render farm, using POV-Ray, Blender, or other FOSS rendering tools.
This project's goals should include:
- Learn about the new NFSv4 features like delegation
- Create a daemon to run rendering jobs across multiple machines using NFS as the transport
- Experiment with different rendering cases, to find a set that stress NFS in interesting ways
- Compare performance when using NFSv3 vs. NFSv4, and when using various NFSv4 features like delegations, caching, etc.
- Package the tool so it can be reused easily by others (both for doing renders, and for testing NFS performance)
We can give you access to a number of x86 client machines to use when you're ready to test it out.
The daemon can be written in any commonly available Linux language, including compiled or scripted languages.
Mentors: Bryce Harrington (bryce @t osdl dot org)
NFSv4 Fault Recovery Experimentation
Description: A number of new features in NFSv4 improve its ability to deal with network instability. This project involves finding how well these new features work in practice.
There is a network emulation program, NetEm, that allows emulating variable delay, loss, duplication, etc.
The goals for this project should include:
- Learn NetEm and NFSv4
- Set up an NFSv4 server and client connected through the localhost port
- Identify "interesting" network conditions to test NFS, and the NetEm commands to simulate those conditions
- Create a bash script that puts the system in these different conditions and runs a user-specified workload on it, and prints a summary report
- Run this script to compare behavior of NFSv3 and NFSv4, and with various new NFSv4 options like kerberos, acl, delegation, etc. turned on and off
- Package the scripts to make them easy for other NFS testers to use.
Mentors: Bryce Harrington (bryce @t osdl dot org)
Open Test Framework
Description: Wrap tests to run in framework. Testing functionality on multiple distros. Migrating test results data to postgress. Break out code into modules.
Mentors: Craig Thomas (craiger @t osdl dot org)
PostgreSQL - TPC-App fair-use implementation
Description: Develop a TPC-App fair-use implementation for PostgreSQL and Geronimo. Repeat for every other database. Repeat for every other Java application server.
Mentors: Mark Wong (markw @t osdl dot org)
PostgreSQL - TPC-E fair-use implementation
Description: Develop a TPC-E fair-use implementation for PostgreSQL. Repeat for every other database.
Mentors: Mark Wong (markw @t osdl dot org)
PostgreSQL - DBT workload framework
Description: Develop a test framework for each DBT workload that can be used between kits.
Mentors: Mark Wong (markw @t osdl dot org)
Power Management for VA Architecture
Description: Starting from the abandoned "VACM" software, develop stand-alone tools to control and monitor power on VA servers. Within VACM, this is known as the VASH tool.
The utility should be able to:
- Turn on power
- Turn off power
- Query current power state
Prefer a Perl, Python, or C implementation.
Mentors: Kees Cook (kees @t osdl dot org)
Rapid Spanning Tree Protocol
Description: The Linux Ethernet Bridging project wants to change from an in kernel implementation of the older Spanning Tree Protocol (STP) to a user space implementation of the new Rapid Spanning Tree Protocol (802.1d standard).
I am looking for a new well written implementation that will respond to events from the kernel (over rtnetlink), and manage the state transitions of the bridge interfaces. I should have a demo of the event mechanism available soon.
There are existing documents and open source implementations that the developer is free to use as needed. The 802 standard is available for download. There is also a implementation at rstplib.sourceforge.net but it is messy and unmaintained and not really suitable as is. Other possible reference sources are the existing kernel implementation of STP, or the version of RSTP done for a old version of ucLinux.
The daemon should:
- be able to handle multiple bridges (or run multiple copies)
- work with existing command line tools
- have a small footprint to work on embedded devices (Linksys WRT54G)
- scale to 1000's of devices (bridging VLAN's)
A good test suite is also a important. It should be possible to interact with the daemon via dummy netlink interface and build a good unit test. I have a copy of the Interoperability Test Suite document from UNH, but the testing was done in 2005 and we may be able to get some code or scripts from them.
Prefer a C (or C++) implementation, but if will accept another commonly available Linux compiled language that will fit on embedded devices.
Mentors: Stephen Hemminger (shemminger @t osdl dot org)
SendPage enhancements
Description: Update the alphanumeric paging tool SendPage to follow a better Object-Oriented style, improve the modular design, update documentation, and clean up packaging.
SendPage is used for our infrastructure event reporting, but it could use to be cleaned up a little. This is mostly a Perl project. The specific goals would be:
- Update the SendPage modules to use a hash-by-name initialization and message-passing system instead of the current function-order implementation.
- Add POD documentation to all of the modules.
- Bring Debian (and/or Ubuntu) packaging up to modern SendPage versions.
Mentors: Kees Cook (kees @t osdl dot org)
Software Social Tagging Engine
Description: As part of the Open Source as Prior Art project, software is needed to serve as a prototype for a social tagging tool to help classify software. Possibly starting from the ccHost tool, extend the capabilities to allow for tagging at multiple layers.
Think of Freshmeat meets Flickr. Track software and software development through the use of social tagging.
The resulting software should be able to:
- Allow for arbitrary word and phrase tags
- Create new project areas to tag, with references to external sites
- Have multiple sub-sections within a project to tag
- Allow both "public" and admin tags
- Maintain information about date/times tags were added/changed
Prefer a Perl, PHP, or Python implementation.
Mentors: Kees Cook (kees @t osdl dot org)