08/10/2017

Fast and Safe Production Monitoring of JVM Applications with BPF Magic

This is a talk on hardcore Linux tracing tools and how they can be used with JVM applications

You’ll learn:

  • Which production-ready tracing tools can be used with JVM apps

  • How BPF changes the picture of Linux tracing

  • To apply a performance checklist for JVM apps using BPF tools

  • To conduct ad-hoc investigations with one-liners and custom tools

Jepsen Hazelcast 3.8.3

Hazelcast is a distributed in-memory data grid, providing shared data structures for distributed systems. We show that many of Hazelcast’s distributed data structures are unsafe in the presence of network partitions: updates to maps can be lost, unique IDs may not be unique, atomic objects are not atomic, locks aren’t exclusive, and queues can forget about enqueued elements. Stale and dirty reads are also possible in most types. We do identify a way to build CRDTs on top of Hazelcast, which prevents the loss of acknowledged updates so long as operations do not depend on order. Despite documentation alluding to these risks, Hazelcast users rely on Hazelcast in risky ways.

Open world level design: spatial composition and flow in Breath of the Wild

I think it’s a great testament to the power of good tools, and the value of investing deeply in tool development. We should probably stop using colossal wikis for coordinating and sharing knowledge within design teams — that’s a last resort for systems that don’t have clear spatial metaphors. Meanwhile, in video game land, we’re building huge spatial metaphors all the time, so why not use it? It’s easier to literally "construct" and annotate that knowledge within the game world itself, as game data.