Table of Contents
Affinity mask settings
The Antenna allows users to change affinity masks for threads with different purposes. This allows the application to run functionality on a critical path at dedicated threads/CPU cores. It results in response time spreading reduction and helps to keep it minimal.
FIX Antenna C++ supports supports affinity masks for up to to 64 cores on Windows due to system limitations, and up to 256 cores on Linux.
FIX Antenna C++ threads:
- dedicated threads for session processing
- threads pool dedicated to messages processing that is sharable between all sessions
- auxiliary antenna threads
- Note: uncontrollable threads, e.g some timers
...
Linux thread name | FIX Antenna thread name | Description | |
---|---|---|---|
1 | FA: Timer | Timer | Several timer threads can be used for:
|
2 | FA: Worker_0 ... FA: Worker_N | Worker_0 | Several threads. Session processing (receive/send) threads from thread pool used by EVEN and DIRECT_SEND modes and configuring by NumberOfWorkers parameter |
3 | FA: Dispacher | Dispacher | The thread that is listening and handling incoming and outgoing connections. |
4 | FA: Runner | Runner | API class for user-defined tasks(name and affinity could be changed by a user). |
5 | FA: AbsolutTime | AbsolutTimer | Public timer scheduling tasks. |
6 | FA: ExlusiveRec | ExlusiveReceiveTaskDedicatedWorker | A dedicated thread for receiving in aggressive mode. |
7 | FA: NewInLinkTa | NewInLinkTask | The thread that accepts a new connection. |
8 | FA: ExlusiveSen | ExlusiveSendTaskDedicatedWorker | A dedicated thread to send in the aggressive mode if sending try in the current thread has failed. |
9 | FA: AsyncConnec | AsyncConnectTask | Asynchronous connection to the initiator. |
10 | FA: DBLDispache | DBLDispacher | The thread that is listening and handling incoming and outgoing connections for Myricom DBL network cards. |
11 | FA: Log4cpp_TCPAppender | Log4cpp_TCPAppender | TCP logging thread (TCP appender for Log4Cplus logger). |
12 | FA: ServiceStatusReporter | ServiceStatusReporter | Replication client's service thread which starts when required to report service status to the OS and stops immediately after that. |
13 | FA: MsgSender | MsgSender | API and testing class(name and affinity could be changed by a user). |
14 | FA: DBLIncomingStream | DBLIncomingStream | DBL incoming data thread. |
15 | FA: DBLOutgoingStream | DBLOutgoingStream | DBL outgoing data thread. |
16 | FA: DBLCleanup | DBLCleanup | DBL service thread. |
...