Serialization Algorithm Revealed — JW Article

Serialization is the process of saving an object’s state to a sequence of bytes; deserialization is the process of rebuilding those bytes into a live object. The Java Serialization API provides a standard mechanism for developers to handle object serialization. In this tip, you will see how to serialize an object, and why serialization is […]

Atomic*.lazySet is a performance win for single writers

Summary: For programs respecting the Single Writer principle the Atomic*.lazySet method and it’s underlying Unsafe.putOrdered* intrinsic present a performance win in the form of significantly cheaper volatile writes. [UPDATE 20/12/2016: here’s a more recent definition and references on what lzySet/putOrdered is] A few months ago I attended Martin Thompson’s excellent Lock Free Algorithms course, the […]

Simple Binary Encoding

Financial systems communicate by sending and receiving vast numbers of messages in many different formats. When people use terms like “vast” I normally think, “ many?” So lets quantify “vast” for the finance industry. Market data feeds from financial exchanges typically can be emitting tens or hundreds of thousands of message per second, and aggregate […]

Real Time In Memory Stream Processing using HazelCast

+ Hazelcast, known chiefly for its open source in-memory data grid (IMDG), has launched an open source lightweight, distributed data-processing engine called Hazelcast Jet. This new Apache 2-licensed open source project is designed to enable processing in near real time for data-intensive applications such as smart home sensors, in-store e-commerce systems, social media platforms, log […]