-
-
Notifications
You must be signed in to change notification settings - Fork 605
Google Summer of Code 2015
For this year, we will be accepting applications for both OSv itself, and Seastar, our newly released framework for writing asynchronous and non-blocking applications. If you want to know more about Seastar, take a look at seastar's website. Note that for development simplicity, much of seastar's functionality is available on Linux. If you select a Seastar project, chances are you can code most of your project without using OSv at all. You will, however, be required to demonstrate your final deliverable running on OSv.
Seastar is a novel framework, based on future and promises, asynchronous programming, and which heavily uses C++14. If you submit an application for Seastar, you will have to demonstrate that you are familiar with future and promises and assynchronous programming. You don't have to demonstrate expert levels, so if you are interested in the general topics but doesn't quite grasp the fundamentals, don't worry: feel free to read about it, go through the code, and drop questions at the mailing list. But we expect all of that to happen before the selection deadline.
Currently the Seastar networking stack supports IPv4 only. The project will extend it to support IPv6 packets and IPv6 configuration protocols.
Required skills: ipv4, ipv6, general networking, C++14.
Difficulty: Medium
Add support for multiple NICs in the same seastar application, including routing.
Non Volatile Memory Express (NVMe) is a new storage technology for accessing high performance solid-state drives (SSDs). NVMe features include strong support for kernel bypass technologies and excellent multi-core support.
Seastar is a user-space server application framework that achieves high performance via a share-nothing SMP model and using kernel bypass for I/O.
As such, the two technologies are well suited for each other. The student will develop an NVMe driver for seastar and measure its performance on cloudius-provided hardware.
Required skills: device drivers, C++14.
Difficulty: Medium
We would like to have applications that demonstrate the potential for performance and scalability of the seastar framework.
We currently have a version of memcached and a simple httpd that serves requests from memory. Both perform better than their standard counterparts.
Possible ideas include: extending httpd to be a fully-featured http server, ... , or coming up with an application on your own. A streaming server, a proxy, or anything that is expected to handle an abnormally high number of transactions.
Please be as descriptive as possible. Your proposal should include:
Difficulty Level: application-dependent
Skills required C++14 + other application-dependent.