Rather than a heap, I recall Netty had a hash wheel timer[1]. Which should
be better performing than a heap. You could get clever by having
multiple heaps, segmented by orders of magnitude. For example wheel 1
could have < 1 minute, 2 < 1 hour etc. Netty uses a lot of short lived
timers and performs well.
[1]
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/util/HashedWheelTimer...
Obviously this uses some memory, but you could probably optimize it
somewhat to only work with Node instances.