Some of this is a bit dated. It looks like it was written in late 2009, judging by the first comment. For example, IO loop timers are now stored using a heapq[1] instead of a sorted list, and many of the other issues have been similarly addressed over the last year and a half.
Still, this is a good general overview of Tornado's internals.
[1] https://github.com/facebook/tornado/commit/b6c4d6d20196fa4fe...