Giao diện
High-Performance Systems & Optimization Patterns
"Speed không có nghĩa nếu thiếu Stability. Stability vô dụng nếu quá chậm." - HPN
The Eternal Conflict
Trong Software Engineering, hai mục tiêu này thường xung đột:
| Mục tiêu | Yêu cầu | Trade-off |
|---|---|---|
| Speed | Giảm lock, tối ưu loop | Race conditions, data corruption |
| Stability | Lock everything, defensive code | Deadlocks, giảm throughput |
❌ REALITY CHECK
- Lock quá nhiều → Throughput giảm 10x, deadlock risk
- Lock quá ít → Data race, corrupted state, hệ thống crash
The Goal
Module này trang bị cho bạn 4 patterns để cân bằng Speed và Stability:
Concurrency Patterns (Thread-safety)
- Optimistic Locking (CAS): Lock-free concurrency cho low-contention
- Token Bucket: Rate limiting để bảo vệ API khỏi overload
Algorithmic Patterns (Performance)
- Sliding Window: Biến $O(N^2)$ thành $O(N)$
- Floyd's Cycle: Detect infinite loops với $O(1)$ space
Roadmap Module
Khi nào dùng gì?
| Pattern | Use Case | Signal từ Requirements |
|---|---|---|
| CAS | DB version control, counters | "Concurrent writes, rare conflicts" |
| Token Bucket | API rate limiting | "Max N requests per second" |
| Sliding Window | Substring/Subarray | "Contiguous", "Maximum/Minimum of K elements" |
| Floyd's Cycle | Linked List, State machine | "Detect loop", "Find duplicate" |
Bắt đầu từ đâu?
- Optimistic Locking (CAS) - Lock-free concurrency
- Token Bucket - Rate Limiting
- Sliding Window - Loop optimization
- Floyd's Cycle Detection - Tortoise and Hare
💡 HPN's Insight
Đây là must-know patterns cho Senior Engineer interviews tại Google, Meta, Amazon. Master từng cái một.