Episode 44: Interview Brian Goetz and David Holmes

Topics covered
Popular Clips
Episode Highlights
Data Structures
Concurrent data structures are designed to be thread-safe and highly performant, but they come with their own set of challenges. explains that while these structures offer high performance, they may lack the exclusivity needed in certain applications 1. He notes that using non-blocking algorithms, which rely on atomic instructions instead of locks, can simplify data structures but are extremely difficult to implement correctly 1. adds that the complexity of developing lock-free algorithms makes them suitable only for experts, and their benefits are best realized when encapsulated in system libraries 1.
If writing correct programs with locks is hard, writing non-blocking algorithms is ten times harder.
---
suggests partitioning data structures to avoid locking entire structures, such as a hash table, which can improve performance 2.
Transactional Memory
Transactional memory offers a promising approach to concurrency control by allowing programmers to specify desired outcomes rather than implementation details. describes it as a model still in the research phase, aiming to simplify concurrency by letting the system determine the most efficient execution method 3. This approach contrasts with traditional locking mechanisms, which often complicate algorithms and increase the risk of deadlock 4.
The idea is to allow the programmer to specify what he wants, not how he wants to do it.
---
By eliminating the need for programmers to define the scope of data contention, transactional memory could potentially offer scalability and simplicity similar to garbage collection in programming 4.
Related Episodes


Episode 12: Concurrency Pt. 1
Answers 383 questionsEpisode 29: Concurrency Pt.3
Answers 383 questions

Episode 68: Dan Grossman on Garbage Collection and Transactional Memory
Answers 383 questions

Episode 19: Concurrency Pt. 2
Answers 383 questions

Episode 86: Interview Dave Thomas
Answers 383 questions

SE-Radio Episode 348 Riccardo Terrell on Concurrency
Answers 383 questions

Episode 213: James Lewis on Microservices
Answers 383 questions

Episode 22: Feedback
Answers 383 questions

Episode 81: Interview Erich Gamma
Answers 383 questions

Episode 36: Interview Guy Steele
Answers 383 questions

Episode 189: Eric Lubow on Polyglot Persistence
Answers 383 questions

Episode 199: Michael Stonebraker on Current Developments in Databases
Answers 383 questions

SE-Radio Episode 296: Type Driven Development with Edwin Brady
Answers 383 questions

Episode 39: Interview Steve Vinoski
Answers 383 questions

Episode 179: Cassandra with Jonathan Ellis
Answers 383 questions













