GSoC week #13

Posted by Gábor Molnár on September 15, 2013

This is the summary of the 13. week of my Google Summer of Code project: HTTP/2 prototype server implementation in node.js.

This week was about making node-http2 fast, and starting work on a new project: http2-testpage.

It all began with a GitHub issue opened by Tatsuhiro Tsujikawa (creator of spdylay and nghttp2). It took lot of time to fix it, but then I was so deep into this performance optimization thing that I continued with other improvements. The optimizations were all based on CPU profiling data collected using node-webkit-agent.

The result is that it now takes 2 seconds to serve 600 small parallel request from the same client, while it took so long before that I could not even wait for it to complete. It's great improvement, but I still plan to further optimize this, since there's still room for improvements. I also plan to post about the lessons learned during the process sometime next week.

Other than that, I started http2-testpage. It's a tool that injects intentional failures into HTTP/2 connections to test clients' reaction. The next week will be dedicated to working on this.

As usual, the latest code is published on npm (npm install http2 and npm install http2-testpage). The hosted version of the docs and the prototype public server was updated as well.