• Programming Guide
  • Api Documentation
  • OnixS CME iLink3 Handler for .NET Core, version 1.4.2
Show / Hide Table of Contents
  • Introduction
  • System Requirements
  • Getting Started
    • Error Reporting
    • Licensing
    • SBE Message
      • Tag-based Messaging
      • Message Fields
      • Repeating Groups
    • iLink 3 Session
      • Universally Unique Identifier
      • Establishing iLink3 Connection
      • Exchanging Messages
      • Message Sequence Numbers
  • Configuring the Handler
    • Configuration File Examples (XML or JSON)
  • Logging
  • Session Storage
    • File-Based Session Storage
    • Memory-based Session Storage
    • Asynchronous File-Based Session Storage
    • Pluggable Session Storage
  • Advanced Programming
    • Thread Safety
    • Session Initialization and Binding
    • Session States
    • Listening to Session Events
    • Handling NotApplied Messages
    • Handling Business Reject Messages
    • Automated Downloading of GTC and GTD Orders
    • Reconnection
    • Fault Tolerance
    • Understanding Send Latency
    • Strongly Typed Messages
  • Best Practices
    • Low Latency Best Practices
  • Glossary
  • Support

Understanding Send Latency

The overall latency of the <xref:OnixS.Cme.ILink3.Session.Send(OnixS.SimpleBinaryEncoding.IMessage)> method includes all latencies of all operations inside this method. The following sequence of operations are performed when the <xref:OnixS.Cme.ILink3.Session.Send(OnixS.SimpleBinaryEncoding.IMessage)> method is called:

  • Invocation of the OutboundSessionMessage or OutboundApplicationMessage event handler.
  • Writing necessary data (message content, timestamp, sequence numbers, etc.) to the session storage. For the File-Based Session Storage, it is a costly operation, and it can take tens of microseconds. For the Asynchronous File-based Session Storage, it is far cheaper because the actual writing is performed in a separate thread. And lastly, for the Memory-Based Session Storage it is a low-cost operation because data is stored in the memory, not in the file system. Please note that if the LogBeforeSending option is false, then the logging is performed after sending.
  • Invocation of the system send function. In practice, the latency of the system send function can be about 5-10 microseconds what depends on the size of send data, network workload, network software/hardware, etc. For example, you can significantly decrease this latency by using Solarflare network cards and the user-space "Onload" TCP stack implementation.
  • If the system send function fails, then the unsent message is stored in the sending queue for the subsequent sending by the sending thread.
In This Article
Back to top Copyright © Onix Solutions.
Generated by DocFX