WHY the major release?
Thumbor's storage and result storage all used synchronous interfaces. That's not an issue per-se, but it's not the proper way to use tornado.
Several users were having issues in production due to timeouts and broken requests.
We were at a cross-roads. Fix the issue in a "broken" way but without any breaking changes, or go with what the community feels is the right way for thumbor to go, while being incompatible with currently developed extensions.
We felt we needed to fix this in a way that felt "right". Hopefully we'll be more aligned with future evolutions of tornado.
With the help of the community we were able to fix this issue and make thumbor more robust, more scalable and more predictable.
Feedback on this is highly encouraged. Feel free to create issues if something is amiss.
WARNING
This version contains breaking changes. If you use your own version of a Storage or ResultStorage, all of those are async now and should return a Future. For more info, check the built-in one from thumbor's codebase.
BREAKING Changes
Changes
- Tornado updated to 4.1
- Better GifEngine error handling #448. thanks @masom
- Fixing error log on cache miss #453. thanks @dhardy92
- Meta now has frame count #451
- Https loader and strict https loader added #471. thanks @lukaselmer
Benchmark
4.0.0
Running 10s test @ http://127.0.0.1:8888/unsafe/300x300/s.glbimg.com/et/nv/f/original/2015/05/01/casamento-raphaeldias.jpg
40 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.42s 748.35ms 2.83s 84.03%
Req/Sec 0.22 0.95 9.00 95.83%
Latency Distribution
50% 2.79s
75% 2.80s
90% 2.81s
99% 2.82s
144 requests in 10.10s, 3.77MB read
Requests/sec: 14.26
Transfer/sec: 382.70KB
4.12.2
Running 10s test @ http://127.0.0.1:8888/unsafe/300x300/s.glbimg.com/et/nv/f/original/2015/05/01/casamento-raphaeldias.jpg
40 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.41s 449.85ms 3.46s 80.42%
Req/Sec 0.01 0.12 1.00 98.60%
Latency Distribution
50% 2.48s
75% 2.65s
90% 2.83s
99% 3.24s
143 requests in 10.07s, 3.75MB read
Requests/sec: 14.21
Transfer/sec: 381.29KB
5.0.0
Running 10s test @ http://127.0.0.1:8888/unsafe/300x300/s.glbimg.com/et/nv/f/original/2015/05/01/casamento-raphaeldias.jpg
40 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.16s 476.70ms 2.72s 83.54%
Req/Sec 0.04 0.20 1.00 95.73%
Latency Distribution
50% 2.30s
75% 2.43s
90% 2.56s
99% 2.70s
164 requests in 10.08s, 4.30MB read
Requests/sec: 16.27
Transfer/sec: 436.80KB