Earlier this week, Grant Klopper from The Guardian upgraded part of their news website from Play 2.2 to Play 2.3.  Shortly after, he noticed and tweeted about a significant change - response times and memory usage had both dropped by a factor of three. A few days later, he tweeted “I shut down 2/3 of the servers and got CPU back to where it was 2 days ago.”

Clearly there had been a major performance improvement from Play 2.2 to 2.3 that had allowed the Guardian to turn off two thirds of their servers for this site!  On the Play team we were obviously excited, but also a little cautious.  While we had put significant efforts into improving performance in Play 2.3, we never expected the gains we had implemented to be that much.

After talking to Grant and looking at The Guardian’s source code (which they’ve publish as an open source repository on GitHub), we soon established exactly where the performance gain came from.  It had not come from anything that the Play team at Typesafe had done, but rather was an improvement submitted by Play community member Matthew Barlocker from Lucidchart.

Matthew had initially raised an issue on the Play issue tracker pointing out that there were some performance issues with Play’s template support.  At the time, our performance work was focussed in other areas of Play, primarily in ensuring the Java API was on par with the Scala API, and it didn’t appear to us at that time that this issue would cause major problems for a majority of Play users.  So we labelled the issue as a community issue, a label that we use to signify that a particular issue is not something that is in our priorities, but that we’ll accept a pull request for if someone in the community implements it themselves.

Before long Matthew analysed and implemented a fix for this himself, submitting a pull request with the change, which we gladly accepted.  And because of Matthew’s contribution, The Guardian is now able to use significantly less hardware to serve their news website. Matthew has written a blog post outlining how he diagnosed and fixed the issue.

Although we at Typesafe invest a lot into improving and maintaining our software products, we would not be where we are today without the contributions of our community.  Many of the features, improvements and bug fixes that you rely on today in the Typesafe platform have been contributed by the community, from simple documentation updates, to major features and performance improvements like Matthew’s.  

Play 2.3 alone was contributed to by over 150 members of the community.  This goes to show one of the major benefits of open source software; it’s not just a single vendor writing software and deciding what should be prioritised, it’s a community that’s driving the software forward according to the communities own demands and needs.

 

Share


Discuss


View All Posts or Filter By Tag


Event

Reactive Summit 2016

2016 MICROSERVICES. FAST DATA PIPELINES. DISTRIBUTED SYSTEMS.
Austin (TX) - October 4-5

Ebook

Reactive Microservices Architecture

by Jonas Bonér

Ebook

Developing Reactive Microservices

by Markus Eisele

Report

Going Reactive 2016

How Microservices & Fast Data are driving adoption of Reactive systems