Posts by Peter Lawrey

Improving percentile latencies in Chronicle Queue

Compared to a year ago, we have significantly improved the throughput at which we can achieve the 99%ile (worst one in 100). What tools and tricks did we use to achieve that? What are we testing? Chronicle Queue appends messages to a file while another thread or process can be reading it. This gives you…

Read More

Choosing Chronicle FIX

Overview The FIX Trading Community website has posted a list of common questions about FIX Engines. This page brings together our answers to these questions. For more details on Chronicle FIX Capabilities/throughput Chronicle FIX supports; 100,000 messages per second per core. (NewOrderSingle / ExecutionReport sized messages) FIX Services which need to have a 30 micro-seconds…

Read More

Object Pools Revisited

Object pools were popular before Java 5.0, however, more efficient allocation made most of these pools a needless complication. Can an Object Pool still make sense and how fast do they need to be? Overview Up to Java 5.0 using object pools could significantly improve performance. However, from Java 5.0, the cost of using naive…

Read More

StringBuffer and how hard it is to get rid of legacy code

In 2006, Java 5.0 was released with StringBuilder, a more lightweight and sane version of StringBuffer. The Javadoc for Java 5.0 for StringBuffer notes As of release JDK 5, this class has been supplemented with an equivalent class designed for use by a single thread, StringBuilder. The StringBuilder class should generally be used in preference…

Read More

What’s the difference between blockchain and traditional databases?

The key difference between blockchain and traditional databases is the level of trust needed in those running the service. With blockchain, you trust the protocol, not those running it. What does a blockchain do? A blockchain records transactions without needing to trust any individual, organisation or computer, in a tamper-proof way (or pretty close). This…

Read More

StringBuffer and getting rid of legacy code

In 2006, Java 5.0 was released with StringBuilder, a more light weight and sane version of StringBuffer. The Javadoc for Java 5.0 for StringBuffer notes As of release JDK 5, this class has been supplemented with an equivalent class designed for use by a single thread, StringBuilder. The StringBuilder class should generally be used in…

Read More

Micro-services for performance

Overview Microservices is a buzz word at the moment. Is it really something original or based on established best practices? There are some disadvantages to the way microservices have been implemented, but can these be solved? Component testability and consistency Once you have assembled a large system, it can be hard or even impossible to…

Read More