YouTube24 Feb 2020

Lecture 5: Go, Threads, and Raft

Podcast cover

MIT 6.824: Distributed Systems

This podcast features a lecture and Q&A session on concurrency in Go, focusing on design patterns and practical debugging tips for lab assignments. The discussion covers the Go memory model, concurrency primitives like closures, goroutines, mutexes, condition variables, and channels, emphasizing correct code writing over intricate reasoning about memory models. It also includes common bugs in Raft implementations, such as deadlocks from holding locks during RPC calls and the importance of double-checking conditions before declaring leadership, alongside debugging techniques using dprintf, race flags, and parallel testing scripts.

Outlines

Part 1: Introduction and Basic Primitives

Part 2: Coordination and Condition Variables

Part 3: Channels and Communication Patterns

Part 4: Raft Implementation Challenges

Part 5: Debugging Tools and Techniques

Sign in to continue reading, translating and more.

Open full episode in Podwise