Home » Author Archives: Peter Lawrey (page 2)

Author Archives: Peter Lawrey

Low latency FIX engine in Java

java-logo

Overview Chronicle FIX is our Low Latency FIX engine and database for Java. What makes it different is that it;               is designed for ultra low GC* in Java. supports Strings and date times in a way which minimises garbage and overhead. is customisable to include only the fields you expect. uses optimisations normally ...

Read More »

An introduction to optimising a hashing strategy

java-logo

Overview The strategy that’s used for hashing keys, can have a direct impact on the performance of a hashed collections such as a HashMap or HashSet. The built-in hashing functions are designed to be generic and work well in a wide range of use cases. Can we do better, especially if you have a good idea of the use case? ...

Read More »

Chronicle Journal – Customizable Data Store

java-logo

Overview The way to make any data structure or algorithm as fast as possible is for the code to do exactly what you want and no more. The problem with building a data store which does every thing anyone could want is that it won’t do anything particularly well. What can you achieve with a custom data store in terms ...

Read More »

Managing your application as a file system

software-development-2-logo

Overview “A database is a smart file system” — Anonymous “Your database/application is a file system” — Chronicle Software. Why mount your application as a file system? The main benefits of using a file system are;   It can give you another way to access your data which works in for any language. There is a lot of existing tools ...

Read More »

Comparing Hashing strategies

java-logo

Overview Chronicle has a number of implementations for hashing, including City and Murmur. It also has it’s own Vanilla Hash, but how was this tested? What is Vanilla Hash? Vanilla Hash is designed to be as simple as possible and be optimised for the Orthogonal Bits test (See below) This was compared with City 1.1 and Murmur 3 hashing strategies. ...

Read More »

Wiring YAML to a file or network with Chronicle Wire

java-interview-questions-answers

Overview Chronicle Wire is designed to get the benefits of a text protocol in terms of ease of development and faster debugging, but be able to switch to a more performant and smaller binary protocol without having to change your code. In this post, I looked at the performance you might achieve using a YAML based text format for serialization, ...

Read More »

Using YAML over the network

software-development-2-logo

Overview There is a number of popular text based protocols for exchanging data over the network. These include XML, FIX, and JSON. Chronicle Engine uses YAML which has some advantages and disadvantages. Isn’t text slower than binary? Text protocols are slower than binary protocols. The cost of encoding numbers and even unicode strings adds an overhead for the CPU. While ...

Read More »

Accessing Chronicle Engine via NFS

java-interview-questions-answers

Overview Chronicle Engine is a data virtualisation layer.  It abstracts away the complexity of accessing, manipulating and subscribing to various data source so that the user of that data doesn’t need to know how or where  the data is actually stored.  This means that this data can be migrated between systems or stored in a manner which is more efficient ...

Read More »

Is using Unsafe really about speed or functionality?

java-logo

Overview Around 6 years ago, I started using a class which up to that point was just a curiosity sun.misc.Unsafe.  I had used it for deserialization and re-throwing Exceptions but not used all it’s capabilities or talked about it publicly. The first open source library I saw which did use Unsafe in a serious way was Disruptor. This encouraged me ...

Read More »

How and Why to Serialize Lambdas

java-logo

Overview Serializing lambdas can be useful in a number of use cases such as persisting configuration, or as a visitor pattern to remote resources. Remote Visitors For example, so I want to access a resource on a remote Map, I can use get/put, but say I just want to return a field from the value of a Map, I can ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Advanced Java Guide
  • Java Design Patterns
  • JMeter Tutorial
  • Java 8 Features Tutorial
  • JUnit Tutorial
  • JSF Programming Cookbook
  • Java Concurrency Essentials