We have a problem. A good ol’ fashioned ringbuffer getting full and dropping messages problem. Brilliant, this is definitely what one wants to happen in their Itch market data feed in a production environment. You know, the delta stream where we broadcast every price change and trade to clients? The one where they expect low […]
LMAX Exchange Staff Blogs
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…
…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 …
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…
​​​​​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…
Previously we’ve talked about how we use Nagios / Icinga for three broad types of monitoring at LMAX Exchange: alerting, metrics, and validation. The difference between our definitions of alerting and validation is a fine one and it more has to do with the impo…
At LMAX Exchange we use LVM for snapshotting volumes for two use cases 1. Take a snapshot of a slave database so it can catch up quickly while the work happens on the snapshotted volume. 2. Backups in case we need to roll back. Every now and then in our CI environment as we soak […]
At LMAX Exchange Nagios is one of our essential tools for monitoring and verifying the operation of our systems. We use it for three distinct purposes. Alerting when things break. Recording trends so that we can predict when problems will occur and then mitigate them. Using Nagios to verify the overall structure of our environments. […]
Building great stuff fast I’ll be writing some posts over the coming weeks about how we run our technology department including the processes and procedures we use to keep moving fast but continue to work within our regulatory constraints and the demands we put upon ourselves for operational excellence. This post will be covering how […]
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…