Skip to content
0:00 / 0:00

#lock-free#hashtable#compare-and-swap

Advanced Topics in Programming Languages: A Lock-Free Hash Table

GoogleTalksArchive

21K subscribers • 7 videos on Hallway

YouTube
  • Recommended by 5 people: 4 on Hacker News and 1 on Lobsters.
  • A classic. People kept recommending it from 2013 to 2024.
  • Presented by Dr. Cliff Click, Chief JVM Architect, Azul Systems

Advanced. Deep dive for people who know the field.

29K views14 years ago5 recommendations

Systems programmingComputer scienceData structuresConcurrency and parallelismPerformance and optimization

Dr. Cliff Click explains the design and correctness of a highly scalable, lock-free concurrent hash table using compare-and-swap operations.

Google Tech Talks March 28, 2007 ABSTRACT I present a lock-free concurrent Hash Table implementation with better single-thread performance than most Hash Tables, and better multi-thread performance than all other implementations I tried. I demonstrate scaling up to 768 CPUs even with high mutation rates. I show correctness by looking at the problem in a very different light than the usual "happens-before" / memory-order / fencing style of thinking. Speaker: Dr. Cliff Click Dr. Cliff Click, Azul Systems. Chief JVM Architect, Distinguished Engineer With more than twenty-five years experience developing compilers Cliff serves as Azul Systems' Chief JVM Architect. Cliff joined Azul in 2002 from Sun Microsystems where he was the architect and lead developer of the HotSpot Server Compiler, a technology that has delivered dramatic improvements in Java performance since its inception. Previously he was with Motorola where he helped deliver industry leading SpecInt2000 scores on PowerPC chips, and before that he researched compiler technology at HP Labs. Cliff has been writing optimizing compilers and JITs for over 15 years. He is invited to speak regularly at industry and academic conferences, and has published many papers about HotSpot technology. Cliff holds a PhD in Computer Science from Rice University. Google engEDU Speaker: Cliff Click

Why it's here

5 people recommend this

What people say. Recommended as an exceptional explanation of lock-free data structures and concurrent programming from a deep systems perspective.

qzncon Hacker News • Recommends

On “Ask HN: What's the best technical talk you've heard?”

Probably this one: link to this video Anything from Cliff Click is quite good. This guy has a very deep understanding of compilers, virtual-machines, CPUs, and their interactions. A JVM does that? link Java on a 1000 Cores link

benreesmanon Hacker News • Recommends

On “Build a serverless ACID database with this one neat trick (atomic PutIfAbsent)”

For folks interested in this topic I highly recommend this talk by Cliff Click about building highly scalable hash tables via Compare And Swap: link to this video

fitzgenon Lobsters • Recommends

Advanced Topics in Programming Languages: A Lock-Free Hash Table

ignoramouson Hacker News • Recommends

On “A resizable concurrent map”

Dr. Cliff Click's Google talk on Lock-Free Hashtable is here: link to this video Acc to Dr. Click, if you do not have 30+ CPUs in a single machine, ConcurrentHashMap (built-in to the JDK) will do the trick more often than not. The talk is really worth it, if you're curious about the design, esp. Dr. Click also had memorable debate with Rich Hickey over STMs. He works at h2o.ai and wrote about building a Key-Value store two years ago: link

eternalbanon Hacker News • Recommends

On “An Atomic Hash Table”

I've always admired the wizardry of Cliff Click's concurrent hash: link link to this video I'm not sure what to make of an "atomic" hash. I don't think OP does as well: "Doesn't this kind of defeat the point of concurrent algorithms? Well, in a sense, it does make it non-atomic, but it isn't really a spin-lock or anything like that, even though it can seem like that:" Concurrent hash seems to be more correct and clear.

benreesmanon Hacker News • Recommends

On “C++ Concurrency Model on x86 for Dummies (2020)”

…but it's clearly in "if you have to ask, don't use it" territory. I've lost count of how many times I've fuzzed something to Mars and back to show it "correct" and not been able to justify it compared to `pthread` when the profiles were in. With that disclaimer, people are going to do it, and so I should probably leave an example of it done well: link to this video…