Outreach Program for Women and GSoC 2014 results

Monday, 25 August 2014

We had the opportunity to participate in the Google Summer of Code (GSoC) for the third time and would like to share the resulting open source activities.

While many GSoC participating organizations focus on a single ecosystem, we have a variety of projects that span multiple programming languages and communities. And for the first time, we participated in Outreach Program for Women (OPW) — an organization that focuses on helping women get involved in open source.

In total, we worked on nine successful projects with nine amazing students over the summer.

Outreach Program for Women projects

Apache Mesos CLI improvements
Isabel Jimenez worked with her mentor Ben Hindman to add new functionality to the Mesos CLI interface. You can read about the work via her blog posts over the summer and review commits associated with the project.

Apache Mesos slave unregistration support
Alexandra Sava worked with mentor Ben Mahler to add the ability to unregister a slave and have it drain all tasks instead of leaving tasks running underneath it. Check out ReviewBoard to look at the commits that have been merged already, and take a look at her blog posts that summarize her experience.

Summer of Code projects

Use zero-copy read path in @ApacheParquet
Sunyu Duan worked with mentors Julien Le Dem and Gera Shegalov on improving performance in Parquet by using the new ByteBuffer based APIs in Hadoop. As a result of their efforts, performance has improved up to 40% based on initial testing and the work will make its way into the next Parquet release.

A pluggable algorithm to choose next EventLoop in Netty
Jakob Buchgraber worked with mentor Norman Maurer to add pluggable algorithm support to Netty’s event loop (see pull request).

Currently when a new EventLoop is needed to register a Channel, EventLoopGroup implementations use a round-robin-like algorithm to choose the next EventLoop. Since different different EventLoops might become busier than others over time, the support for pluggable algorithms to increase performance was needed.

Various compression codecs for Netty
Idel Pivnitskiy worked with mentor Trustin Lee to add multiple compression codes (LZ4, FastLZ and BZip2) to the Netty project.

Compression codecs will allow cutting traffic and creating applications, which are able to transfer large amounts of data faster and more effectively.

Android support for Pants build
Mateo Rodriguez added Android support to the Pants build system (see commits) so Pants can build Android applications (APKs) on top of the many other languages and tools it supports.

A pure ZooKeeper client for Finagle
Pierre-Antoine Ganaye was mentored by Evan Meagher to add a pure ZooKeeper client to Finagle to improve performance (see project).

An SMTP client for Finagle
Lera Dymbitska worked with mentors Selvin George and Travis Brown to add SMTP protocol support to Finagle to improve performance (see pull request).

Since Finagle strives to provide fully asynchronous protocol support, baking in SMTP support was required instead of using third-party libraries (such as javamail and commons-email) which are synchronous by design.

Analyze Wikipedia using Cassovary
Szymon Matejczyk worked with mentors Pankaj Gupta and Ajeet Grewal to enable Cassovary to analyze Wikipedia data.

The result of this work improved the performance of Cassovary when dealing with large graphs. See the commits associated with the project to see how it was done.

Summary

As part of GSoC, students and mentoring organizations receive a stipend. We are donating our portion of the stipend to the Outreach Program for Women to support their mission of involving more women in open source communities. In the end, we really enjoyed the opportunity to take part in Google Summer of Code and Outreach Program for Women. Thanks again to our nine students and mentors. We look forward to the next time.