header background

LMAX Group blog - FX industry thought leadership

header background
  • Daily FX Market Commentary

    Good morning,   LMAX Close USDJPY 113.436 | EURUSD 1.1427 | AUDUSD 0.72456 | NZDUSD 0.66676 | USDCAD 1.31229 | USDCHF 1.00254 | GBPUSD 1.3099 |   LMAX Highs and Lows 5.00am GMT                                 High | Low EURUSD               1.14731 | 1.13944 USDJPY                 113.818 | 112.994 GBPUSD               1.31499 | 1.30794 USDCHF               1.00512 | 0.99885 AUDUSD              0.72729 … Continue reading Daily FX Market Commentary

  • Daily FX Market Commentary

    Good morning,   LMAX Close USDJPY 112.715 | EURUSD 1.14088 | AUDUSD 0.72059 | NZDUSD 0.66533 | USDCAD 1.30861 | USDCHF 1.00209 | GBPUSD 1.30046 |   LMAX Highs and Lows 5.00am GMT                                 High | Low EURUSD               1.14284 | 1.13912 USDJPY                 113.103 | 112.56 GBPUSD               1.30103 | 1.29861 USDCHF               1.00258 | 1.00122 AUDUSD              0.72502 … Continue reading Daily FX Market Commentary

  • Daily FX Market Commentary

    Good morning,   LMAX Close USDJPY 112.946 | EURUSD 1.13112 | AUDUSD 0.70726 | NZDUSD 0.65171 | USDCAD 1.31577 | USDCHF 1.00847 | GBPUSD 1.27663 |   LMAX Highs and Lows 5.00am GMT                                 High | Low EURUSD               1.13500 | 1.13131 USDJPY                 112.969 | 112.722 GBPUSD               1.28558 | 1.2767 USDCHF               1.00846 | 1.00608 AUDUSD              0.71335 … Continue reading Daily FX Market Commentary

  • Round trip fuzz tests

    Some cute round trip test tricks
    In the last post, we looked at layering our deserialization code to keep things simple. This time, we’ll enjoy the delightful testing benefits this effort yields.

    Round trip tests
    We can do a round trip test whenever we pair an interface with some IO in the following fashion:

    code{white-space: pre;}

    Some cute round trip test tricks
    In the last post, we looked at layering our deserialization code to keep things simple. This time, we’ll enjoy the delightful testing benefits this effort yields…

  • You might not need to make your serialization layer generic

    …indeed, your life might get simpler if you don’t.
    This post will talk through two examples where clever serialization would have been an option, but stupid alternatives actually turned out to be preferable.
    Example 1: An LMAX deployment …

  • Monitoring without polling

    We have recently added an extra (optional) call back to the disruptor library. This post will walk through one of our motivations for doing this: monitoring.
    Before we start – what are we monitoring, and why?
    At LMAX, the vast majority of our a…

  • Looking for heap distress

    ​​​​​Recently at LMAX Exchange we’ve had a couple of services suffer from memory leaks.
    In both cases, we noticed the problem much later than we’d like. One stricken application started to apply backpressure on (really rather important) u…

  • Leaping Seconds

    Just before New Year 2017 a leap second was inserted into Coordinated Universal Time (UTC). At LMAX Exchange we had some luxury to play with how we handled the leap second. January 1st is a public holiday, there’s no trading, so we are free to do recovery if so…

  • A performance mystery (part two)

    In part one, we discovered that our multicast receipt thread was being stalled by page faults.
    In part two, we’ll dig down into the causes of those page faults, and with some help from our friends at Informatica, get to the bottom of things.
    Sy…

  • A performance mystery (part one)

    We recently fixed a long standing performance issue at LMAX.
    The path we followed to fixing it was sufficiently windy to merit a couple of posts.
    In this first post we’ll define our issue and then attempt to figure out its cause.
    Problem Ident…

Previous Posts Next posts

Sign up for Global FX Insights, the daily market commentary from LMAX Group

Your information will not be distributed or shared with third parties