Threading Block Diagram
The diagram below shows the threading hand-over points in ClearConnect.
By default there are 12 I/O threads and x event threads.
Event threads
These are the "fission-core" threads and deal with notifying IRecordListener
instances with received events and encoding changes to IRecord
instances for sending to registered (potentially remote) observers.
The number of event threads is determined by the runtime CPU core count:
- small (less than 8 processors) = 4
- medium (8 to 32 processors) = processors / 2
- large (over 32 processors) = 16
These can be overridden with the system property dataFission.coreThreadCount
I/O threads
The I/O threads are divided into TCP frame reading and writing (this is to ensure TCP frame activity is as fast as possible) and TCP received frame decoding.
The number of I/O threads is determined by the system properties tcpChannel.readerThreadCount
and tcpChannel.writerThreadCount