Saturday 11:30 a.m.–noon

Gunicorn, the thundering herd and other concurrency programming challenges (en)

Benoit Chesneau

Audience level:
Intermediate
Category:
Network Programming / ネットワークプログラミング

Description

Gunicorn design has not changed much since the project started. With the increasing number of cores and new concurrency solutions that appeared in python, it is about time to face to new challenges. This talk will show how we are solving the thundering herd problem and how most of our concurrency needs in Python 3 or 2 are now covered.

Abstract

[Gunicorn](http://gunicorn.org) design has not changed much since the project started. With the increasing number of cores and new concurrency solutions that appeared in python, it is about time to face to new challenges. This talk will describe the design of Gunicorn, the different solutions we provide to handle more and more concurrent connections. How we fix the [thundering herd problem](http://en.wikipedia.org/wiki/Thundering_herd_problem), what solutions are possible and what we finally adopted. It will also show how we improved the support of Python 3 with the addition of the workers gaiohttp and gthreads and how you can use them. While we are here, the talk will recapitulate the different strategies you have to handle the connections coming to your application using the different workers depending on your concurrent programming framework or platform. It will finally highlight the recent changes in the support of different Python web frameworks.