Last Friday (May 29, 2015) I published a tweet teaser about @macintux and my work on Lager 3.x. We have been benchmarking the "final" product including all of the community PRs we have decided to merge for 3.0 and we achieved some really great results over the 2.x branch. Those graphs look like this:
https://www.dropbox.com/s/417ysstatybvtkd/log_1000.png https://www.dropbox.com/s/iwoz7r2s690itdr/tput_1000.png
Many had questions about how we achieved such a big improvement in throughput and latency. The secret is very simple.
- We tried to move some decisions about whether to do work earlier into the process.
- We moved a couple pieces of global state into ets.