java.util.concurrent for Distributed Coordination

java.util.concurrent for Distributed Coordination

The evolution of distributed coordination tools shows that high-level APIs ease implementation of coordination tasks, such as leader election, locking, synchronized actions. For instance, the Chubby paper highlights familiarity of lock-based interfaces. Similarly, Apache Curator hides complexity of ZooKeeper recipes behind Java APIs, while etcd and Consul implement concurrency primitives on their own.

A different path in this journey would be extending the long-lasting java.util.concurrent APIs for distributed coordination. Hazelcast follows this path by offering distributed implementations of Java locks, semaphores, and other concurrency primitives. Unfortunately, these implementations were suffering from consistency issues.

In this talk, we will explore a brand new implementation of java.util.concurrent APIs on top of the Raft consensus algorithm. We will walk through code samples to see how Java locks, semaphores, etc. can be used in distributed environments that involve partial failures.



Edward 1-4
Ensar Basri
Distributed Systems Engineer
I am Ensar Basri Kahveci. I first saw the term "NoSQL" in 2011 and used some NoSQL databases while doing backend development for a social gaming company. Over time, I became curious about their theoretical aspects and started digging into the distributed systems topics in general. I ended up working for Hazelcast in 2015, which is a distributed in-memory data grid (IMDG). Since then, I have been working as a distributed systems engineer to fuel my enthusiasm and get my hands dirty on core parts of Hazelcast!

Slides & Recordings

   Download Slides