send messages using a lmax disruptor instead of a blockng queue
| This gives a significant performance increase in highly multithreaded jvms. | http://lmax-exchange.github.io/disruptor/ | | The lmax disruptor's ringBuffer size is initialised to 16k. | Rationale here is that statsd msgs are short strings, and sending 10k/s is a normal use-case. | If the Handler thread fails to send out the udp packets fast enough | (given it also squashes statsd messages into available MTU space) | and the ringBuffer becomes full then new statsd messages will be dropped and | a InsufficientCapacityException passed to the exception handler… | | Exceptions from the lmax disruptor and handler are passed through to the exception handler. | Throwables from the lmax disruptor are logged as SEVERE.
This branch is based off bugfix/vanilla-statsd-time-semantics which includes the commit in https://github.com/indeedeng/java-dogstatsd-client/pull/8