Skip to content

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êuYêu cầuTrade-off
SpeedGiảm lock, tối ưu loopRace conditions, data corruption
StabilityLock everything, defensive codeDeadlocks, 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ì?

PatternUse CaseSignal từ Requirements
CASDB version control, counters"Concurrent writes, rare conflicts"
Token BucketAPI rate limiting"Max N requests per second"
Sliding WindowSubstring/Subarray"Contiguous", "Maximum/Minimum of K elements"
Floyd's CycleLinked List, State machine"Detect loop", "Find duplicate"

Bắt đầu từ đâu?

  1. Optimistic Locking (CAS) - Lock-free concurrency
  2. Token Bucket - Rate Limiting
  3. Sliding Window - Loop optimization
  4. 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.