2
CrossFix highlights Latency and Throughput Zero object allocation/garbage collection in steady state and absence of protocol errors Lock free, zero copy, small CPU cache footprint Ultra-low latency at mean and tail percentiles – 400ns latency for a typical FIX ExecutionReport message from client code to NIC driver at 50th percentile and sub-500ns for 99.9 percentile; 550ns latency from NIC driver to client code at 50th percentile and 700ns for 99.9 percentile* Maximum sustainable send throughput 2,669,000 msgs/sec for a typical FIX ExecutionReport; receive throughput 2,213,000 msgs/sec* Features Strongly-typed Message API, all fields are serialized or parsed in session code, thus avoiding hidden latency of second-pass parsing Message, session API/session configuration optimized for migration from QuickFIXJ with few API exceptions in latency-sensitive areas Written in Java, Java NIO rewritten as native library to avoid locking and object allocation Optimized for Kernel-bypass network libraries, tested with latest SolarFlare/OpenOnload Client has an option of retaining full control of threading with the ability to busy-spin and/or affinitize send and/or receive threads, as well as utilising out-of-the-box threading strategies, e.g. thread-per-session Session sequence numbers and send/receive FIX log persistence using memory-mapped files Full support for FIX protocol versions from 4.0 to 5.0SP2 Support for start/stop time scheduling Tested on Linux and Windows * On Linux 3.16.7 kernel configured for low-latency, Java 1.7.0_72, Intel Core i7-4790K CPU @ 4.40GHz, SolarFlare SFN5122F/OpenOnload v4.4.1.1017

CrossFIX datasheet

Embed Size (px)

Citation preview

Page 1: CrossFIX datasheet

CrossFix highlights

Latency and Throughput

✔ Zero object allocation/garbage collection in steady state and absence of protocol errors

✔ Lock free, zero copy, small CPU cache footprint

✔ Ultra-low latency at mean and tail percentiles – 400ns latency for a typical FIX

ExecutionReport message from client code to NIC driver at 50th percentile and sub-500ns

for 99.9 percentile; 550ns latency from NIC driver to client code at 50th percentile and

700ns for 99.9 percentile*

✔ Maximum sustainable send throughput 2,669,000 msgs/sec for a typical FIX

ExecutionReport; receive throughput 2,213,000 msgs/sec*

Features

✔ Strongly-typed Message API, all fields are serialized or parsed in session code, thus

avoiding hidden latency of second-pass parsing

✔ Message, session API/session configuration optimized for migration from QuickFIXJ with

few API exceptions in latency-sensitive areas

✔ Written in Java, Java NIO rewritten as native library to avoid locking and object allocation

✔ Optimized for Kernel-bypass network libraries, tested with latest SolarFlare/OpenOnload

✔ Client has an option of retaining full control of threading with the ability to busy-spin and/or

affinitize send and/or receive threads, as well as utilising out-of-the-box threading strategies,

e.g. thread-per-session

✔ Session sequence numbers and send/receive FIX log persistence using memory-mapped files

✔ Full support for FIX protocol versions from 4.0 to 5.0SP2

✔ Support for start/stop time scheduling

✔ Tested on Linux and Windows

* On Linux 3.16.7 kernel configured for low-latency, Java 1.7.0_72, Intel Core i7-4790K CPU @

4.40GHz, SolarFlare SFN5122F/OpenOnload v4.4.1.1017

Page 2: CrossFIX datasheet

Latency benchmarks

1) ExecutionReport message serialization latency, 1000 msg/sec

2) ExecutionReport send/receive latency excluding network stack latency, 1000 msg/sec

3) ExecutionReport send latency including network stack (OpenOnload) latency, 1000 msg/sec

4) ExecutionReport receive latency including network stack (OpenOnload) latency, 1000 msg/sec