channelaccess/ca

Retire LMAX Disruptor

Closed this issue · 0 comments

Reasons:

  • I have not been able to measure any performance benefit. Premature Optimization ? A BlockingQueue is more flexible and in the CA usage scenario offers comparable or better performance.
  • the old disruptor implementation uses a thread per channel monitor and is therefore not scalable.
  • it considerably complicates the design creating a significant cognitive learning curve for any new developers who come along.
  • adds extra library dependencies.
  • it seems hard to get it to shut down cleanly without leaving dangling threads.