Experience Report: Developing High Performance HTTP/2 Server in Haskell
While the speed of the Internet has been increasing,
HTTP/1.1 has been plagued by
head-of-line blocking, low concurrency and redundant headers.
To solve these problems, HTTP/2 was standardized.
This paper summarizes our experience implementing HTTP/2 in Haskell.
We found several techniques to improve the performance of
the header compression
and identified a suitable data structure for HTTP/2 priority.
Also, we showed that Haskell lightweight threads
are useful for HTTP/2 where
the common tactics of one lightweight thread per connection cannot be used.
The HTTP/2 implementation of Warp,
the popular HTTP server library in Haskell,
ultimately provides better throughput than its HTTP/1.1 counterpart.
Thu 22 Sep
|14:00 - 14:25|
|14:25 - 14:50|